我制作了一个简单的掷骰子游戏,包含了点和所有内容,但是我想实现下注。这个想法是,玩家将输入一个下注金额,该金额将从玩家的钱包中扣除并添加到下注中。此后,如果玩家获胜,则押注将被退还,包括赢利。
我设置了一个需要用户输入的变量,然后将其附加到列表中。之后,我设置了另外两个变量,这些变量通过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)
答案 0 :(得分:2)
bet = sum(int(b) for b in bet_numbers)
print(bet)
填充bet_number
之后,您再也没有总结。在打印sum
bet
此外,您正在使用str
个输入,因此在求和之前需要将它们转换为int
答案 1 :(得分:1)
您的代码有一些错误
您正在汇总一个空列表,因为您在定义bet = sum(bet_numbers)
和bet_numbers = []
sum([])=0
即使您要下注后再致电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'
考虑到所有这些,您的代码可以简化为
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)