@Robin_TY Eval后面的内容必须加引号的问题

在学习梁老师的零基础Python入门的第一个案例汇率转换的第一课时,下面第二行eval语句括号中的内容我必须得加上引号代码才可以工作,否则报错,请问为什么?
rmb_str_value = input('Please input RMB:')
rmb_value = eval('rmb_str_value')
rate = 6.77
usd_value = rmb_value / rate
print('The US dollar is:', usd_value)
如eval后不加引号报错如下: Traceback (most recent call last):   File "/Users/beebeeye/Study/PythonWechatClass/PyCharmProjects/ExchangeRate/currency_convertor_v1.0.py", line 8, in <module>     rmb_value = eval(rmb_str_value) TypeError: eval() arg 1 must be a string or code object

fish - Hadooper

赞同来自:

因为eval中传入的参数必须是字符串或者变量,代码中 rmb_str_value 不加引号什么都不是。

beebee

赞同来自:

可是老师的教程里就没有加引号

Scottsco

赞同来自:

我也是必须加引号,不然就报错

 
# -*- coding: utf-8 -*
rmb_str_value = input('请输入人民币(CNY)金额: ')

rmb_value  = eval(rmb_str_value)

usd_vs_rmb = 6.77

usd_value = rmb_value / usd_vs_rmb

print('美元(USD)金额是:',usd_value)
 
/Users/lianyuan/PycharmProjects/untitled/venv/bin/python /Users/lianyuan/PycharmProjects/untitled/venv/lib/currency_converter_1.0.py
请输入人民币(CNY)金额: 1000
Traceback (most recent call last):
  File "/Users/lianyuan/PycharmProjects/untitled/venv/lib/currency_converter_1.0.py", line 4, in <module>
    rmb_value  = eval(rmb_str_value)
TypeError: eval() arg 1 must be a string or code object

Process finished with exit code 1

fish - Hadooper

赞同来自:

image.png
你用的是Python 3 么?

要回复问题请先登录注册