Python 有没有一种方法可以持续要求用户输入一个数字,这样输入的每个数字都会对现有词典的价值有所贡献?

Python 有没有一种方法可以持续要求用户输入一个数字,这样输入的每个数字都会对现有词典的价值有所贡献?,python,dictionary,Python,Dictionary,以下是我正在编写的代码: ans = raw_input('Enter Amount of Players: ').lower() cf={} if ans == '2': p1 = raw_input('What is Player 1 named:') p2 = raw_input('What is Player 2 named:') cf[p1] = '50' cf[p2] = '50' ques = raw_input('Enter Amount Name

以下是我正在编写的代码:

ans = raw_input('Enter Amount of Players: ').lower()
cf={}
if ans == '2':
    p1 = raw_input('What is Player 1 named:')
    p2 = raw_input('What is Player 2 named:')
    cf[p1] = '50'
    cf[p2] = '50'
ques = raw_input('Enter Amount Name: ').lower()
if ques == p1:
    ques = p1
elif ques == p2:
    ques = p2
elif ques == p3:
    ques = p3
elif ques == p4:
    ques = p4
elif ques == p5:
    ques = p5
elif ques == p6:
    ques = p6
elif ques == p7:
    ques = p7
elif ques == p8:
    ques = p8

inc = raw_input(ques + ' Enter Amount of Increase: ').lower()
if inc > str(0):
    def cva(x):
        y = cf[ques]
        y = float(y)
        return x + y
    num = inc
    num = float(num)
    cf[ques]=cva(num)
    for item in cf:
        print item, cf[item]
我如何得到这个:

ques = raw_input('Enter Amount Name: ').lower()
if ques == p1:
    ques = p1
elif ques == p2:
    ques = p2
elif ques == p3:
    ques = p3
elif ques == p4:
    ques = p4
elif ques == p5:
    ques = p5
elif ques == p6:
    ques = p6
elif ques == p7:
    ques = p7
elif ques == p8:
    ques = p8

inc = raw_input(ques + ' Enter Amount of Increase: ').lower()
if inc > str(0):
    def cva(x):
        y = cf[ques]
        y = float(y)
        return x + y
    num = inc
    num = float(num)
    cf[ques]=cva(num)
    for item in cf:
        print item, cf[item]
继续重复无限?我的意思是,当用户输入一个数字时,该数字将被添加到字典中已经存在的值中。有没有一种方法可以持续要求用户输入一个数字,这样输入的每个数字都会对字典的价值产生影响

  • 您不需要嵌套的
    if…elif
    。如果它等于它自己,那么单独设置它是没有用的
  • 使用
    ,如果为True:
    ,则可以根据需要启动死循环
  • 在循环外部定义函数
    def cva(x)
    。您不想多次定义它
  • if inc>str(0)
    替换为
    if int(inc)>0
    ,以检查
    inc
    是否大于0

  • 试试这个:

    ans = raw_input('Enter Amount of Players: ').lower()
    cf={}
    if ans == '2':
        p1 = raw_input('What is Player 1 named:')
        p2 = raw_input('What is Player 2 named:')
        cf[p1] = '50'
        cf[p2] = '50'
    
    def cva(x):
        y = cf[ques]
        y = float(y)
        return x + y
    
    while True:
        ques = raw_input('Enter Amount Name: ').lower()
        inc = raw_input(ques + ' Enter Amount of Increase: ').lower()
        if int(inc) > 0:
            cf[ques]=cva(float(inc))
            for item in cf:
                print item, cf[item]
    

    如果你想让它永远重复某件事,你可以尝试一下while循环。例如:

    p = True
    while p == True:
    
    您可以将其放在要重复的代码的开头,并在后面的每一行前面加上制表符(或4个空格)。此外,如果您想在给定的次数内执行此操作,可以执行for循环:

    for x in range(1,1000):
    #Change the 1000 to whatever number you want
    
    你可以把它放在你想重复的代码前面,然后再把代码按tab键。
    如果这不能解决您的问题,请评论并说出您需要我解决的问题。

    通过执行所有这些If语句,您想要实现什么?您正在检查它是否等于某个值,如果等于,则将其设置为已等于的值?您的代码很难阅读;你应该澄清预期的结果。目标是(1)输入字符串,(2)输入值,(3)将与字符串关联的字典值增加该值吗?