一、条件语句
Python 中条件语句使用关键字 if、elif 和 else,的语法如下:
if 条件1:
条件1成立执行的代码一
条件1成立执行的代码二
......
elif 条件2:
条件2成立执行的代码三
条件2成立执行的代码四
......
......
else:
以上条件都不成立,执行的代码五
以上条件都不成立,执行的代码六
......
1. 比较运算符
比较运算符用于比较2个变量值的大小,变量可以是数字、布尔值和字符串。
运算符 | 描述 | 实例 |
---|---|---|
== | 判断相等。如果两个操作数的结果相等,则条件结果为真(True),否则条件结果为假(False) | 如 a = 3, b = 3,则 (a == b) 为 True |
!= | 不等于 。如果两个操作数的结果不相等,则条件为真(True),否则条件结果为假(False) | 如 a = 3, b = 3,则 (a == b) 为 True 如 a = 1, b = 3,则 (a != b) 为 True |
> | 运算符左侧操作数结果是否大于右侧操作数结果,如果大于,则条件为真,否则为假 | 如 a = 7, b = 3,则 (a > b) 为 True |
< | 运算符左侧操作数结果是否小于右侧操作数结果,如果小于,则条件为真,否则为假 | 如 a = 7, b = 3,则 (a < b) 为 False |
>= | 运算符左侧操作数结果是否大于等于右侧操作数结果,如果大于,则条件为真,则为假 | 如 a = 7, b = 3,则 (a < b) 为 False 如 a = 3, b = 3,则 (a >= b) 为 True |
<= | 运算符左侧操作数结果是否小于等于右侧操作数结果,如果小于,则条件为真,否则为假 | 如 a = 3, b = 3,则 (a <= b) 为 True |
age = int(input('请输入你的年龄:'))
if 0 <= age < 18:
print(f'你的年龄是{age},未成年')
# elif age >= 18 and age < 60:
elif 18 <= age < 60:
print(f'你的年龄是{age},天选打工人')
elif 60 <= age <= 120:
print(f'你的年龄是{age},退休老年人')
else:
print('你的年龄可能有错!')
2. 逻辑运算符
逻辑运算符主要有与(and)、或(or)、非(not),用于连接表达式,计算出一个新的结果。
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与":如果 x 为 False,x and y 返回 False,否则它返回 y 的值。 | True and False, 返回 False。 |
or | x or y | 布尔"或":如果 x 是 True,它返回 True,否则它返回 y 的值。 | False or True, 返回 True。 |
not | not x | 布尔"非":如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not True 返回 False, not False 返回 True |
3. 三目运行符
三目运算符也叫三元运算符。语法如下:
满足条件的值1 if 条件 else 不满足条件的值2
num = int(input('请输入一个数字:'))
print(f'{num}是偶数' if num % 2 == 0 else f'{num}是奇数')
4. if 嵌套
if 条件语句可以嵌套,通过缩进来判断要执行的语句属于哪个 if。语法如下:
if 条件1:
条件1成立执行的代码
条件1成立执行的代码
if 条件2:
条件2成立执行的代码
条件2成立执行的代码
# 嵌套 if
if num % 2 == 1:
print(f'{num}是奇数')
if num > 5:
print(f'{num}是大于5的奇数')
注意:条件2的if也是处于条件1成立执行的代码的缩进关系内部。
二、循环语句
1. while 循环
while 条件:
条件成⽴重复执行的代码1
条件成⽴重复执行的代码2
......
while 循环先判断条件,条件成立则执行循环体的代码(循环体按缩进判断),执行完一次循环体后再次判断条件,条件成立则再次执行循环体,不成立则终止循环,然后执行 while 循环后面的语句。
# 计算1~100的所有偶数和
# 第一种写法:while
i = 1 # 定义一个变量 i,并且赋值一个初始值
my_sum = 0 # 定义一个求和的结果变量
while i <= 100:
if i % 2 == 0:
my_sum += i
i += 1
print(f'计算结果是{my_sum}')
2. for 循环
for 临时变量 in 序列:
重复执行的代码1
重复执行的代码2
......
for 循环循环一个序列(字符串、列表、元组、集合)、可迭代对象和迭代器,循环变量不需要提前定义。
# 计算1~100的所有偶数和
# 第二种写法:for
my_sum2 = 0
for i2 in range(1, 101):
if i2 % 2 == 0:
my_sum2 += i2
print(f'计算结果是{my_sum2}')
range 函数用于构建一个序列,可以传最多三个参数:
- start,开始值,可选,默认为0;
- end,结尾值,必填,表示结尾的数值;
- step,步长,可选,默认为1。
range 函数构建的序列前闭后开,包含开始值不包含结尾值。
3. break 和 continue
break 和 continue 关键字都是用来控制循环结构的,主要作用是停止循环
(1) break
break 用于 跳出一个循环体或者完全结束一个循环 ,可以结束其所在的循环。
结束当前整个循环,执行当前循环下边的语句,忽略循环体中任何其它语句。
只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐层使用 break 来跳出。
# 计算1~100的所有偶数和
# 第三种写法:while + break
i3 = 0
my_sum3 = 0
while True: # 这是一个死循环
i3 += 1
if i3 > 100:
break # 终止当前的整个循环
if i3 % 2 == 0:
my_sum3 += i3
print(f'计算结果是{my_sum3}')
(2) continue
continue 语句的作用是 跳过本次循环体中剩下尚未执行的语句,立即进行下一次的循环条件判定 ,可以理解为只是中止(跳过)本次循环,接着开始下一次循环。
终止本次循环的执行,即跳过当前这次循环中 continue 语句后尚未执行的语句,接着进行下一次循环条件的判断。
终止当前的循环过程,但它并不跳出循环,而是继续往下判断循环条件执行语句。它只能结束循环中的一次过程。但不能终止循环继续进行.
# 计算1~100的所有偶数和
# 第四种写法:for + continue
i3 = 0
my_sum3 = 0
while i3 <= 100:
i3 += 1
if i3 % 2 == 1: # i 为奇数,不用做计算,所以不需要计算了,继续下一个值
continue
my_sum3 += i3 # 其他的数字就需要累加
print(f'计算结果是{my_sum3}')
注意:break和continue只能用于循环语句中;并且:在嵌套循环中使用时,只对最内层循环有效。
三、猜数游戏案例
# TODO
# @Time : 2024/5/2 18:05
# @Author : Qingxue
# @Version : 0.0.1
# @IDE : PyCharm
# @Project : python_study
import random
print('-' * 50)
print('欢迎来到猜数游戏')
print('规则一:每次游戏,系统会自动生成一个1~10的随机数')
print('规则二:每次游戏,玩家最多只能猜三次')
print('规则三:进入游戏或者继续玩,输入 "yes" 或者 "y"')
print('规则四:如果想离开游戏,输入 "no" 或者 "n"')
print('-' * 50)
# 定义玩游戏的次数
n = 0
while True: # 玩家可以一直玩
number = random.randint(1, 10) # randint(a, b) 函数返回随机整数满足 a <= N <= b
order = input('请输入是否开始游戏:')
if order == 'yes' or order == 'y': # 表示用户想玩游戏
# 玩家正式开始猜数字
for i in range(1, 4): # 玩家最多只能猜三次
my_num = int(input('请玩家输入所猜的数字:'))
if my_num == number:
print(f'恭喜你,猜中了,就是数字{my_num}!')
# 由于猜中了,那么当前这一次的游戏就结束了(for 循环可以停止)
break;
elif my_num > number:
print(f'你猜的数字大了,还剩下{3 - i}次')
else:
print(f'你猜的数字小了,还剩下{3 - i}次')
if i == 3:
print(f'你三次都猜错了,正确的值是{number}!')
elif order == 'no' or order == 'n': # 表示用户不想玩游戏
break
else:
print('你输入的指令不正确,只能输入 yes 或者 no')
print('谢谢!Game OVer!')