Python 基础03-Python 的流程控制语法

一、条件语句

Python 中条件语句使用关键字 ifelifelse,的语法如下:

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),用于连接表达式,计算出一个新的结果。

运算符逻辑表达式描述实例
andx and y布尔"与":如果 x 为 False,x and y 返回 False,否则它返回 y 的值。True and False, 返回 False。
orx or y布尔"或":如果 x 是 True,它返回 True,否则它返回 y 的值。False or True, 返回 True。
notnot 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

breakcontinue 关键字都是用来控制循环结构的,主要作用是停止循环

(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只能用于循环语句中;并且:在嵌套循环中使用时,只对最内层循环有效。

三、猜数游戏案例

16556350920023015824ffy

# 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!')

  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晴雪月乔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值