《“笨办法”学Python(第3版)》——习题5 更多的变量和打印

简介:

本节书摘来自异步社区《“笨办法”学Python(第3版)》一书中的习题5,作者[美]Zed A. Shaw,王巍巍 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

习题5 更多的变量和打印

我们现在要键入更多的变量并且把它们打印出来。这次我们将使用一个叫“格式化字符串”(format string)的东西。每一次你使用双引号(")把一些文本引用起来,就创建了一个字符串。字符串是程序向人展示息的方式。你可以打印(显示)它们,可以将它们写入文件,还可以将它们发送给网站服务器,很多事情都是通过字符串交流实现的。

字符串是非常好用的东西,所以在这个习题中你将学会如何创建包含变量内容的字符串。使用专门的格式和语法把变量的内容放到字符串里,相当于来告诉Python:“嘿,这是一个格式化字符串,把这些变量放到那几个位置。”

一样的,即使你读不懂这些内容,只要一字不差地键入就可以了。

ex5.py

1     my_name = 'Zed A. Shaw'
2     my_age = 35 # not a lie
3     my_height = 74 # inches
4     my_weight = 180 # lbs
5     my_eyes = 'Blue'
6     my_teeth = 'White'
7     my_hair = 'Brown'
8     
9     print "Let's talk about %s." % my_name
10     print "He's %d inches tall." % my_height
11     print "He's %d pounds heavy." % my_weight
12     print "Actually that's not too heavy."
13     print "He's got %s eyes and %s hair." % (my_eyes, my_hair)
14     print "His teeth are usually %s depending on the coffee." % my_teeth
15     
16     # this line is tricky, try to get it exactly right
17     print "If I add %d, %d, and %d I get %d." % (
18          my_age, my_height, my_weight, my_age + my_height + my_weight)

警告

如果你使用了非ASCII字符而且遇到了编码错误,记得在最顶端加上 # -*- coding: utf-8 -*-。

应该看到的结果

习题5 会话

$ python ex5.py
Let's talk about Zed A. Shaw.
He's 74 inches tall.
He's 180 pounds heavy.
Actually that's not too heavy.
He's got Blue eyes and Brown hair.
His teeth are usually White depending on the coffee.
If I add 35, 74, and 180 I get 289.

附加练习

1.修改所有的变量名字,把它们前面的my_去掉。确认将每一个地方都改掉,不只是使用=赋值过的地方。

2.试着使用更多的格式化字符。例如,%r就是非常有用的一个,它的含义是:“不管什么都打印出来。”

3.在网上搜索所有的Python格式化字符。

4.试着使用变量将英寸和磅转换成厘米和千克。不要直接键入答案。使用Python的数学计算功能来完成。

常见问题回答

这样定义变量行不行:1 = 'Zed Shaw'?

不行。1不是一个有效的变量名称。变量名要以字母开头,所以a1可以,但1不行。
%s、%r和%d是做什么的?

后面你会学到更多,现在可以告诉你的是,它们是一种“格式控制工具”。它们告诉Python把右边的变量带到字符串中,并且把变量的值放到%s所在的位置上。
还是不懂,“格式控制工具”到底是什么?

教你学编程的一个问题就是,你需要先学会编程,才能读懂我的一些描述。我解决这个问题的方法是让你先去做一些事情,后面我再解释。当你碰到类似的问题时,把它们记录下来,看我是不是会在后面解释它们。
如何将浮点数四舍五入?

你可以使用round()函数,如round(1.7333)。
我遇到了错误TypeError: 'str' object is not callable。

很有可能你是漏写了字符串和变量之间的%。
为什么我还是不明白?

试着将脚本里的数字看成是你自己测量出来的数据,这样会很奇怪,但是多少会让你有身临其境的感觉,从而帮助你理解一些东西。

相关文章
|
1天前
|
存储 Linux iOS开发
Python入门:2.注释与变量的全面解析
在学习Python编程的过程中,注释和变量是必须掌握的两个基础概念。注释帮助我们理解代码的意图,而变量则是用于存储和操作数据的核心工具。熟练掌握这两者,不仅能提高代码的可读性和维护性,还能为后续学习复杂编程概念打下坚实的基础。
Python入门:2.注释与变量的全面解析
|
8天前
|
存储 Python 容器
python之变量的使用
Python 中变量是对象的引用,赋值即为指向内存中对象。创建对象时,解释器分配内存,引用计数管理内存回收。Python 是动态类型语言,变量类型在运行时确定。对象分为可变与不可变,前者可修改内部状态,后者则不行。命名空间管理变量作用域,确保不同区域的变量独立。
|
1月前
|
人工智能 Unix Java
[oeasy]python059变量命名有什么规则_惯用法_蛇形命名法_name_convention_snake
本文探讨了Python中变量命名的几种常见方式,包括汉语拼音变量名、蛇形命名法(snake_case)和驼峰命名法(CamelCase)。回顾上次内容,我们主要讨论了使用下划线替代空格以提高代码可读性。实际编程中,当变量名由多个单词组成时,合理的命名惯例变得尤为重要。
89 9
|
2月前
|
Python
[oeasy]python050_如何删除变量_del_delete_variable
本文介绍了Python中如何删除变量,通过`del`关键字实现。首先回顾了变量的声明与赋值,说明变量在声明前是不存在的,通过声明赋予其生命和初始值。使用`locals()`函数可查看当前作用域内的所有本地变量。进一步探讨了变量的生命周期,包括自然死亡(程序结束时自动释放)和手动删除(使用`del`关键字)。最后指出,删除后的变量将无法在当前作用域中被访问,并提供了相关示例代码及图像辅助理解。
126 68
|
2月前
|
Shell Python
[oeasy]python049_[词根溯源]locals_现在都定义了哪些变量
本文介绍了Python中`locals()`函数的使用方法及其在调试中的作用。通过回顾变量赋值、连等赋值、解包赋值等内容,文章详细解释了如何利用`locals()`函数查看当前作用域内的本地变量,并探讨了变量声明前后以及导入模块对本地变量的影响。最后,文章还涉及了一些与“local”相关的英语词汇,如`locate`、`allocate`等,帮助读者更好地理解“本地”概念在编程及日常生活中的应用。
45 9
|
3月前
|
Python
Python三引号用法与变量详解
本文详细介绍了Python中三引号(`"""` 或 `'''`)的用法,包括其基本功能、如何在多行字符串中使用变量(如f-string、str.format()和%操作符),以及实际应用示例,帮助读者更好地理解和运用这一强大工具。
163 2
|
3月前
|
机器学习/深度学习 存储 数据挖掘
Python 编程入门:理解变量、数据类型和基本运算
【10月更文挑战第43天】在编程的海洋中,Python是一艘易于驾驭的小船。本文将带你启航,探索Python编程的基础:变量的声明与使用、丰富的数据类型以及如何通过基本运算符来操作它们。我们将从浅显易懂的例子出发,逐步深入到代码示例,确保即使是零基础的读者也能跟上步伐。准备好了吗?让我们开始吧!
54 0
|
23天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
2月前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
52 14
|
2月前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
116 2

热门文章

最新文章

推荐镜像

更多