Python基础教程(第三版)第5章:条件、循环及其他语句

print()

end='' //不换行

sep='' //自定义分隔符

1
2
3
print("my name is",end='')
print("panghu") //打印结果:my name is panghu
print("I","love","you",sep="!") //I!love!you

import

当你确定要导入模块中的一切时,可使用from somemodule import *如果有两个模块,都包某一函数时,可使用as

1
2
import math as foobar
print(foobar.sqrt(4)) //2.0

序列解包

1
2
3
4
values=1,2,3
x,y,z=values
print(values) //(1,2,3)
print(z) //3

*元素符:分配多余的值

1
2
3
4
5
values=1,2,3,4
x,*y,z=values
print(x) // 1
print(y) //[2,3]
print(z) //4

条件语句中的布尔值

在Python的条件语句中,不止False``0表示假,None "" () [] {}都表示假

循环中的else子句

python中的breakcontinue和c语言中的功能一样。

break 语句可以跳出 for 和 while 的循环体。

continue 语句被用来跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

1
2
3
4
5
6
7
n = 5
while n > 0:
n -= 1
if n == 2:
break
print(n)
print('循环结束。')

输出结果为

1
2
3
4
3
循环结束。

当将break换成continue时,输出结果是

1
2
3
4
5
4
3
1
0
循环结束。

以上和c语言没什么不同,python循环语句有一点与c不同。

循环语句可以有else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被 break 终止时不执行。

打印100以内的素数:

1
2
3
4
5
6
7
8
9
10
num=[];
i=2
for i in range(2,100):
j=2
for j in range(2,i):
if(i%j==0):
break
else:
num.append(i)
print(num)

比较运算符

x is y x和y是同一个对象

x is not y x和y是不同的对象

x in y x是容器(如序列)y的成员

x not in y x不是容器(如序列)y的成员

1
2
3
4
x=y=[1,2,3]
z=[1,2,3]
print(x==z) //True
print(x is z) // False

==用来检查两个对象是否相等,而is用来检查两个对象是否相同(是同一个对象)。

遍历字典

1
2
3
d = {'x': 1, 'y': 2, 'z': 3}
for key in d:
print(key, 'corresponds to', d[key])
1
2
for key, value in d.items():
print(key, 'corresponds to', value)

zip()

一个很有用的并行迭代工具是内置函数zip,它将两个序列“缝合”起来,并返回一个由元组组成的序列。返回值是一个适合迭代的对象,要查看其内容,可使用list将其转换为列表。

1
2
3
name=["panghu","daxiong","jiqimao"]
age=[20,21,22]
print(list(zip(name,age))) //[('panghu', 20), ('daxiong', 21), ('jiqimao', 22)]