python流程控制

本文介绍了Python编程中的基本流程控制结构,包括顺序执行、条件判断(if...else...)和循环(for、while)。通过实例展示了如何使用这些结构实现如计算三角形面积、用户登录验证和猜数字等常见任务。此外,还提供了练习题以加深理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python流程控制

“你为什么要那么努力?”想去的地方很远,想要的东西很贵,喜欢的人很优秀,父亲的白发,周围人的嘲笑,以及,天生傲骨。——《雅俗共赏》

一、顺序结构

  • 顺序结构是按照线性顺序自上而下依次执行的一种运行方式

  • # 顺序结构
    # 按先后顺序自上而下依次执行代码
    import math
    # 输入三条边长
    a = int(input("请输入边长a:"))
    b = int(input("请输入边长b:"))
    c = int(input("请输入边长c:"))
    # 计算半边长
    p = (a+b+c)/2
    # 计算面积
    # sqrt函数 => 开平方
    s = math.sqrt(p*(p-a)*(p-b)*(p-c))
    print("三角形的面积是:", s)
    

二、选择语句(if…else…)

  • 选择结构/分支结构

    • 是根据程序条件判断结果而选择不同向前执行路径的结构

    • 选择结构分为单分支和二分支结构

  • if会根据表达式的布尔值结果进行选择

  • if语句使用缩进来区分代码块,注意冒号(:)

  • #将三角形三条边长,求面积
    #方法一
    # import math
    # a = int(input("请输入边长a:"))
    # b = int(input("请输入边长b:"))
    # c = int(input("请输入边长c:"))
    # if a>0 and b>0 and c>0:
    #     if a+b>c and a+c>b and b+c>a:
    #         p = (a+b+c)/2
    #         result = math.sqrt(p*(p-a)*(p-b)*(p-c))
    #         print(f"三角形的面积为{result}")
    #     else:
    #         print("存在两边之和小于第三边")
    # else:
    #     print("输入的边长存在小于等于零")
    
    #方法二
    # import math
    # a = int(input("请输入边长a:"))
    # b = int(input("请输入边长b:"))
    # c = int(input("请输入边长c:"))
    # if a<0 or b<0 or c<0:
    #     print("输入的边长存在小于等于零")
    # elif a+b>c and a+c>b and b+c>a:
    #     p = (a + b + c) / 2
    #     result = math.sqrt(p * (p - a) * (p - b) * (p - c))
    #     print(f"三角形的面积为{result}")
    # else:
    #     print("存在两边之和小于第三边")
    
    
    #if的三元运算
    # 输入一个学生的成绩,判断“合格、不合格"
    score = int(input("请输入成绩"))
    if score >= 60:
        result = "合格"
    else:
        result = "不合格"
    print(result)
    
    
    result = "合格" if score >=60 else "不合格"
    print(result)
    
  • 练习

  • 用户登录 
    • 输入用户名,密码
    • 如果用户名为”root”,密码为”123456”,则登录成功,否则登录失败
    username = input("请输入用户名:")
    passwd = input("请输入密码:")
    if username == 'root' and passwd == '123456':
        print('登录成功')
    else:
        print('登录失败')
    

三、循环语句(for…)

  • 循环语句(for)

    • for循环的功能是,对于iterable中的每一个元素,都”do something”

    • 比如:批量重命名,重复做一次事N次

  • else -> 当for是正常循环退出时会执行else部分的代码

  • # for =》从一个可迭代对象iterable中依次取出所有的元素
    # item => 临时变量
    # 可迭代对象 => 字符串,列表,元组
    #              “bacdefg"
    #              [1, 2, 3, "abc"]
    #              (1, 2, 3, "abc")
    #             可以从对象中依次取出元素
    # for item in 可迭代对象:
    #    循环体
    # else:  # 可选分支(只在最后执行一次)
    #    退出时会执行else部分的代码
    
    判断字符串大小写 
    • 让用户输入一个字符串 
    • 分别取出每个字符,如果为大写输出1,如果为小写输出0 
    • 如,用户输入”aBc”则输出”010”
    str1 = input("请输入一个字符串:")
    for i in str1:
        if i.isupper():
            print(1,end="")
        else:
            print(0,end="")
            
    用户登录验证 
    • 登录成功/失败都给予提示 
    • 最多可尝试3次密码 
    # for i in range(3):
    #     username = input("请输入用户名:")
    #     passwd = input("请输入密码:")
    #     if username == 'root' and passwd == '123456':
    #         print('登录成功')
    #         break  => 退出循环
    #     else:
    #         print('登录失败')
    
    
  • 练习

     猜数字 
    • 在程序内定义一个数字,让用户猜 
    • 检查用户输入的是否为数字 
    • 键盘接收用户输入,猜对或猜错都给出提示(大/小) 
    • 最多能猜3次 
    • 给出用户最终猜的结果,及花了几次来猜
    
    number = 88
    for i in range(3):
        digit = input("请输入你的数字:")
        if digit.isdigit():
            digit = int(digit)
            if digit == number:
                print(f"恭喜你答对了!总共用了{i+1}次机会")
                break
            elif digit<number:
                print(f"你猜的太小了,你还有{2-i}次机会")
            else:
                print(f"你猜的太大了,你还有{2-i}次机会")
        else:
            print(f"你输入的不是数字,请重新输入!你还有{2-i}次机会")
    else:
        print(f"你全部猜错了!下次再来")
    

四、循环语句(while…)

  • 循环语句(while)

• while循环的功能是,只要condition的布尔值为True,则一直循环执行”do something”

• 比如:批量重命名,重复做一次事N次

  • 用户登录验证 
    • 登录成功/失败都给予提示 
    • 最多可尝试3次密码 
    
    # # i => 计数
    # i = 0
    # while i < 3:
    #     i += 1
    #     username = input("请输入用户名:")
    #     password = input("请输入密码:")
    #     if username == "root" and password == "123456":
    #         print("登录成功")
    #         break
    #     else:
    #         print("登录失败,请再试一次")
    # else:
    #     print("登录失败,请明天再试")
    
  • 练习

    计算复利:想知道如果把10000块钱存入银行,什么时候能变成20000 吗?(年利率为5%) 
    利息 = 本金*利率*时间 
    • 键盘要存入的金额及目标金额 
    • 输出每年的”本金+利息“ 
    • 给出需要多少年,”本金+利息“ >=目标金额
    
    # money = int(input("请输入你的本金:"))
    # target = int(input("请输入你的目标金额:"))
    # n = float(input("请输入年利率:"))
    # year = 0
    # while money<target:
    #     year +=1
    #     interest = money*n
    #     print(f"第{year}年的本息和为:{money+target}")
    #     money = money+interest
    # else:
    #     print(f"需要存{year}年")
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Pod️

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

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

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

打赏作者

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

抵扣说明:

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

余额充值