往期回顾: 基本语法:点击此处查看 列表与元组:上篇 || 下篇 字符串:点击此处查看 字典:点击此处查看
目录- 再谈print和import
- 赋值魔法
- 条件与条件语句
- 循环
- 三人行
随着你对Python的认识越来越深人,可能发现有些你自以为很熟悉的方面隐藏看让人惊喜的 野注。下面就来看看print和import隐藏的几个特性。虽然print现在实际上是一个函数,但以前 却题一种语句、因此在这里进行讨论。 提示 对很多应用程序来说,使用模块logging来写入日志比使用print更合适,详情请参阅第19章
5.1.1 打印多个参数你知道,print可用于打印一个表达式,这个表达式要么是字符串,要么将自动转换为字符 串。但实际上。你可同时打印多个表达式,条件是用逗号分隔它们:
>>>print('Age:',42)
Age:42
如你所见,在参数之间插入了一个空格字符。在你要合并文本和变量值,而又不想使用字符 串格式设置功能时,这种行为很有帮助。
>>>name='Gumby'
>>>salutation-'Ar.'
>>>greeting='Hello,'
>>>print(greeting,salutation,name)
Hello,Mr.Gumby
如果字符串变量greeting不包含逗号,如何在结果中添加呢?你不能像下面这样做:
print(greeting,',',salutation,name)print(greeting,',',salutation,name)
因为这将在逗号前添加一个空格。下面是一种可行的解决方案:
print(greeting+,,Salutation,name)
它将逗号和变量greeting相加。如果需要,可自定义分隔符:
>>> print("I","wish","to","register","a","complaint",sep="_")
I_wish_to_register_a_complaint
5.1.2 导入时重命名
从模块导人时,通常使用
import somemodule
或使用
from somemodule import somefunction
或
from somemodule import somefunction,anotherfunction,yetanotherfunction
或
from somemodule import *
仅当你确定要导入模块中的一切时,才使用最后一种方式。但如果有两个模块,它们都包含 函数open,该如何办呢?你可使用第一种方式导人这两个模块,并像下面这样调用函数:
module1.open(...)
module2.open(...)
但还有一种办法:在语句末尾添加as子句并指定别名。下面是一个导入整个模块并给它指定 别名的例子:
>>>import math as foobar
>>>foobar.sqrt(4)
2.0
下面是一个导入特定函数并给它指定别名的例子:
>>>from math import sqrt as foobar
>>>foobar(4)
2.0
5.2 赋值魔法
即便是不起眼的赋值语句也蕴藏着一些使用窍门。。
5.2.1 序列解包赋值语句你见过很多,有的给变量赋值,还有的给数据结构的一部分(如列表中的元素和切片 ,或者字典项)赋值,但还有其他类型的复制语句,可同时(并行)给多个变量赋值:
>>>x,y,z=1,2,3
>>>print(x,y,z)
123
看似用处不大?看好了,使用这种方式还可交换多个变量的值。
>>>x,y=y,x
>>>print(x,y,z)
213
实际上,这里执行的操作称为序列解包(或可迭代对象解包):将一个序列(或任何可迭代 对象)解包,并将得到的值存储到一系列变量中。,下面用例子进行解辉。
>>>values=1,2,3
>>>values
(1,2,3)
>>>x,y,z= values
>>>x
1
这在使用返回元组(或其他序列或可迭代对象)的函数或方法时很有用。假设要从字典中随 便获取(或删除)一个键-值对,可使用方法popitem,它随便获取一个键-值对并以元组的方式 返回。接下来,可直接将返回的元组解包到两个变量中。
>>>scoundrel={'name':'Robin','girlfriend':'Marion'}
>>>key,value=scoundrel.popitem()
>>>key
'girlfriend'
>>>value
'Marion'
这让函数能够返回被打包成元组的多个值,然后通过一条赋值语句轻松地访问这些值。
5.2.2 链式赋值下面两种赋值语句等价
x=y=somfunction()
y=somefunction()
x=y
以上两种赋值方式等价。
5.4 条件语句条件语句的执行离不开真假值的判断,例如
if A: #冒号很关键
B
else: #冒号很关键
C
这里的含义就是指如果A语句的逻辑值为真,就执行B语句,否则就执行C语句。这里的B语句和C语句又可以是一个条件语句,即条件语句可以进行嵌套。 A语句常见类型为一些比较运算符(或者一些你想要去判断的条件)。
5.5循环循环慢慢更新吧,哈哈哈