Python基础——条件判断、循环语句(200210)
Python——条件判断语句
Python——判断语句
1.if……语句
1)格式规范
1 if ××××: 2 #条件 #英文冒号 #自动缩进4个空格 3 print(××××) 4 5 # 命令逻辑:如果……就…… 6 # 命令格式:if条件后跟英文冒号,回车后自动缩进
2)举例:
1 #判断输入数字是否大于10,大于10输出“你真棒!”,小于10不输出结果 2 num = int(input('请输入数字:')) 3 if num >= 10: 4 print("你真棒!")
2.if……else……语句
1)格式规范
1 if ××××: 2 #条件 3 print(××××) 4 else: #与if语句同一级别 5 #当if条件不满足时 6 print(××××) 7 8 # 命令逻辑:如果……不满足……就…… 9 # 命令格式:if 与 else属于同一级别,if不满足才会执行else,两者执行其中之一
2)举例:
1 # #判断输入数字是否大于10,大于10输出“你真大!”,小于10输出“你真小!” 2 num = int(input('请输入数字:')) 3 if num >= 10: 4 print("你真大!") 5 else: 6 print("你真小!")
3.if……elif……else……语句
1)格式规范
1 if ××××: 2 #条件1 3 print(××××) 4 elif ××××: 5 #条件2 6 print(××××) 7 elif ××××: 8 #条件3 9 print(××××) 10 else: #与if、else语句都同一级别 11 #当if和elif条件都不满足时 12 print(××××) 13 14 # 命令逻辑:如果……不满足……就下一个……再下一个…… 15 # 命令格式:if、elif、else都属于同一级别且条件都是互斥的
2)举例:
1 # 判断输入的数字是否在10~20之间,0~10输出“有点小!”,10~20输出“范围正好”,大于30输出“有点大!” 2 num = int(input('请输入数字:')) 3 if 0 < num < 10: 4 print("有点小!") 5 elif 10 <= num <= 20: 6 print("范围正好!") 7 else: 8 print("有点大!")
4.if……else……嵌套
1)格式规范
1 if ××××: #条件套条件,就是在基础条件上再附加一个额外条件 2 print(××××) 3 if ××××: #额外条件需要缩进 4 print(××××) 5 else: 6 print(××××) 7 else: #根据缩进判断层级,根据层级按行执行 8 print(××××) 9 if ××××: 10 print(××××) 11 else: 12 print(××××)
2)举例
1 # 判断学生成绩所属范围 2 # 1.学生成绩大于等于60分,及格: 3 # 1)成绩大于等于80分,优秀: 4 # 2)否则,一般; 5 # 2.学生成绩小于60分,不及格: 6 # 1)成绩小于30,学渣 7 # 2)成绩大于等于30,抓紧抢救! 8 num = int(input('输入学生成绩:')) 9 if num >= 60: 10 print('及格') 11 if num >= 80: 12 print('优秀') 13 else: 14 print('一般') 15 else: 16 print('不及格') 17 if num < 30: 18 print('学渣') 19 else: 20 print('抓紧抢救!') 21 print('程序结束')
Python——循环语句
1.while 循环
1)正常循环(活循环)
1 # 循环 2 num = 0 # 定义变量 3 while num < 5: # 设定条件 4 num += 1 # 变量变化,不变换会变成死循环 5 print(num)
2)死循环(条件变量需要变化)
1 # 死循环 2 num = 0 # 定义变量 3 while num < 5: # 设定条件 4 print(num)
3)while 循环练习
① 求 1~100 内的所有数的和
1 sum = 0 2 n = 1 3 while n < 100: 4 sum += n 5 n += 1 6 print(sum)
② 求1-2+3-4+5 ... 99的所有数的和
1 sum = 0 2 n = 1 3 while n < 100: 4 temp = n % 2 5 if temp == 1: 6 sum = sum + n 7 else: 8 sum = sum - n 9 n += 1 10 print(sum)
2.for……in……循环
1)for……in……循环,遍历列表
① 格式规范
1 # for……in……循环,遍历列表 2 for i in [1,2,3,4,5]: # 遍历列表,英文冒号 3 print(i*5) # 缩进,重复执行
② 举例
1 # 打印列表里所有元素2 list = ['一','二','三','四','五'] 3 for Love in list: 4 print(Love)
2)for……in……循环,遍历字典
① 格式规范
1 # for……in……循环,遍历字典 2 for i in {'中国':'北京','日本':'东京','法国':'巴黎'}: # 遍历字典,英文冒号 3 print(i) # 缩进,重复执行
② 举例
1 # 打印字典里的键和值 2 dict={'小明':'买醋','小红':'买油','小白':'买盐','小张':'买米'} 3 for i in dict: 4 print(i+dict[i]) 5 # =>小明买醋 6 # =>小红买油 7 # =>小白买盐 8 # =>小张买米
3)for……in……循环,遍历元组
① 格式规范
1 # for……in……循环,遍历元组 2 for i in (1,2,3,4,5): # 遍历元组,英文冒号 3 print(i) # 缩进,重复执行
② 举例
1 # 将元组中的各个元素进行输出 2 tuple = ('我','爱','你','中','国') 3 for i in tuple: 4 print(i)
4) for……in……循环,遍历字符串
① 格式规范
1 # for……in……循环,遍历字符串 2 for i in '我爱你': # 列表字符串,英文冒号 3 print(i) # 缩进,重复执行
② 举例
1 # 将字符串中的各个字符进行输出 2 str = '床前明月光,疑是地上霜!' 3 for i in str: 4 print(i)
5)for……in……循环,range()函数
① range(x)
1 for i in range(3): #使用range(x)函数,生成一个 0 到 x-1 的整数序列 2 print(i) 3 # =>0 4 # =>1 5 # =>2
② range(a,b)
1 for i in range(1,5): #使用range(a,b)函数,生成一个 连续取a不取b的整数序列(取头不取尾) 2 print(i) 3 # =>1 4 # =>2 5 # =>3 6 # =>4
③ range(a,b,c)
1 for i in range(1,10,2): #使用range(a,b,c)函数,生成一个连续间隔为c的取a不取b的整数序列(取头不取尾) 2 print(i) 3 # =>1 4 # =>3 5 # =>5 6 # =>7 7 # =>9
④ 举例
1 # 采用for循环完成1到100内所有整数分别乘以5的计算 2 for i in range(1,101): 3 print(i*5)
布尔运算和布尔值
1.布尔值和布尔运算
布尔值分为真(True)和假(False)两种,计算真假的过程叫做 “布尔运算” 。
1)举例
1 print(3<5) # True 2 print(3>5) # False 3 print('长安'=='长安') # True 4 print('长安'!='金陵') # True
2) while 、if 与布尔值
①while循环与布尔值
1 while True: 2 print('hello world!') # 条件为真,print语句一直执行 3 4 while False: 5 print('hello world!') # 条件为假,不执行下面语句
② if 与布尔值
1 if True: 2 print('正确') 3 # =>正确 4 if False: 5 print('错误') #不执行
3)布尔值真假判断
假的 | 真的 |
Flase | True |
0 | 5(任意数字) 8.4(任意浮点数) |
'' (空字符串) | ‘我爱你’(任意非空字符串) |
[] (空列表) | [1,2,3] |
{} (空字典) | {'一':1,'二':2,'三':3} |
None |
4)布尔值之间的运算
① and 和 or 运算
and 运算 | or 运算 | ||
True and True | 为真 | True or True | 为真 |
True and False | 为假 | True or False | 为真 |
True and False | 为假 | True or False | 为真 |
False and False | 为假 | False or False | 为假 |
1 # and 和 or 运算 2 a = 1 3 b = -1 4 print('and 运算') 5 if a == 1 and b == 1: #【a=1并且b=1】,两个条件都满足,才为True 6 print(True) 7 else: 8 print(False) 9 10 print('or 运算') #【a=1或者b=1】,只要两个条件满足其中之一,就为True 11 if a == 1 or b == 1: 12 print(True) 13 else: 14 print(False) 15 16 # and 运算 17 # False 18 # or 运算 19 # True
② not运算
not True | 为假 |
not False | 为真 |
1 a = True 2 b = False 3 print(not a) 4 print(not b)
③ in 和 not in 运算
1 # 判断输入的数字是否在指定列表中,若在输出‘True’,不在输出‘False’ 2 list = [1,2,3,4,5,6,7,8,9,10] 3 a = input('请输入数字:') 4 if a in list: 5 print(True) 6 else: 7 print(False)
break 、continue、pass 和 else 语句
1.break语句
break语句是“打破”的意思,用来结束所有循环,跳出循环,一般写作 if…break。
1 # break语句在for循环中的应用 2 for i in range(5,10): 3 print (i) 4 if i>7: 5 break 6 7 # break语句在while循环中的应用 8 a=1 9 while a: 10 print (a) 11 a=a+1 12 if a==10: 13 break 14 15 # break语句在双层循环中 16 a=10 17 while a<=12: 18 a=a+1 19 for i in range(1,7): 20 print (i) 21 if i==5: 22 break
2.continue语句
终止当前循环,开始下一次循环,while循环体内continue后语句不在执行。
1 # continue 语句应用于while循环中 2 n = 0 3 while n < 10: 4 n = n + 1 5 if n % 2 == 0: # 如果n是偶数,执行continue语句 6 continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行 7 print(n)
3.pass语句
pass 代指空代码,无意义,仅仅用于表示代码块
1 for i in range(5) : 2 if i < 3: 3 print(i) 4 else : 5 pass # 不做任何事情,就是用作占位符
4.else语句
1 count=0 2 while count<10: 3 print(count) 4 count=count+1 5 else: 6 print('else') 7 print('......')
5.举例
1)使用 while 循环输入1 2 3 4 5 6 8 9 10
1 # 使用 while 循环输入1 2 3 4 5 6 8 9 10 2 # 方法一 3 num = 0 4 while num < 10: 5 num += 1 6 if num == 7: 7 continue 8 print(num) 9 10 # 方法二 11 num = 0 12 while num < 10: 13 num += 1 14 if num != 7: 15 print(num) 16 17 # 方法三 18 num = 0 19 while num < 10: 20 num += 1 21 if num == 7: 22 pass 23 else: 24 print(num)
2)用户密码登陆(共有三次机会)
1 # 用户密码登陆(三次机会) 2 first_code = '123456' # 正确密码 3 i = 3 # 登陆次数设置 4 while True: 5 i -= 1 # 登陆次数逐次减少 6 user_code = input('请用户输入密码:') # 用户输入密码 7 if user_code == first_code: # 判断用户输入的密码和正确密码是否一致 8 print('登陆成功!') 9 break # 密码正确,跳出循环 10 else: 11 if i == 0: 12 print('程序结束,请联系人工服务修改密码!') 13 break # 超过3次,程序结束,跳出循环 14 else: 15 print(f'登陆失败!你还有{i}次机会')
3)猜数字小游戏,(随机生成1~100内的整数数字,玩家有6次机会猜测)
1 # 猜数字小游戏 2 import random 3 number=random.randint(1,100) 4 guess = 0 5 tries = 0 6 print('---------------------------') 7 print('猜数字游戏(0---99),你有6次机会') 8 print('---------------------------') 9 while guess != number and tries<6: 10 print(f'你剩余次数{6-tries}') 11 guess = int(input('请输入您猜的数字: ')) 12 if guess < number: 13 print('猜小了') 14 if guess > number: 15 print('猜大了') 16 tries += 1 17 if guess == number: 18 print('恭喜你,猜对了,给你一朵小红花') 19 else: 20 print(f'很遗憾,6次机会已经用完,正确答案为{number},游戏结束!' )
4)剪刀石头布
1 # 剪刀石头布 2 import random 3 import time 4 punches = ['石头','剪刀','布'] 5 computer_choice = random.choice(punches) 6 user_choice = '' 7 user_choice = input('请出拳:(石头、剪刀、布)') 8 while user_choice not in punches: 9 print('输入有误,请重新出拳') 10 user_choice = input('请出拳:(石头、剪刀、布)') 11 time.sleep(0.5) 12 print('————战斗过程————') 13 print('电脑出了:%s' % computer_choice) 14 time.sleep(0.5) 15 print('你出了:%s' % user_choice) 16 time.sleep(0.5) 17 print('—————结果—————') 18 time.sleep(0.5) 19 if user_choice == computer_choice: 20 print('平局!') 21 elif user_choice == punches[punches.index(computer_choice)-1]: 22 print('你赢了!') 23 else: 24 print('你输了!')