1、控制流程
# if 判断语句 a = 12 if a>0: print('a大于0') if a<5: print('a大于5') else: print('哈哈哈')
2、基本形式:
if <条件判断1>: <执行1> elif <条件判断2>: <执行2> elif <条件判断3>: <执行3> else: <执行4>
3、if语句注意事项:
1、判断条件的表达式的值一般为布尔型的值,当值为True就执行里面的语句块。 一般是使用比较运算符或者成员运算符。 2、条件表达式后面接的“:”是语法的一部分不能少。 有了“:”号后,满足条件时要的执行语句以缩进后的形式写在下面。 3、if,elif是写分支条件,当前面的if和elif不满足时就执行else里面的语句。 可以有零到多个elif,else是可选的。 4、语句是从上往下执行的,当前面有条件已经满足了,那么直接执行里面的语句。 后面的条件判断不再执行。
4、常见例子:
a=12 if a>0: print(a -1) elif a>5: print(a-2) else: print('哈哈哈')
#if .....else.... b='python' if 'o' in b: print('is true') else: print('is not true') #if ...else... if b.isupper(): print('hahaha') else: print('it is not all upper')
#猜字游戏 import random a=random.randint(1,10) n = 0 while n<3: num=input("请输入一个数字:") if num.isdigit(): num=int(num) if num == a: print('猜对了') break elif num>a: print('大了') else: print('小了') else: print('输入有误') n +=1 print('还有%s次机会'% (3-n)) print('这个数是%s' % a)
5、循环
5.1 while循环 break跳出整个循环,并且不会执行else里面的语句 continue 跳出本次循环 else pass #---------break例子-------- a=2 while True: a = a+1 if a>5: break else: print(a) 输出结果为: 3 4 5
分析:当a=a+1,a=2,a+1=3,不满足a>5,执行else,输出a;继续下一次循环,a=3+1=4,a不满足a>5,输出a,此时a=4,;继续下一次循环,
a=a+1=4+1=5,a不满足a>5,仍然执行else下的语句,输出a,也就是5;再进入下一次循环,a=a+1=5+1此时a=6,满足a>5,执行bread,
跳出while循环,终止程序继续执行。
#-------------continue列子-------------------- a = 2 while True: a = a+1 if a<10: print(a) print('continue终止本次循环输出') continue elif a>20: print(a) print('break终端程序输出') break 输出结果为: 3 continue终止本次循环输出 4 continue终止本次循环输出 5 continue终止本次循环输出 6 continue终止本次循环输出 7 continue终止本次循环输出 8 continue终止本次循环输出 9 continue终止本次循环输出 21 break终端程序输出 >>> 由上面输出可以发现continue是终止本次循环,而break直接终止整个程序运行
5.2 for 循环,for迭代 range() range(0,100,2) for i in range(10): print(i) 输出结果: 0 1 2 3 4 5 6 7 8 9 >>> for i in range(1,10,2): print(i) 输出结果: 1 3 5 7 9 >>> 小结:对于for循环对一个列表或者字符串中的元素进行一一取值,然后再赋值,最后处理(这里是输出);range内置方法用两个数字时(range(x,y)),表示从第一个数字
(包含第一个数字)开始,到第二个数字(不包含)结束;如果有三这个数字(range(x,y,n)),则第三个数字是间隔数,即本次取值与上次之间隔n个数字.
6、关于if....if与if...elif之间的区别
a =12 if a>5: print('a大于5') elif a>10: print('a大于10') elif a>11: print('a大于11') 输出结果如下: a大于5 >>> a =12 if a>5: print('a大于5') if a>10: print('a大于10') if a>11: print('a大于11') 输出结果如下: a大于5 a大于10 a大于11 >>> 总结:经过上述对比可以发现if....if语句运行时,会将匹配条件一条一条的去匹配,他们之间没有必然的关联,换句话说少了前面的if后面的if可以独立运行;而if...elif语句结果中,
elif和if是有关联的,少了前面的if后面的elif是无法独立运行的,所以if---elif条件下的elif是if的进一步判断,当if和elif两者同时满足只会执行最前面满足的条件。一个if语句
中可以包含多个elif语句,但结尾只能有一个else语句.
分数查询例子:
while True: score = input("请输入你的分数(q退出):") if score == 'q': break _score =score.replace('.','',1) ---->解决用户输入小数时的问题 if _score.isdigit(): score = float(score) ----------->将输入字符串转换成浮点型 if 90 <= score <=100: print('成绩为:A') elif 80<=score<90: print('成绩为:B') elif 60<=score<80: print('成绩为:C') elif 0<=score<60: print('成绩为:D') else: print('输入有误!') else: print('输入有误,请重新输入')
通过该例子得出: 多个if和if...elfi的区别是: 多个条件的判断就写多个if,一个条件的多个分支(或者一个条件的多种情况)用elif. 关于循环中的else和break的关系: break在循环中的作用是:当循环中某个条件满足时执行break动作从而结束程序运行(即终止循环);else用在循环中的作用是:在循环中的条件不满足,退出循环时执行else里面的语句。
python中,可以在while和for循环中使用else子句,它只是在循环结束之后才会被执行,如果同时使用了break语句那么else子句块会被跳过。所以注意else子句和break语句不能同时使用!