条件判断语句
最有名的if语句。可能会有零到多个elif部分,else是可选的。其中,‘elif’是‘else if’的缩写。if...elif...elif.. 序列用于代替其他语言中的 switch 或 case 语句。
简单的例子
height = float(input('请输入身高(单位:米):'))
weight = float(input('请输入体重(单位:千克):'))
BMI_number = weight / (height*2)
if BMI_number >= 32:
print('\tBMI指数为:',BMI_number)
print('\t属于严重肥胖')
elif BMI_number >= 28:
print('\tBMI指数为:',BMI_number)
print('\t属于肥胖')
elif BMI_number >= 25:
print('\tBMI指数为:',BMI_number)
print('\t属于过重')
elif BMI_number >= 18.5:
print('\tBMI指数为:',BMI_number)
print('\t属于正常')
else:
print('\tBMI指数为:',BMI_number)
print('\t属于过轻')
注:读取用户输入的时候注意类型转换,input() 返回的数据类型是 str,要通过int() ,float()等函数完成转换,python 中无 double数据类型。
if语句的形式:
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
注:不要忘记每个判断条件后面的 :
if 语句执行特点:从上往下判断,如果在某个判断上是true,则把该判断语句执行后,忽略掉剩下的elif 和 else。
循环语句
for...in循环
for...in 循环会依次把 list或 tuple 中的每个元素迭代(按子项在序列中的顺序):
>>> names = ['Mike','Bob','Rose']
>>> for name in names:
... print(name)
...
Mike
Bob
Rose
for...in 循环就是把每个元素带入变量 x ,之后执行缩进块的语句。
在迭代过程中修改迭代序列不安全。如果要修改迭代的序列(例如,复制选择项),可以迭代它的副本(使用切割标识)。
注:for 条件后面也是有 : 的
经典例子:计算1~100的和。需要使用Python提供的 range()函数。
range() 函数生成一个等差级数值列表:
1. range(i) 生成包含i个值的列表,用索引值填充这个长度为i的列表,默认步长为1。
>>> for i in range(10):
... print(i)
...
0
1
2
3
4
5
6
7
8
9
2. range(i, j)生成以 i 起始,不超过 j-1 ,默认步长为 1 的列表。
>>> for i in range(5, 10):
... print(i)
...
5
6
7
8
9
3. range(i, j, k) 生成以 i 起始,不超过 j-1 ,步长为 k 的列表。
>>> for i in range(5, 10, 2):
... print(i)
...
5
7
9
>>> list(range(-10, -100, -30))
[-10, -40, -70]
range(101) 可以生成0~100的整数序列,计算如下:
>>> sum = 0
>>> for i in range(101):
... sum = sum + i
...
>>> print(sum)
5050
只要条件满足,就循环执行,条件不满足时退出循环。
计算100以内所有奇数和:
>>> sum = 0
>>> n = 99
>>> while n > 0:
... sum = sum + n
... n = n - 2
...
>>> print(sum)
2500
continue:结束本轮循环,直接开始下一轮循环。
注:不要过多使用 break 和 continue,容易出错。大多数循环可以通过改写循环条件或者修改循环逻辑,去掉 break 和 continue 语句。
有时候,代码写的有问题,会使程序“死循环”,使用“Ctrl + C”退出程序,或者强制结束Python进程。
pass 语句
pass语句什么也不做,用于那些语法上必须要有语句但是程序什么也不做的场合。
1. 通常用于创建最小结构的类:
class MyEmptyClass:
pass
2. 在创建新代码时用来做函数或控制体的占位符。可以被忽视,但最后要实现的