这是我最后一个问题的重新发布,不太清楚。这就是我所拥有的:
cf={p1:50}
inc = raw_input('Enter Amount of Increase: ').lower()
if inc > 0:
num = inc
float(num)
for p1 in cf:
cf[p1] = num + cf[p1]
print cf[p1]
当我输入2时,由于某种原因,此代码继续给我答案250.我希望在输入2时得到答案52.我认为发生的事情是添加我在前面输入的数字50而不是添加50 +输入来查找2个数字的总和。无论如何我可以解决这个问题吗?
答案 0 :(得分:2)
float(num)
不会将num
更改为float,而是返回字符串num
的浮点数。尝试
num = float(num)
此外,您正在对字符串inc > 0
进行比较inc
,只要它具有值,它就始终为True
。在执行此操作之前,您可能应该将输入转换为float
。
cf = {p1: 50}
inc = raw_input('Enter Amount of Increase: ')
num = float(inc)
if num > 0:
for p1 in cf:
cf[p1] = num + cf[p1]
print cf[p1]
答案 1 :(得分:1)
inc是输入时的字符串,'2'
示例:
>>> inc = raw_input("Enter number: ")
Enter number: 2
>>> type(inc)
str
cf[p1]
的值是一个int 50,根据你上面的代码
实际上将num转换为你需要做的浮动
num = float(num)
float(num)
本身不进行任务
所有在一起:
inc = input("Enter Amount of Increase: ")
num = float(inc) #shorter way
if num > 0:
for p1 in cf:
cf[p1] += num # adds num to the value in cf[p1]
print cf[p1]
请注意,cf [p1]现在本身就是一个浮点数。将结果添加到浮点数时 是一个漂浮物。
答案 2 :(得分:0)
以下是我使用bnjmn的答案所做的:
inc = raw_input('Enter Amount of Increase: ').lower()
def cva(x):
return x + 50
if inc > str(0):
num = inc
num = float(num)
print cva(num)
我做了一个简单的功能