项目场景:
数据转换错误
问题描述
"""input输入一个小数, 请尝试转换成整数 字符串及浮点数."""
a = input("请输入一个小数:")
a1 = int(a)
a2 = str(a)
a3 = float(a)
print("转换为整数是:%d" % a1)
print("转换为字符串是:%s" % a2)
print("转换为浮点数是:%.2f" % a3)
Traceback (most recent call last):
File "D:\study\006数据类型转换0425\数据类型的转换作业0425.py", line 3, in <module>
a1 = int(a)
ValueError: invalid literal for int() with base 10: '3.66'
原因分析:
这句话的大概意思就是参数传递的数据类型的字面意义不是基于10进制的,比如将字符串'abc'作为参数传递给int()方法就会抛出这样的ValueError。
解决方案:
eval(expression[,globals[,locals]])
使用eval函数:
expression:表达式。
globals:变量作用域,如果被提供,必须是一个字典对象。
locals:变量作用域,如果被提供,可以说任何映射对象。
"""input输入一个小数, 请尝试转换成整数 字符串及浮点数.""" a = eval(input("请输入一个小数:")) a1 = int(a) a2 = str(a) a3 = float(a) print("转换为整数是:%d" % a1) print("转换为字符串是:%s" % a2) print("转换为浮点数是:%.2f" % a3)