Python中input输入与While循环超详细讲解

作者:

文章目录
  • 知识点 关键说明 示例场景 input()函数 获取用户输入,返回字符串,需配合类型转换处理数值 计算器输入、用户注册信息收集 while循环 条件驱动的循环,适用于未知循环次数的场景 交互式菜单、数据验证循环 break/continue 控制循环流程,break退出循环,continue跳过本次迭代 输入`quit`退出程序、过滤无效数据 列表与字典操作 结合循环动态增删元素,处理用户输入的不确定数据 购物车商品管理、用户信息动态存储 数值运算 求模判断奇偶性、累加/累乘计算 统计总分、计算阶乘 错误处理 捕获输入异常,验证数据有效性 防止程序因用户错误输入崩溃 通过掌握以上内容,可灵活运用用户输入和while循环构建交互式程序,处理动态数据,并确保程序的健壮性与用户体验。 到此这篇关于Python中input输入与While循环的文章就介绍到这了,更多相关Python input输入与While循环内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: 跟老齐学Python之用while来循环 python中while和for的区别总结 Python学习之while 循环语句 python入门之语句(if语句、while语句、for语句) Python-while 计算100以内奇数和的方法 Python input()函数用法大全 浅谈python3中input输入的使用 Python中input()函数的用法实例小结
  • 目录
    • 一、用户输入:input()函数的全面解析
      • 1. input()的基础用法
      • 2. 数值输入与类型转换
      • 3. 字符串拼接与+=运算符
    • 二、while循环:条件驱动的重复执行
      • 1. while循环的基本结构
      • 2. 循环控制语句:break与continue
        • break:强制退出循环  
      • continue:跳过本次循环  
        • 3. 避免无限循环
        • 三、while循环与数据结构的结合
          • 1. 列表:动态增删元素
            • 2. 字典:动态构建键值对
            • 四、数值运算与循环:求模与累加
              • 1. 求模运算符(%)
                • 2. 累加与累乘
                • 五、嵌套循环:解决多层逻辑问题
                  • 1. 嵌套while循环
                    • 2. while与for循环混合使用
                    • 六、错误处理:确保程序健壮性
                      • 1. 数值转换异常处理
                        • 2. 输入验证:确保数据有效性
                        • 七、常见错误与注意事项
                          • 1. 无限循环
                            • 2. 类型错误
                              • 3. break与continue混淆
                              • 总结:核心知识点与应用场景

                                功能:暂停程序执行,等待用户输入文本,并以字符串形式返回输入内容。

                                示例:获取用户姓名并输出问候语  

                                name = input("请输入你的姓名:")   #用户输入"张三"
                                
                                print(f"你好,{name}!")   #输出:你好,张三!

                                关键点:  

                                  无论用户输入数字、符号还是文字,input()始终返回字符串。  

                                  提示语可包含说明信息,引导用户输入符合要求的数据。

                                问题:用户输入的数字会被视为字符串,无法直接用于数学运算。  

                                解决方案:使用`int()`或`float()`将字符串转换为数值类型。  

                                # 示例:计算圆的周长(需半径为数值)
                                
                                radius_str = input("请输入圆的半径:")  # 用户输入"5"
                                
                                radius = float(radius_str)  # 转换为浮点数
                                
                                circumference = 2 * 3.14 * radius
                                
                                print(f"周长为:{circumference}")  # 输出:周长为:31.4

                                注意:若用户输入非数值内容(如字母),转换会报错,需用`try-except`处理(见后文错误处理)。

                                功能:+=用于将一个字符串追加到另一个字符串末尾,等价于变量 = 变量 + 字符串。  

                                # 示例:逐行收集用户输入并拼接
                                prompt = ""
                                while True:
                                    line = input("请输入内容(输入q结束):")
                                    if line == "q":
                                        break
                                    prompt += line + "n"  # 追加输入内容并换行
                                print("收集的内容:n", prompt)

                                应用场景:构建多行文本、日志记录、用户输入汇总等。

                                语法:  

                                while 条件表达式:
                                
                                    循环体代码  # 条件为True时重复执行

                                执行逻辑:  

                                  先判断条件表达式,若为`True`则执行循环体,执行完毕后再次判断条件,直至条件为False时退出循环。  

                                # 示例:打印1到5的数字
                                num = 1
                                while num <= 5:
                                    print(num)
                                    num += 1  # 关键:修改循环变量,避免无限循环

                                  输出:  

                                1
                                
                                2
                                
                                3
                                
                                4
                                
                                5

                                  用于在满足特定条件时立即终止循环,跳出整个循环体。  

                                # 示例:用户输入"exit"时退出程序
                                while True:  # 无限循环(需用break退出)
                                    command = input("请输入命令(输入exit退出):")
                                    if command == "exit":
                                        print("退出程序")
                                        break
                                    print(f"执行命令:{command}")

                                  用于跳过当前循环中的剩余代码,直接进入下一次循环条件判断。  

                                # 示例:打印1到10中的偶数(跳过奇数)
                                num = 0
                                while num < 10:
                                    num += 1
                                    if num % 2 != 0:  # 若是奇数,跳过打印
                                        continue
                                    print(f"偶数:{num}")

                                  输出:  

                                偶数:2
                                
                                偶数:4
                                
                                偶数:6
                                
                                偶数:8
                                
                                偶数:10

                                原因:若循环条件始终为True,且无break语句,循环会无限执行(需手动终止,如Ctrl+C)。  

                                解决方案:  

                                  确保循环体内有修改循环条件的代码(如`num += 1`)。  

                                  添加break作为退出条件(如用户输入特定值)。  

                                # 错误示例:无限循环(缺少num更新)
                                num = 1
                                while num <= 5:
                                    print(num)
                                # 修正后:
                                num = 1
                                while num <= 5:
                                    print(num)
                                    num += 1

                                场景:需要根据用户输入动态添加元素,或遍历列表时修改列表(`for`循环遍历列表时不建议修改)。  

                                示例:收集用户输入的多个数字  

                                numbers = []
                                while len(numbers) < 3:  # 限制输入3个数字
                                    num = int(input("请输入数字:"))
                                    numbers.append(num)
                                print("输入的数字列表:", numbers)

                                删除列表中所有特定值  

                                  remove()只能删除首个匹配项,结合while循环可删除所有匹配项。  

                                fruits = ["苹果", "香蕉", "苹果", "橘子"]
                                while "苹果" in fruits:  # 循环条件:列表中存在"苹果"
                                    fruits.remove("苹果")
                                print("删除后的列表:", fruits)  # 输出:['香蕉', '橘子']

                                场景:逐个输入键值对,构建用户信息字典。  

                                user_info = {}
                                while True:
                                    key = input("请输入字段名(输入q结束):")
                                    if key == "q":
                                        break
                                    value = input(f"请输入{key}的值:")
                                    user_info[key] = value
                                print("用户信息:", user_info)

                                  输入示例:  

                                字段名:name → 值:Alice  
                                
                                字段名:age → 值:25  
                                
                                字段名:q → 结束输入  

                                输出:  

                                {'name': 'Alice', 'age': '25'}

                                功能:返回两数相除的余数,常用于判断奇偶性、周期性任务等。  

                                # 示例:判断奇数/偶数
                                num = int(input("请输入整数:"))
                                if num % 2 == 0:
                                    print(f"{num}是偶数")
                                else:
                                    print(f"{num}是奇数")

                                应用:循环中每n次执行特定操作  

                                # 示例:每3次循环打印提示
                                count = 0
                                while count < 10:
                                    count += 1
                                    if count % 3 == 0:
                                        print(f"第{count}次:执行特殊操作")
                                    else:
                                        print(f"第{count}次:常规操作")

                                累加器模式:初始化变量为0,循环中不断相加。  

                                # 计算1+2+...+100的和
                                total = 0
                                num = 1
                                while num <= 100:
                                    total += num
                                    num += 1
                                print("累加和:", total)  # 输出:5050

                                累乘器模式:初始化变量为1,循环中不断相乘。  

                                # 计算5!(5的阶乘)
                                factorial = 1
                                num = 1
                                while num <= 5:
                                    factorial *= num
                                    num += 1
                                print("阶乘结果:", factorial)  # 输出:120

                                结构:在一个`while`循环体内包含另一个`while`循环,用于处理多层循环逻辑(如行与列的控制)。  

                                # 示例:打印3行3列的星号矩阵
                                row = 0
                                while row < 3:
                                    col = 0
                                    while col < 3:
                                        print("*", end=" ")  # end=" "表示不换行,用空格分隔
                                        col += 1
                                    print()  # 每行结束后换行
                                    row += 1

                                输出:  

                                * * *  
                                
                                * * *  
                                
                                * * *  

                                场景:外层用`while`控制循环次数,内层用`for`遍历数据。  

                                # 示例:多次输入姓名并逐个打印
                                count = 0
                                while count < 2:
                                    names = input("请输入姓名(用逗号分隔):").split(",")
                                    for name in names:
                                        print(f"姓名:{name.strip()}")  # strip()去除空格
                                    count += 1

                                问题:用户输入非数值内容时,`int(input())`会抛出`ValueError`。  

                                解决方案:用`try-except`捕获异常,提示用户重新输入。  

                                while True:
                                    try:
                                        age = int(input("请输入年龄(整数):"))
                                        print(f"年龄为:{age}")
                                        break
                                    except ValueError:
                                        print("输入无效,请重新输入整数!")

                                场景:限制输入范围(如年龄0-150)、禁止空输入等。  

                                while True:
                                    username = input("请输入用户名(非空):").strip()
                                    if not username:  # 空字符串为False
                                        print("用户名不能为空!")
                                        continue  # 跳过本次循环,重新输入
                                    if len(username) < 3:
                                        print("用户名至少3个字符!")
                                        continue
                                    print(f"欢迎,{username}!")
                                    break

                                原因:循环条件始终为True且无`break`,或忘记更新循环变量。  

                                调试技巧:在循环体内添加`print(循环变量)`,观察变量是否按预期变化。

                                原因:未将`input()`结果转换为数值类型,直接用于数学运算。  

                                # 错误示例:字符串相加
                                a = input("a=")  # 输入"3"
                                b = input("b=")  # 输入"5"
                                print(a + b)  # 输出"35"(字符串拼接)

                                修正:  

                                a = int(input("a="))
                                b = int(input("b="))
                                print(a + b)  # 输出8(数值相加)

                                区别:  

                                  break:跳出整个循环,不再执行后续循环。  

                                  continue:跳过本次循环的剩余代码,继续下一次循环。

                                知识点

                                关键说明

                                示例场景

                                input()函数

                                获取用户输入,返回字符串,需配合类型转换处理数值

                                计算器输入、用户注册信息收集

                                while循环

                                条件驱动的循环,适用于未知循环次数的场景

                                交互式菜单、数据验证循环

                                break/continue

                                控制循环流程,break退出循环,continue跳过本次迭代

                                输入`quit`退出程序、过滤无效数据

                                列表与字典操作

                                结合循环动态增删元素,处理用户输入的不确定数据

                                购物车商品管理、用户信息动态存储

                                数值运算

                                求模判断奇偶性、累加/累乘计算

                                统计总分、计算阶乘

                                错误处理

                                捕获输入异常,验证数据有效性

                                防止程序因用户错误输入崩溃

                                通过掌握以上内容,可灵活运用用户输入和while循环构建交互式程序,处理动态数据,并确保程序的健壮性与用户体验。

                                到此这篇关于Python中input输入与While循环的文章就介绍到这了,更多相关Python input输入与While循环内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

                                您可能感兴趣的文章:

                                • 跟老齐学Python之用while来循环
                                • python中while和for的区别总结
                                • Python学习之while 循环语句
                                • python入门之语句(if语句、while语句、for语句)
                                • Python-while 计算100以内奇数和的方法
                                • Python input()函数用法大全
                                • 浅谈python3中input输入的使用
                                • Python中input()函数的用法实例小结

                                站内搜索