赞
踩
目录
input函数在Python中主要用于获取用户的文本输入,其基础用法相对直接,常见的应用场景有:
1、动态交互:使用input()函数可以根据用户的输入动态地改变程序的执行流程。例如,在创建一个交互式游戏或命令行工具时,可以根据用户的输入来更新游戏状态或执行不同的命令。
2、用户身份验证:通过input()函数可以获取用户的用户名和密码,然后进行验证,这可以用于简单的登录系统或访问控制。
3、复杂数据输入:虽然input()函数默认返回字符串,但我们可以结合其他函数(如`int()`, `float()`, `list()`, `dict()`等)来解析和处理用户输入的复杂数据类型。例如,通过分割字符串,我们可以将用户输入的多个值转换为一个列表或字典。
4、循环输入:使用循环结构(如`while`循环)结合input()函数,可以实现持续的用户输入,直到满足某个条件为止,这在需要用户输入多个值或进行多次选择时非常有用。
5、条件输入:通过结合条件语句(如`if-else`),我们可以根据用户的输入执行不同的操作。例如,根据用户的选择来显示不同的信息或执行不同的功能。
6、异常处理:由于用户输入可能是不预期的或无效的,因此使用异常处理(如`try-except`块)来捕获和处理可能的错误是非常重要的。这可以确保程序的健壮性和用户体验。
7、自定义输入提示和验证:通过自定义input()函数的提示信息,并结合逻辑验证用户输入的有效性,可以提高用户界面的友好性和程序的准确性。
8、构建交互式界面:结合其他库(如`curses`或第三方库如`tkinter`、`PyQt`等),可以使用input()函数构建更复杂的交互式界面。
总之,任何需要与用户进行文本交互的程序都可以利用input()函数来收集用户输入。
使用Python的input()函数时,需要注意以下事项:
1、安全性和隐私保护:在获取用户输入时,特别要注意保护用户隐私和确保安全性,不要将敏感信息(如密码、个人身份信息)直接通过input()函数获取,而是应该使用更安全的方法来处理这些信息。
2、避免过度依赖用户输入:过度依赖用户输入可能导致程序逻辑复杂且容易出错,在设计程序时,应尽量减少对用户输入的依赖,或者提供默认值以简化输入过程。
3、考虑国际化和本地化:当面向不同语言和文化的用户时,需要考虑国际化和本地化的问题,确保提示信息和错误消息能够适应不同的语言和文化背景,以提高用户体验。
4、注意界面差异:input()函数通常用于命令行界面(CLI)的程序中,如果你正在开发一个图形用户界面(GUI)的程序,那么可能需要使用不同的方法来获取用户输入,比如通过按钮、文本框等控件。
5、输入长度限制:在某些情况下,你可能希望限制用户输入的长度,以避免程序处理过大的输入数据,可以通过在提示信息中说明长度限制,并在程序中检查输入长度来实现。
6、避免阻塞主线程:在GUI程序中,长时间运行的input()函数调用可能会阻塞主线程,导致界面无响应,在这种情况下,应该使用异步编程或线程来避免阻塞。
7、文档和注释:为使用input()函数的代码段提供适当的文档和注释,说明预期的输入类型、格式和用途,这有助于其他开发者理解你的代码,并减少潜在的错误和混淆。
综上所述,使用input()函数时需要注意安全性、隐私保护、国际化、本地化、输入长度限制、避免阻塞主线程以及提供适当的文档和注释等方面的问题,通过谨慎处理用户输入并遵循最佳实践,你可以创建出更加健壮、安全和用户友好的程序。
要用好Python中的input()函数,需遵循以下建议及原则:
1、明确提示信息:提供清晰、具体的提示信息,告诉用户应该输入什么,这有助于用户理解你的程序期望什么类型的输入。
2、处理输入类型:由于input()总是返回字符串,所以你需要根据需要将其转换为其他类型,使用适当的类型转换函数,如`int()`, `float()`, `list()`, `dict()`等。
3、验证输入的有效性:对输入进行验证,确保它符合你的期望,使用条件语句和异常处理来检查输入的有效性。
4、提供默认值或备选方案:当用户没有提供期望的输入时,提供默认值或备选方案可以简化程序逻辑。
5、使用循环获取多个输入:如果需要用户输入多个值,可以使用循环来重复调用input()函数。
6、格式化提示和输出:使用字符串格式化来增强提示和输出的可读性。
7、处理可能的异常:总是准备处理可能发生的异常,如`ValueError`(当类型转换失败时)或`EOFError`(当在交互式解释器中使用`input()`时)。
8、保持输入简单明了:尽量避免让用户输入复杂的结构或长文本,如果可能,提供选项让用户选择,或使用其他输入方法(如文件读取或GUI控件)。
9、编写清晰的文档和注释:为你的代码编写清晰的文档和注释,解释每个input()函数调用的目的和预期的用户输入,这有助于其他开发者理解你的代码,并在需要时进行维护。
10、测试你的代码:确保对使用input()函数的代码进行充分的测试,包括正常输入、异常输入和边界情况,这有助于确保你的程序能够健壮地处理各种用户输入。
总之,只有遵循这些建议和最佳实践,你才可以更好地利用Python中的input()函数,并创建出更加健壮、易用的程序。
- # 1.函数:input
- # 2.功能:可以提示并接收用户的输入内容,将所有的输入内容按照字符串进行处理,并返回一个字符串
- # 3.语法:input([prompt])
- # 4.参数:prompt,可选参数,表示提示信息
- # 5.返回值:返回一个字符串
- # 6.说明:
- # 7.示例:
- # 用dir函数获取input函数的相关信息
- print(dir(input))
- # ['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
- # '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__name__',
- # '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__',
- # '__str__', '__subclasshook__', '__text_signature__']
-
- # 用help函数获取input函数的相关信息
- help(input)
-
- # 应用1:动态交互
- # 简单的用户输入
- # 提示用户输入名字
- name = input("请输入你的名字:")
- print(f"你好,{name}!")
- # 请输入你的名字:Myelsa
- # 你好,Myelsa!
-
- # 选择菜单
- # 选择菜单
- print("请选择以下选项:")
- print("1. 选项一")
- print("2. 选项二")
- print("3. 退出")
- while True:
- choice = input("请输入你的选择(1-3):")
- if choice == '1':
- print("你选择了选项一")
- elif choice == '2':
- print("你选择了选项二")
- elif choice == '3':
- print("退出程序")
- break
- else:
- print("无效的输入,请重新选择")
- # 请选择以下选项:
- # 1. 选项一
- # 2. 选项二
- # 3. 退出
- # 请输入你的选择(1-3):1
- # 你选择了选项一
- # 请输入你的选择(1-3):4
- # 无效的输入,请重新选择
-
- # 获取用户年龄并进行判断
- age = input("请输入你的年龄:")
- try:
- age = int(age)
- if age >= 18:
- print("你已经成年了")
- else:
- print("你还未成年")
- except ValueError:
- print("无效的输入,请输入一个整数")
- # 请输入你的年龄:18
- # 你已经成年了
-
- # 动态计算
- num1 = input("请输入第一个数字:")
- num2 = input("请输入第二个数字:")
- try:
- num1 = float(num1)
- num2 = float(num2)
- result = num1 + num2
- print(f"{num1} + {num2} = {result}")
- except ValueError:
- print("无效的输入,请输入数字")
- # 请输入第一个数字:10
- # 请输入第二个数字:24
- # 10.0 + 24.0 = 34.0
-
- # 应用2:用户身份验证
- # 假设我们有一个预设的用户名和密码
- correct_username = "myelsa"
- correct_password = "123"
- # 获取用户输入的用户名和密码
- username = input("请输入用户名:")
- password = input("请输入密码:")
- # 检查用户名和密码是否正确
- if username == correct_username and password == correct_password:
- print("身份验证成功!欢迎,", username)
- else:
- print("身份验证失败!请检查您的用户名和密码是否正确。")
- # 请输入用户名:myelsa
- # 请输入密码:123
- # 身份验证成功!欢迎, myelsa
-
- # 应用3:复杂数据输入
- # 输入列表
- # 输入列表,每个元素通过空格分隔
- input_str = input("请输入一个由空格分隔的元素列表:")
- # 使用split方法将字符串转换为列表
- input_list = input_str.split()
- print("你输入的列表是:", input_list)
- # 请输入一个由空格分隔的元素列表:3,5,6,8,10,11,24
- # 你输入的列表是: ['3,5,6,8,10,11,24']
-
- # 输入字典
- # 输入字典,每个键值对通过冒号分隔,键值对之间通过逗号分隔
- input_str = input("请输入一个由冒号分隔键和值,通过逗号分隔的字典:")
- # 去除首尾空格,并按逗号分割成键值对
- pairs = input_str.strip().split(',')
- # 创建字典
- input_dict = {}
- for pair in pairs:
- key, value = pair.split(':')
- input_dict[key.strip()] = value.strip()
- print("你输入的字典是:", input_dict)
- # 请输入一个由冒号分隔键和值,通过逗号分隔的字典:Myelsa:18,Jimmy:15,Bruce:6
- # 你输入的字典是: {'yelsa': '18', 'Jimmy': '15', 'Bruce': '6'}
-
- # 输入自定义对象的属性
- class Person:
- def __init__(self, name, age):
- self.name = name
- self.age = age
- def __str__(self):
- return f"Person(name={self.name}, age={self.age})"
- # 输入姓名和年龄来创建Person对象
- name = input("请输入姓名:")
- age = input("请输入年龄:")
- try:
- age = int(age) # 尝试将年龄转换为整数
- person = Person(name, age)
- print("你创建的Person对象是:", person)
- except ValueError:
- print("年龄必须是整数,请重新输入。")
- # 请输入姓名:Myelsa
- # 请输入年龄:18
- # 你创建的Person对象是: Person(name=Myelsa, age=18)
-
- # 输入嵌套数据(如列表的列表)
- # 输入嵌套列表,每个内部列表由空格分隔,外部列表由换行符分隔
- input_str = ""
- while True:
- line = input("请输入一个由空格分隔的元素列表(或输入'done'结束):")
- if line.lower() == 'done':
- break
- input_str += line + "\n"
- # 使用eval函数(注意:eval有安全风险,仅用于演示目的)
- nested_list = eval(input_str)
- print("你输入的嵌套列表是:", nested_list)
-
- # 应用4:循环输入
- # 循环输入直到输入特定值
- # 循环输入,直到用户输入'quit'为止
- while True:
- user_input = input("请输入一些内容(输入'quit'退出):")
- if user_input.lower() == 'quit':
- break
- print("你输入的是:", user_input)
- # 请输入一些内容(输入'quit'退出):myelsa
- # 你输入的是: myelsa
- # 请输入一些内容(输入'quit'退出):quit
-
- # 循环输入并累加数字
- # 循环输入数字,并累加,直到输入非数字为止
- total = 0
- while True:
- try:
- number = float(input("请输入一个数字(输入非数字退出):"))
- total += number
- print("当前累加和是:", total)
- except ValueError:
- print("输入的不是有效的数字,退出累加。")
- break
- # 请输入一个数字(输入非数字退出):10
- # 当前累加和是: 10.0
- # 请输入一个数字(输入非数字退出):24
- # 当前累加和是: 34.0
- # 请输入一个数字(输入非数字退出):5
- # 当前累加和是: 39.0
- # 请输入一个数字(输入非数字退出):11
- # 当前累加和是: 50.0
- # 请输入一个数字(输入非数字退出):myelsa
- # 输入的不是有效的数字,退出累加。
-
- # 循环输入多个值并存入列表
- # 循环输入多个值,并存入列表,直到输入'done'为止
- values = []
- while True:
- user_input = input("请输入一个值(输入'done'结束):")
- if user_input.lower() == 'done':
- break
- values.append(user_input)
- print("你输入的值列表是:", values)
- # 请输入一个值(输入'done'结束):1024
- # 请输入一个值(输入'done'结束):done
- # 你输入的值列表是: ['1024']
-
- # 循环输入直到输入有效选项
- # 循环输入,直到用户输入有效选项(例如1、2或3)
- while True:
- user_input = input("请选择以下选项(1-3):")
- if user_input in ['1', '2', '3']:
- print(f"你选择了选项{user_input}")
- break
- else:
- print("无效的输入,请重新选择")
- # 请选择以下选项(1-3):4
- # 无效的输入,请重新选择
- # 请选择以下选项(1-3):5
- # 无效的输入,请重新选择
- # 请选择以下选项(1-3):2
- # 你选择了选项2
-
- # 应用5:条件输入
- # 根据用户输入执行不同操作
- # 询问用户想要执行的操作
- user_input = input("你想做什么?(1)打印问候语,(2)计算数字,(3)退出:")
- # 根据用户输入执行不同的操作
- if user_input == '1':
- print("你好,欢迎来到这个程序!")
- elif user_input == '2':
- num1 = float(input("请输入第一个数字:"))
- num2 = float(input("请输入第二个数字:"))
- print("两个数字的和是:", num1 + num2)
- elif user_input == '3':
- print("感谢使用,再见!")
- else:
- print("无效的输入,请重新选择。")
- # 你想做什么?(1)打印问候语,(2)计算数字,(3)退出:1
- # 你好,欢迎来到这个程序!
-
- # 根据用户输入判断年龄范围
- # 询问用户年龄
- age = int(input("请输入你的年龄:"))
- # 根据年龄范围执行不同的操作
- if age < 0:
- print("年龄不能是负数,请重新输入。")
- elif age < 18:
- print("你还是未成年人。")
- elif age >= 18 and age < 65:
- print("你是成年人。")
- else:
- print("你是老年人。")
- # 请输入你的年龄:70
- # 你是老年人。
-
- # 根据用户输入进行多条件判断
- # 询问用户一些信息
- name = input("请输入你的名字:")
- grade = input("请输入你的成绩等级(A/B/C/D/F):")
- # 根据成绩等级和名字输出不同信息
- if grade == 'A':
- print(f"{name},你的成绩很优秀!")
- elif grade == 'B':
- print(f"{name},你的成绩良好。")
- elif grade == 'C':
- print(f"{name},你的成绩中等。")
- elif grade == 'D':
- print(f"{name},你的成绩需要努力。")
- elif grade == 'F':
- print(f"{name},很遗憾,你需要重新努力。")
- else:
- print("无效的成绩等级输入。")
- # 请输入你的名字:Myelsa
- # 请输入你的成绩等级(A/B/C/D/F):A
- # Myelsa,你的成绩很优秀!
-
- # 根据用户输入选择游戏难度
- # 询问用户想要的游戏难度
- difficulty = input("请选择游戏难度(easy/medium/hard):")
- # 根据难度选择执行不同的游戏逻辑
- if difficulty == 'easy':
- print("游戏难度设置为简单模式。")
- # 执行简单模式的游戏逻辑
- elif difficulty == 'medium':
- print("游戏难度设置为中等模式。")
- # 执行中等模式的游戏逻辑
- elif difficulty == 'hard':
- print("游戏难度设置为困难模式。")
- # 执行困难模式的游戏逻辑
- else:
- print("无效的难度选择,游戏将使用默认难度。")
- # 执行默认难度的游戏逻辑
- # 请选择游戏难度(easy/medium/hard):easy
- # 游戏难度设置为简单模式。
-
- # 应用6:异常处理
- # 处理ValueError异常
- try:
- user_input = input("请输入一个整数:")
- number = int(user_input)
- print("你输入的整数是:", number)
- except ValueError:
- print("对不起,你输入的不是一个有效的整数,请重新输入!")
- # 请输入一个整数:myelsa
- # 对不起,你输入的不是一个有效的整数,请重新输入!
-
- # 处理ZeroDivisionError异常
- try:
- dividend = float(input("请输入被除数:"))
- divisor = float(input("请输入除数(不能为0):"))
- result = dividend / divisor
- print("计算结果是:", result)
- except ZeroDivisionError:
- print("错误:除数不能为0,请重新输入!")
- except ValueError:
- print("输入的不是有效的数字,请重新输入!")
- # 请输入被除数:24
- # 请输入除数(不能为0):2
- # 计算结果是: 12.0
-
- # 自定义异常处理
- class InvalidInputError(Exception):
- pass
- def get_positive_integer():
- while True:
- try:
- user_input = input("请输入一个正整数:")
- number = int(user_input)
- if number <= 0:
- raise InvalidInputError("输入的数字必须大于0!")
- return number
- except ValueError:
- print("你输入的不是一个有效的整数,请重新输入!")
- except InvalidInputError as e:
- print(e)
- # 使用自定义函数
- positive_integer = get_positive_integer()
- print("你输入的正整数是:", positive_integer)
- # 请输入一个正整数:12
- # 你输入的正整数是: 12
-
- # 使用try-except-finally结构
- try:
- # 尝试执行可能会抛出异常的代码
- user_input = input("请输入一个文件名:")
- with open(user_input, 'r') as file:
- content = file.read()
- print("文件内容是:", content)
- except FileNotFoundError:
- print("文件未找到!请检查文件名是否正确?")
- except IOError as e:
- print("输入/输出错误:", e)
- finally:
- # 无论是否发生异常,这部分代码都会执行
- print("程序执行完毕!")
- # 请输入一个文件名:myelsa
- # 文件未找到!请检查文件名是否正确?
- # 程序执行完毕!
-
- # 应用7:构建交互式界面
- # 用户登录界面
- def login():
- users = {"admin": "123", "user": "456"}
-
- while True:
- username = input("请输入用户名:")
- password = input("请输入密码:")
-
- if username in users and users[username] == password:
- print("登录成功!")
- return
- else:
- print("用户名或密码错误,请重试!")
- # 调用登录函数
- login()
- # 请输入用户名:admin
- # 请输入密码:123
- # 登录成功!
略,待后补。
Python算法之旅:Algorithm
Python函数之旅:Functions
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。