18次课,eval 似乎已经不能在Python3.6 用来做字符串和整数的转换了

rmb_str_value = input ('please input RMB money:')


rmb_value = eval('rmb_str_value')

usd_vs_rmb = 6.77

usd_value = rmb_value / usd_vs_rmb

print('$USD is', usd_value);
~~Error~~~~~
/Users/Eva/PycharmProjects/3/venv/bin/python /Users/Eva/PycharmProjects/3/venv/currency_converter_v1.0.py
please input RMB money:100
Traceback (most recent call last):
  File "/Users/Eva/PycharmProjects/3/venv/currency_converter_v1.0.py", line 8, in <module>
    usd_value = rmb_value / usd_vs_rmb
TypeError: unsupported operand type(s) for /: 'str' and 'float'

Process finished with exit code 1


 

小象老师a

赞同来自: fish

同学您好,非常感谢您的提问~~您的代码中需要把 eval('rmb_str_value') 两边的引号去掉,改成 eval(rmb_str_value)。前者表示的是一个内容为 rmb_str_value 的字符串,后者才是我们真正需要转换的变量的名字,要注意不要弄混了哦~~
rmb_value = eval(
'rmb_str_value'
)
问题出在这一句上~~

要回复问题请先登录注册