Python 中语句的结构:顺序结构,分支结构【if语句】,循环结构【while语句和for语句】
一、分支语句【重点掌握】
1.概念
在生活中,所谓的判断,指的是如果某些条件满足才能做某件事情;条件不满足时则不能做
在编程中,判断所给定的条件是否满足,根据判断的结果对应执行不同的语句,Python中的分支语句只有if语句
2.使用
2.1if单分支
语法:
if 表达式: 语句
说明:当程序执行到if语句时,首先判断“表达式”的值,如果表达式的值为“真”,则执行缩进的语句;如果表达式的值为“假”,则跳过整个if语句继续向下执行
# if单分支 """ 语法: if 条件: 语句 """ # 1.基本语法 """ a.在Python中,是通过缩进区分代码块的 b.if语句的条件可以由常量,变量或表达式表示 c.if单分支的工作原理:如果条件成立,则执行代码块中扥语句,如果条件不成立,则整个if代码块会被跳过 """ # 常量 if 1: print("1111") # 变量 x = 45 if x: print("2222") # 表达式 a = 4 b = 9 if a == b: print("3333") # 2.案例 # 需求1:从控制台输入一个数,判断该数是否是偶数 # num1 = int(input("请输入一个数:")) # if num1 % 2 == 0: # print("num1是一个偶数") # 需求2:模拟彩票中奖操作:随机获取一个数,和控制台输入的数进行比较,如果相等,则表示中奖 # a.如何产生随机数 """ 第一步:导入模块,import random,该句代码可以书写在程序的任何位置,但是一般建议书写在文件的最开头 第二步:使用模块中的功能,random.choice(容器) 用法: random.choice([3,4,5]) 从3,4,5随机产生一个数 random.choice(range(start,end,step)) 在start~end-1的范围内随机获取一个随机数 start:开始,可以省略,默认为0,包含在内 end:结尾,不可以省略,不包含在内 step:步长,可以省略,默认为1,步长可以为正数,也可以为负数 举例: random.choice(range(100)) 获取0~99之间的一个任意的整数随机数 random.choice(range(10,100)) 获取10~99之间的一个任意的整数随机数 random.choice(range(1,100,2)) 获取1~99之间的一个任意的奇数随机数 random.choice(range(0,100,2)) 获取0~99之间的一个任意的偶数随机数 random.choice(range(100,2,-1)) """ import random print(random.choice(range(100))) print(random.choice(range(10,100))) print(random.choice(range(1,100,2))) print(random.choice(range(0,100,2))) # print(random.choice(range(100,2))) # IndexError: Cannot choose from an empty sequence print(random.choice(range(100,2,-1))) print(range(100)) print(list(range(100))) # b.需求实现 random_num = random.choice(range(101)) # 0~100 print(random_num) input_num = int(input("请输入一个0~100之间的整数:")) if random_num == input_num: print("恭喜你,中奖了")
2.2if双分支
语法:
if 表达式: 语句1 else: 语句2
说明:当程序执行到if-else语句时,首先判断“表达式”的值,如果表达式的值为“真”,则执行语句1;如果表达式的值为“假”,则执行语句2
# if-else双分支 """ if 条件: 代码块1 else: 代码块2 """ """ 注意: a.工作原理:如果条件成立,则执行代码块1,如果不成立,则执行代码块2 b.if-else双分支多用于二选一的操作 """ # 1.基本使用 # 需求1:从控制台输入一个数,判断该数是否是偶数 # num1 = int(input("请输入一个数:")) # if num1 % 2 == 0: # print("num1是一个偶数") # else: # print("num1是一个奇数") # 优化 """ num1 = input("请输入一个数:") # isdigit():判断一个字符串是否全部由数字组成,如果是,则结果是True if num1.isdigit(): # 如果字符串num1全部是由数字组成的,则可以直接转换为整型 num1 = int(num1) if num1 % 2 == 0: print("num1是一个偶数") else: print("num1是一个奇数") else: print("输入有误,应该输入数字") """ # 需求2:模拟彩票中奖操作:随机获取一个数,和控制台输入的数进行比较,如果相等,则表示中奖 # import random # random_num = random.choice(range(101)) # 0~100 # print(random_num) # input_num = int(input("请输入一个0~100之间的整数:")) # if random_num == input_num: # print("恭喜你,中奖了") # else: # print("谢谢惠顾") # 优化 import random random_num = random.choice(range(101)) # 0~100 print(random_num) input_num = input("请输入一个0~100之间的整数:") # 判断input_num是否是一个数字 if input_num.isdigit(): input_num = int(input_num) # 判断input_num是否在0~100之间 if input_num in range(101): if random_num == input_num: print("恭喜你,中奖了") else: print("谢谢惠顾") else: print("你输入的数超出了规定的范围") else: print("输入有误")
2.3if多分支
语法:
if 表达式1: 语句1 elif 表达式2: 语句2 elif 表达式3: 语句3 …. elif 表达式n: 语句n else: 语句m else if ---->elif
说明:当程序执行到if-elif语句时,首先计算表达式1的值,如果表达式1的值为真,那么执行语句1,执行完语句1则直接跳出整个if-elif语句,代码继续向下执行;
# if-elif-elif....-else多分支 """ 语法 if 表达式1: 语句1 elif 表达式2: 语句2 elif 表达式3: 语句3 …. elif 表达式n: 语句n else: 语句m """ """ 注意: a.多分支主要解决三种及三种以上的问题 b.工作原理:多分支是实现多选一的操作,代码从上往下依次判断,只要其中一个条件成立,则执行对应的代码块 整个if-elif-else语句结束 c.在多分支中,不管有多少个分支条件成立,都只会执行其中的一个分支,最终只会执行最上面成立的一个分支 d.当if语句和所有的elif语句分条件都不成立时,则执行else分支,但是,else不是必须的 """ # 需求1:从控制台输入一个年龄,打印该年龄对应的阶段 age = int(input("请输入你的年龄:")) if age < 0: print("输入有误") elif age < 3: print("婴儿") elif age < 12: print("儿童") elif age < 18: print("少年") elif age < 30: print("青年") elif age < 55: print("中年") elif age < 150: print("老年") else: # age大于150 print("恐怕是个老妖怪吧") # 需求2:从控制台输入两个数,比较两个数的大小,输出较大的数 num1 = int(input("请输入第一个数:")) num2 = int(input("请输入第二个数:")) if num1 > num2: print("较大的数:",num1) elif num1 < num2: print("较大的数:", num2) else: print("二者相等")
2.4三者的区别
""" 如何区分使用哪种分支 a.单分支:只有一种情况 b.双分支:有两种情况 c.多分支:有三种及三种以上的情况 """ num = 3 # 多分支:多选一 if num > 1: print("a") elif num > 2: print("b") elif num > 3: print("c") else: print("d") # a # 单分支:要么执行,要么不执行 if num > 1: print("a") if num > 2: print("b") # 双分支:二选一 if num > 3: print("c") else: print("d")
2.5嵌套if语句
语法:
if 表达式1: 语句1 if 表达式2: 语句2
说明:当表达式1和表达式2的值都为真时,才会执行语句2
注意:单分支,双分支和多分支两两之间可以互相嵌套
2.6三目运算符
# if-else # 语法:a if 条件 else b # 需求: num1 = int(input("请输入一个数:")) if num1 % 2 == 0: print("num1是一个偶数") else: print("num1是一个奇数") r1 = "偶数" if num1 % 2 == 0 else "奇数" print(r1) r1 = True if num1 % 2 == 0 else False print(r1) # 三目运算符实现了二选一的操作,可以简化if-else语句,但是,只能实现简单的逻辑