我正在研究在函数中使用变量的多种不同方法,但有一种方法我在大约一小时的网络搜索后无法弄清楚。我只是希望用户能够输入一个十进制数字,如“23.45”,程序打印确切的数字。我尝试了多种不同的方法,但我总是以错误或整数结束。我在PowerShell中运行它。这是一段代码:
def person(age, gender):
print "You are %d years old." % age
print "You are a %s" % gender
how_old = eval(raw_input("How old are you? "))
age = float(how_old)
person(age, "Male")
答案 0 :(得分:0)
更改
print "You are %d years old." % age
到
print "You are %g years old." % age
顺便说一下,eval
没有必要,float
转换就足够了。
答案 1 :(得分:0)
如果要显示完全用户输入的内容,请使用%s,方法与第二个print语句相同,然后删除第6行的浮动转换。使用%g或%d将例如,如果某人在21.345676543中键入,则会将其舍入到较少的小数位。当然,我无法想出任何可能的原因,有人会知道他们的年龄,但你永远不知道!
我第二次说不需要eval。