目录
一、input函数的常见应用场景:
二、input函数使用注意事项:
三、如何用好input函数?
1、input函数:
1-1、Python:
1-2、VBA:
2、推荐阅读:
个人主页:神奇夜光杯-CSDN博客
一、input函数的常见应用场景:
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()函数来收集用户输入。
二、input函数使用注意事项:
使用Python的input()函数时,需要注意以下事项:
1、安全性和隐私保护:在获取用户输入时,特别要注意保护用户隐私和确保安全性,不要将敏感信息(如密码、个人身份信息)直接通过input()函数获取,而是应该使用更安全的方法来处理这些信息。
2、避免过度依赖用户输入:过度依赖用户输入可能导致程序逻辑复杂且容易出错,在设计程序时,应尽量减少对用户输入的依赖,或者提供默认值以简化输入过程。
3、考虑国际化和本地化:当面向不同语言和文化的用户时,需要考虑国际化和本地化的问题,确保提示信息和错误消息能够适应不同的语言和文化背景,以提高用户体验。
4、注意界面差异:input()函数通常用于命令行界面(CLI)的程序中,如果你正在开发一个图形用户界面(GUI)的程序,那么可能需要使用不同的方法来获取用户输入,比如通过按钮、文本框等控件。
5、输入长度限制:在某些情况下,你可能希望限制用户输入的长度,以避免程序处理过大的输入数据,可以通过在提示信息中说明长度限制,并在程序中检查输入长度来实现。
6、避免阻塞主线程:在GUI程序中,长时间运行的input()函数调用可能会阻塞主线程,导致界面无响应,在这种情况下,应该使用异步编程或线程来避免阻塞。
7、文档和注释:为使用input()函数的代码段提供适当的文档和注释,说明预期的输入类型、格式和用途,这有助于其他开发者理解你的代码,并减少潜在的错误和混淆。
综上所述,使用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函数:
1-1、Python:
# 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
# 登录成功!
1-2、VBA:
略,待后补。
2、推荐阅读:
1、Python-VBA函数之旅-hex()函数
Python算法之旅:Algorithm
Python函数之旅:Functions