python世界中形影不离的一对情侣!你知道是哪对吗?

input函数

input()是从控制台获取用户输入的信息,不论用户输入的是什么,input()都会返回字符串类型。 <变量> = input(<提示性文字>)

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对象,这里就不一一做讲解了。

猜你喜欢

转载自www.cnblogs.com/qingdeng6359/p/10512594.html