leb*_*ski 5 python eval type-conversion
在Python 3中,我编写了一个简单的命令来接受来自用户的整数输入:
x = int(input("Enter a number: "))
Run Code Online (Sandbox Code Playgroud)
如果我跳过该int()部分并简单地使用x = input("Enter a number: "),我的输入数据类型是一个字符串,而不是整数.我明白那个.
但是,如果我使用以下命令:
x = eval(input("Enter a number: "))
Run Code Online (Sandbox Code Playgroud)
输入的数据类型是'int'.
为什么会这样?
为什么会这样?
x = eval(input("Enter a number: ")) 与...不是一回事 x = eval('input("Enter a number: ")')
前者首先调用input(...),获取一个字符串,例如'5'然后对其进行评估,这就是为什么你得到一个int,这样:
>>> eval('5') # the str '5' is e.g. the value it gets after calling input(...)
5 # You get an int
Run Code Online (Sandbox Code Playgroud)
而后者(更符合您的期望),评估表达式 'input("Enter a number: ")'
>>> x = eval('input("Enter a number: ")')
Enter a number: 5
>>> x
'5' # Here you get a str
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12439 次 |
| 最近记录: |