七、分支与循环
2017-08-08 本文已影响9人
焰火青春
1、分支结构
1.1、if分支语句
if<condition> #判断表达式是否为真
<statements> #代码块
else<condition> #if不成立时执行else下代码
<statements>
1.2、多分支结构(if-elif-else)
elif语句允许检查多个表达式是否为True,并在其中一个条件求值为True时立即执行对应代码块。
score = int(input('请输入一个分数:'))
if 100 >= score >= 90:
print('A')
elif 90 >= score >= 80: # 可多次判断表达式是否为True
print('B')
elif 80 >= score >= 60:
print('B')
elif 60 >= score = 0:
print('D')
else:
print('输入有误!')
1.3、条件表达式(三元操作符)
三元操作符语法:
a = x if 条件 else y #条件为True时,a的值赋值为x,否则为y
一元操作符:‘-’,负号
二元操作符:‘=’,赋值,它有左右两个操作数
三元操作符:三个操作数
if x < y:
small = x
else:
small = y
上述代码可用三元操作符表示:
small = x if x < y else y
1.4、断言assert
可用来在程序中置入检查点,当需要确保程序中的某个条件一定为真时才能让程序正常工作,assert就很有用了,与其出现莫名的bug导致程序崩溃不如自我毁灭
assert语法:
assert 3 > 4 #当后面的条件为False时,程序崩溃抛出AssertionError的异常
2、循环语句
2.1、while循环语句
while 条件: #条件为真执行执行循环体,为假时跳出循环体
循环体
2.1.1、死循环
无限循环可能在客户端/服务器编程中有用,服务器需要连续运行,以便客户端程序可以在需要时与其进行通信。
var = 1
while var == 1 : # This constructs an infinite loop(这构成一个无限循环)
num = int(input("Enter a number :"))
print ("You entered: ", num)
print ("Good bye!")
按CTRL+C可退出无限循环
2.1.2、在循环中使用else语句
如果else语句与while循环一起使用,则在条件变为false时执行else语句
count = 0
while count < 5:
print (count, " is less than 5")
count = count + 1
else:
print (count, " is not less than 5")
2.2、for循环语句
for <variable> in <sequence>: #variable表示迭代的目标变量,sequence表示表达式(列表、元组或其他)
<statements>
else:
<statements>
member = ['黑夜' , '迷离', '爱你哦']
for each in member:
print(each, len(each))
2.3、range()函数
如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列
range( [start,] stop[, step = 1]) #语法
range()有三个可选参数,其中中括号里的可选,step = 1,表示第三个参数默认值为1。
#传递一个参数:
for i in range(3): #从0开始遍历,不包括尾(3)
print(i)
0
1
2
#传递两个参数:
for i in range(1, 8):
print(i)
1 2 3 4 5 6 7
#传递三个参数:
for i in range(1,10,2): #第三个参数表示步进,从1开始,每次递进2
print(i)
1 3 5 7 9
range()函数来创建一个列表:
>>>list(range(5))
[0, 1, 2, 3, 4]
range()和len()函数以遍历一个序列的索引:
>>>a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']
>>> for i in range(len(a)):
... print(i, a[i])
...
0 Google
1 Baidu
2 Runoob
3 Taobao
4 QQ
2.4、break语句
break语句作用是终止当前循环,跳出循环体,只能跳出一层循环
(1)、与while循环搭配:
var = 10
while var > 0:
print('当前变量值为:', var)
var -= 1
if var == 5:
break
print('GOOD BYE!')
(2)、与for循环搭配:
for each in 'runoob':
if each == 'b':
break
print('当前字母为:', each)
2.5、continue语句
continue语句作用是终止本轮循环,并开始下一轮循环,(开始下一轮循环前,会先测试循环条件)
>>> for i in range(10):
if i % 2 != 0:
print(i) #当i % 2 != 0时输出,为0时终止本轮循环
continue
1
3
5
7
9
>>> for i in range(10):
if i %2 != 0:
continue #当i % 2 != 0时终止本轮循环,为0时输出
print(i)
0
2
4
6
8
var = 10
while var > 0:
var = var -1
if var == 5: # 变量为 5 时跳过输出,继续下一轮当var==4时
continue
print ('当前变量值 :', var)
print ("Good bye!")
当前变量值 : 9
当前变量值 : 8
当前变量值 : 7
当前变量值 : 6
当前变量值 : 4
当前变量值 : 3
当前变量值 : 2
当前变量值 : 1
当前变量值 : 0
Good bye!
例:验证用户密码程序,3次机会,若输入* 则不算入内
count = 3
password = '12345678'
while count:
passwd = input('请输入密码:')
if passwd == password:
print('密码正确,进入程序....')
break
elif '*' in passwd:
print('密码中不能含有"*",您还有',count,'次机会!', end = '')
continue
else:
print('密码输入错误,您还有',count-1,'次机会', end = '')
count -= 1
2.6、pass 语句
Python pass是空语句,是为了保持程序结构的完整性,pass 不做任何事情,一般用做占位语句。
>>>while True:
... pass # 等待键盘中断 (Ctrl+C)
for letter in 'Runoob':
if letter == 'o':
pass
print ('执行 pass 块')
print ('当前字母 :', letter)
print ("Good bye!")
当前字母 : R
当前字母 : u
当前字母 : n
执行 pass 块
当前字母 : o
执行 pass 块
当前字母 : o
当前字母 : b
Good bye!