在这里总结一些python输入格式的处理方法。首先介绍一下input()函数和eval()函数。

【函数介绍】

【input()函数介绍】

input()函数的功能是从键盘读取一行字符串,遇到换行符时结束读取,所以,当输入回车时,input()函数的读取就结束了。需要注意的一点是:无论用户输入的是字符还是数字,input()函数统一按照字符串类型输出。因此input()的输出类型是str。
在调用input()函数的时候,为了提高程序的交互性,可以打印出一行提示信息,如:

input("请输入一个整数:")

运行后,就会有一条提示语句:
在这里插入图片描述

如果需要读入一个字符串,直接调用input()就可以解决,而当我们要读入整数或者浮点数的时候,就可以借助eval()函数进行处理。虽然,也可以利用int(input())或者float(input())进行处理,但是,用eval(input())是一个很好用的公式,所以还是比较推荐的。

【eval()函数】

eval(<字符串>)能够以Python表达式的方式解析并执行字符串,并将返回结果输出。eval()函数将去掉字符串的两个引号,将其解释为一个变量。所以eval(input())是一个很好用的公式,可以用于从键盘读入数字。
例如:

name=input()
age=eval(input())
weight=eval(input())
print(type(name),type(age),type(weight))

在这里插入图片描述
可以看到,Jack、age、weight三个变量分别为str、int、float

【常见输入格式处理方式】

【输入一个列表】

使用上面讲的eval(input())组合就可以解决。
如:

mylist=eval(input())
print(type(mylist))
print(mylist)

执行后,分别输入数字列表和字符串列表都可以正确解析。
在这里插入图片描述

【空格分隔的多项输入】

  1. 获取以空格分隔的字符串
    使用input().split(),可以得到由这些字符串组成的列表。
    如:
names=input().split()
print(type(names))
print(names)

在这里插入图片描述
2. 获取以空格分隔的数字
有一个比较好理解的方法,就是先用上面类似于字符串的处理方式,获取到一个列表,然后再挨个转换成相应的类型。
例如:

ages=input().split()
age1=eval(ages[0])
age2=eval(ages[1])
print(type(age1),age1,type(age2),age2)

在这里插入图片描述
此外,我们还可以借用map()函数进行处理。
如:

name1,name2,name3=map(str,input().split())
age1,age2,age3=map(int,input().split())
weight1,weight2,weight3=map(float,input().split())
print(type(name1),type(age1),type(weight1))
print(name1,age1,weight1)
print(name2,age2,weight2)
print(name3,age3,weight3)

在这里插入图片描述

【逗号分隔的多项输入】

  1. 逗号分隔的多个数字组成的列表
    有一个投机取巧的方法:就是把两边的中括号补上,再用eval()函数:
ages=eval('['+input()+']')
print(ages)

在这里插入图片描述

此外,也可以像上面用空格分隔的时候一样用split()函数,只要加上一个逗号做为参数就可以。

  1. 逗号分隔的多个字符串组成的列表
    类似于空格分隔的处理方式,在split()函数里加上一个逗号作为参数即可。
    如:
name1,name2,name3=map(str,input().split(','))
age1,age2,age3=map(int,input().split(','))
weight1,weight2,weight3=map(float,input().split(','))
print(type(name1),type(age1),type(weight1))
print(name1,age1,weight1)
print(name2,age2,weight2)
print(name3,age3,weight3)

在这里插入图片描述

常见的python输入格式的处理方法暂时就是这些,后面遇到好的方法或者其他情况再补上。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐