input函数
input()是从控制台获取用户输入的信息,不论用户输入的是什么,input()都会返回字符串类型。 <变量> = input(<提示性文字>)
欢迎大家加入小编创建的Python行业交流群,有大牛答疑,有资源共享,有企业招人!是一个非常不错的交流基地!群号:683380553
-
a = input("请输入你的年龄:")
-
print(type(a))
Run and output!
-
请输入你的年龄:25
-
<class 'str'>
我们看到当我们运行代码时,我们输入的是数字,但是返回的数据类型是字符串。这点要注意哦!
eval函数
eval()可以将字符串类型转化成python对象。具体我们看下面的例子
-
print(eval("25"))
-
print(type(eval("25")))
Run and output!
-
25
-
<class 'int'>
可见eval将字符串转化为python中的整型数据类型。eval实际上能将字符串转化为任意的python对象,如变量名、函数名等。我们继续看几个例子
转化为变量名
eval将字符串转化为python里的变量
-
sentence = 'python is very easy to learn!'
-
eval('sentence')
Run and output!
-
'python is very easy to learn!'
-
#### 转化为函数名
-
def hello():
-
print('hello world!')
-
eval('hello')
Run and output!
-
<function __main__.hello()>
不要奇怪哦,因为上面的eval('hello')等同于hello,但是我们调用函数时候一定要加上括号。
-
eval('hello')()
Run and output!
-
hello world!
input与eval
实际上eval()与input()很像一对情侣,在python世界中形影不离。input用来获取用户输入的数据,而eval将输入的数据转化成python对象。
-
a = input('请输入一个列表:')
-
print(type(a))
-
print(type(eval(a)))
Run and output!
-
请输入一个列表:[1,2,3,4]
-
<class 'str'>
-
<class 'list'>
从图中我们看到,我们输入的列表经过input函数变成了字符串。为了在python程序中继续使用a的列表特性,我们必须使用eval将再转化为python列表对象。同理eval还可以将字符串转化为字典、元组、集合等python对象,这里就不一一做讲解了。