如果某些数字是从用户输入中追加的,如何在列表中添加数字?

时间:2019-05-01 18:25:41

标签: python

我制作了一个简单的掷骰子游戏,包含了点和所有内容,但是我想实现下注。这个想法是,玩家将输入一个下注金额,该金额将从玩家的钱包中扣除并添加到下注中。此后,如果玩家获胜,则押注将被退还,包括赢利。

我设置了一个需要用户输入的变量,然后将其附加到列表中。之后,我设置了另外两个变量,这些变量通过sum()将列表中的所有内容加在一起。

代码:

scheduledExecutorService.scheduleWithFixedDelay(this::poll, 1, 10, TimeUnit.SECONDS);

例如

bet_numbers = []
bet = sum(bet_numbers)
user_input = input("How much would you like to bet?")
bet_numbers.append(user_input)
user_input_2 = input("How much would you like to bet?")
bet_numbers.append(user_input_2)
print(bet_numbers)
print(bet)

3 个答案:

答案 0 :(得分:2)

bet = sum(int(b) for b in bet_numbers)
print(bet)

填充bet_number之后,您再也没有总结。在打印sum

之前移动bet

此外,您正在使用str个输入,因此在求和之前需要将它们转换为int

答案 1 :(得分:1)

您的代码有一些错误

  1. 您正在汇总一个空列表,因为您在定义bet = sum(bet_numbers)bet_numbers = []

  2. 之后立即调用sum([])=0
  3. 即使您要下注后再致电bet = sum(bet_numbers),也不会成功,因为bet_numbers列表中的元素将是字符串,并且您不能求和字符串。我在下面尝试过,您会发现它不起作用


In [2]: sum(['2'+'2'])                                                          
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-b6e099608f0b> in <module>
----> 1 sum(['2'+'2'])

TypeError: unsupported operand type(s) for +: 'int' and 'str'
  1. 您两次调用相同的两行,而您可以使用for循环

考虑到所有这些,您的代码可以简化为

bet_numbers = []

#Run a for loop twice
for i in range(2):
    #Ask for user input, convert to int and apppend to list
    user_input = int(input("How much would you like to bet?"))
    bet_numbers.append(user_input)

#Sum all items in bet_numbers lis
bet = sum(bet_numbers)
print(bet)

示例输出为

How much would you like to bet?20
How much would you like to bet?30
50

答案 2 :(得分:0)

遵循声明投注的顺序等于0,因为它正确地计算了bet_numbers个项目的总和。

解决方案是在询问玩家的输入后放入bet = sum(bet_numbers)