Python——分支结构与循环结构-B03

本文介绍了Python编程中的分支结构,包括if、elif和else的使用,通过实例展示了如何根据条件执行不同代码块。此外,还探讨了循环结构,包括for-in循环和while循环,并给出了具体的代码示例,如计算税后收入和数字求和。
摘要由CSDN通过智能技术生成

分支结构

迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种代码结构通常称之为顺序结构。但顺序结构并不能解决所有的问题,比如我们设计一个游戏,游戏第一关的通关条件是玩家获得1000分,那么在完成本局游戏后,我们要根据玩家得到分数来决定究竟是进入第二关,还是告诉玩家“Game Over”,这里就会产生两个分支,而且这两个分支只有一个会被执行。类似的场景还有很多,我们将这种结构称之为“分支结构”或“选择结构”。在Python中,要构造分支结构可以使用ifelifelse关键字。

if 语句

username=input('用户名:')
password=input('密码:')
if username=='admin'and password=='Admin123!!':
    print('登录成功!')
    print('欢迎使用xxx系统')
    print('客服热线:400-00-8800')
else:
    print('登录失败!用户名或密码错误')
print('程序结束,再见!')

Python中使用了缩进的方式来表示代码的层次结构,如果if条件成立的情况下需要执行多条语句,只要保持多条语句具有相同的缩进就可以了。换句话说连续的代码如果又保持了相同的缩进那么它们属于同一个代码块,相当于是一个执行的整体。缩进可以使用任意数量的空格,但通常使用4个空格。

温馨提示ifelse 的最后面有一个:

分段函数求值
x = float(input('x='))
if x > 1:
    y = 3 * x - 5
elif x > -1:
    y = x + 2
else:
    y = 5 * x + 3
print(f'f(x)={y}')

根据实际开发的需要,分支结构是可以嵌套的。

x = float(input('x='))
if x > 1:
    y = 3 * x - 5
else:
    if x < -1:
        y = 5 * x + 3
    else:
        y = x + 2
print(f'f(x)={y}')

练习

以下表为例,输入本月总收入,输入本月五险一金扣除金额,计算出应缴税款和税后收入。

F=float(input('请输入本月工资收入:'))
G=float(input('请输入本月五险一金扣除额:'))
E=F-G
I=E-3500
if 0<=I<=1500:
    R=0
    D=0
elif 1500<I<=4500:
    R=0.03
    D=105
elif 4500<I<=9000:
    R=0.2
    D=555
elif 9000<I<=35000:
    R=0.25
    D=1005
elif 35000<I<=55000:
    R=0.3
    D=2755
elif 55000<I<=80000:
    R=0.35
    D=5505
else:
    R=0.45
    D=13505
if I<=0:
    T=0
    A=E-T
else:
    T=I*R-D
    A=E-T
print(f'应缴税款:{T:.2f}')
print(f'税后收入:{A:.2f}')

循环结构

循环结构就是程序中控制某条或某些指令重复执行的结构。在Python中构造循环结构有两种做法,一种是for-in循环,一种是while循环。

for-in循环

如果明确的知道循环执行的次数,我们推荐使用for-in循环。

# 1-100中3或5的倍数求和
total = 0
for i in range(1, 101):
    if i % 3 == 0 or i % 5 == 0:
        total += i  # total=total+i
    #else:
        #pass
print(total)

温馨提示

  • range(101):可以用来产生0到100范围的整数,需要注意的是取不到101。

  • range(1, 101):可以用来产生1到100范围的整数,相当于前面是闭区间后面是开区间。

  • range(1, 101, 2):可以用来产生1到100的奇数,其中2是步长,即每次数值递增的值。

  • range(100, 0, -2):可以用来产生100到1的偶数,其中-2是步长,即每次数字递减的值。

# 1-100奇数求和
total = 0
for i in range(1, 101, 2):
    total += i  # total=total+i
print(total)
# 1-100偶数求和
total = 0
for i in range(2, 101, 2):
    total += i  # total=total+i
print(total)

while循环

如果要构造不知道具体循环次数的循环结构,我们推荐使用while循环。while循环通过一个能够产生或转换出bool值的表达式来控制循环,表达式的值为True则继续循环;表达式的值为False则结束循环。

输入两个正整数,找出最大公约数
 n1 = int(input('n1='))
 n2 = int(input('n2='))
 for i in range(n1, 0, -1):
     if n1 % i == 0 and n2 % i == 0:
         print(i)
         break
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值