Input是Python内置的标准输入函数,可以接收用户输入的文本、数字等信息,并以字符串类型返回。
Input的基础语法是: input(可选提示信息) 。使用起来很简单,但要注意一点,不管用户输入的是什么内容,input的返回值都是字符串。
比如我们使用input输入一个数字,然后想给这个输入的数字加1,直接相加的话运行就会出错,因为input得到的是一个字符串,需要先进行类型转换才行。
num_str = input("请输入一个数字:") # 输入数字5
print(num_str + 1) # 会出错
修正代码:
num_int = int(num_str) # 字符串转整数
print(num_int + 1) # 输出6
input函数一次只能接收一行输入,如果需要多行输入的话,可以用循环来实现。
比如我们用一个while循环,以空行为结束标记,把每行输入添加到字符串末尾,并加上换行符,这样就可以得到一个多行的文本。
s = ""
print("请输入多行内容,空行结束:")
while True:
i = input()
if not line: # 空行时退出循环
break
s += i + "\n"
print("输入的多行内容:\n", s)
当然也可以把每行放到一个列表里,这样就可以把每行拿出来单独处理:
lines_list = []
print("请输入多行内容,空行结束:")
while True:
line = input()
if not line:
break
lines_list.append(line)
print("输入的行列表:", lines_list)
在实际编写程序时,还需要考虑用户输入的内容可能不符合预期,比如要求输入数字时用户输入英文字母,因此通常需要用判断语句或异常捕捉进行合法性验证。
异常处理示例:
while True:
try:
age = int(input("请输入年龄(数字):"))
if age > 0:
print(f"年龄为:{age}")
break
except ValueError:
print("输入有误,请重新输入数字!")
另外,Input结合其他函数可以实现更复杂的输入处理。
比如让用户输入多个数据(用逗号隔开),结合 split() 函数得到字符串列表,再用 map() 转成数字列表:
# 输入示例:1,2,3,4
nums_str = input("请输入多个数字,用逗号分隔:")
nums_list = list(map(int, nums_str.split(',')))
print("数字列表:", nums_list) # 输出 [1, 2, 3, 4]
还有不建议的input与eval结合场景:
这两者结合可以直接得到用户输入的数字、列表或字典等,例如:
s = eval(input("请输入数据:"))
print("类型:", type(s))
print("内容:", s)
这种方式看似方便,但存在安全风险——用户可能输入破坏性代码(如 import os; os.system('rm -rf /') ),导致代码注入。
关于input的介绍就到这里。还有哪些需要补充或不明白的,可以在评论区一起探讨。