Python--3 判断和循环语句
判断语句和循环语句
1.1 判断语句介绍
1、生活中的判断场景
网咖
2、开发中的判断场景
密码判断
重要日期判断
1.2 if语句
Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
可以通过下图来简单了解条件语句的执行过程:
Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。
Python 编程中 if 语句用于控制程序的执行,基本形式为:
if 判断条件:
执行语句……
else:
执行语句……
if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。
当判断条件为多个值是,可以使用以下形式:
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
和其他语言一样,if也可以嵌套
if expression1: statement(s) if expression2: statement(s) elif expression3: statement(s) else statement(s) elif expression4: statement(s) else: statement(s)
示例1:
小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖
代码:
1 #!/usr/bin/env python 2 3 #定义变量 4 5 height = 1.75 6 7 weight = 80.5 8 9 bmi = weight/height**2 10 11 12 13 #打印变量 14 15 print("bmi is %f"%bmi) 16 17 18 19 #条件判断 20 21 if bmi<18.5: 22 23 print("过轻") 24 25 elif bmi<25: 26 27 print("正常") 28 29 elif bmi<28: 30 31 print("过重") 32 33 elif bmi<32: 34 35 print("肥胖") 36 37 else: 38 39 print("严重肥胖")
[root@localhost 02-day]# python 2-1.py
bmi is 26.285714
过重
示例2:编写一个石头剪刀布小游戏
1 #!/usr/bin/env python 2 3 import random,os 4 5 6 7 # 0石头 1剪刀 2布 8 9 #1.定义变量:player 玩家,computer 电脑 10 11 #电脑产生0-2以内随机数,玩家由用户通过键盘输入 12 13 14 15 computer = random.randint(0,2) 16 17 player = int(input("请输入【0石头 1剪刀 2布】:")) 18 19 20 21 #判断玩家输入是否合法 22 23 if player<0 or player>2: 24 25 print("输入非法...") 26 27 os._exit(0) 28 29 30 31 #2.判断输赢 32 33 if (player==0 and computer==1) or (player==1 and computer==2) or (player==2 and compter==0): 34 35 print("赢了,恭喜你!") 36 37 elif player == computer: 38 39 print("平局,要不要再来一局") 40 41 else: 42 43 print("输了,不要走,洗洗手决战到天亮")
[root@localhost 02-day]# python 2-2.py
请输入【0石头 1剪刀 2布】:0
输了,不要走,洗洗手决战到天亮
[root@localhost 02-day]# python 2-2.py
请输入【0石头 1剪刀 2布】:0
赢了,恭喜你!
[root@localhost 02-day]# python 2-2.py
请输入【0石头 1剪刀 2布】:0
输了,不要走,洗洗手决战到天亮
[root@localhost 02-day]# python 2-2.py
请输入【0石头 1剪刀 2布】:8
输入非法...
示例3:使用if语句,编写程序,实现如下功能:
1)从键盘获取用户名、密码
2)如果用户名和密码都正确(预先设定一个用户名和密码),那么就显示“欢迎进入xxx的世界”,否则提示密码或者用户名错误
代码:
1 import getpass 2 3 _user = 'tom' 4 _pwd = '123' 5 user = input('input username: ') 6 pwd = getpass.getpass('input password: ') 7 8 if user == _user and pwd == _pwd: 9 print("欢迎进入%s的世界" % user) 10 else: 11 print("密码或者用户名错误")
1.3 循环语句
1.生活中的循环场景
跑道
风扇
2.软件开发中的循环使用场景
跟媳妇承认错误,说一万遍“媳妇,我错了”
print("媳妇儿,我错了")
print("媳妇儿,我错了")
...(还有99998遍)...
使用循环语句,一句就可以搞定
I =0
while I<10000:
print("媳妇儿,我错了")
I+=1
Python提供了for循环和while循环(在Python中没有do..while循环):
循环类型 |
描述 |
在给定的判断条件为 true 时执行循环体,否则退出循环体。 |
|
重复执行语句 |
|
你可以在while循环体中嵌套for循环 |
1.4 While循环语句
Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:
while 判断条件: 执行语句…… |
执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
当判断条件假false时,循环结束。
执行流程图如下:
示例1:用while循环实现计算100以内所有奇数之和。
代码:
1 #!/usr/bin/env python 2 3 4 5 #计算100以内的奇数和 6 7 8 9 i=1 10 11 sum=0 12 13 14 15 while i<100: 16 17 if i%2 != 0: 18 19 sum+=i 20 21 i+=1 22 23 24 25 print("1+3+...+99=%d"%sum) 26 27 28 29 [root@localhost 02-day]# python 2-3.py 30 31 1+3+...+99=2500
示例2:打印100以内的偶数
1 #!/usr/bin/env python 2 3 #打印100以内的偶数 4 5 i=1 6 7 while i<=50: 8 print(i*2) 9 i+=1
示例3:计算1-2+3-4+5-6...+99
1 i = 1 2 s = 0 3 while i <= 99: 4 if i % 2 != 0: 5 s += i 6 else: 7 s -= i 8 i += 1 9 print('1-2+3-4...+99=%d'%s)
Python编程语言的一个嵌套while循环语句的语法,如下所示:
while expression:
while expression:
statement(s)
statement(s)
在循环嵌套最后需要说明的是,可以把任何类型的循环的任何其他类型的循环里面。例如,for循环内可以放置while循环,反之亦然。
示例1:打印如下图形
*
**
***
****
*****
1 #!/usr/bin/env python 2 3 i=1 4 5 while i<5: 6 j=1 7 while j<=i: 8 print("*",end="") 9 j+=1 10 print("\n") 11 i+=1
示例2:使用一个嵌套的循环,从2到100中找出所有的素数:
1 #!/usr/bin/env python 2 3 i = 2 4 while(i < 100): 5 j = 2 6 while(j <= (i/j)): 7 if not(i%j): break 8 j = j + 1 9 if (j > i/j) : print(i, " is prime") 10 i = i + 1 11 12 print("Good bye!")
示例3:打印九九乘法表
#!/usr/bin/env python i=1 while i<=9: j=1 while j<=i: print("%d*%d=%-2d "%(j,i,i*j),end='') j+=1 print("\n") i+=1 [root@localhost 02-day]# python 2-7.py 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
1.5 for循环语句
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
语法:
for循环的语法格式如下:
for iterating_var in sequence:
statements(s)
流程图:
示例1:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
分析:程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列
1 sum = 0 2 for i in range(1,5): 3 for j in range(1,5): 4 for k in range(1,5): 5 if i!=j and i!=k and j!=k: 6 print(i*100+j*10+k) 7 sum+=1 8 print(sum)
示例2:打印九九乘法表
1 for i in range(1,10): 2 for j in range(1,i+1): 3 print('%d*%d=%2d' %(i,j,i*j),end=' ') 4 print()
1.6 break和contiune
Python continue 语句跳出本次循环,而break跳出整个循环。
continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
continue语句用在while和for循环中。
Python 语言 continue 语句语法格式如下:
continue
流程图:
示例:
1 #!/usr/bin/env python 2 3 4 for x in range(1,10): 5 if x%2==0: 6 continue 7 print(x)
[root@localhost 02-day]# python 2-9.py
1
3
5
7
9
1 #!/usr/bin/env python 2 3 for x in range(1,10): 4 if x==5: 5 break 6 print(x)
[root@localhost 02-day]# python 2-10.py
1
2
3
4
循环使用else语句
Python支持与循环语句相关联的else语句。
如果else语句与for循环使用,执行else语句时,循环已经迭代完成列表。
如果在else语句使用while循环,当条件为假时,else语句被执行
pass语句
作用:Python pass是空语句,是为了保持程序结构的完整性;pass不做任何事情,一般用占位语句。
作业:
1、用户登陆(三次机会重试)
2、百钱买百鸡:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱?