Я пытаюсь добавить два целых числа в python, но кажется, что переменные являются строкой? Вот отрывок из моего кода:Python не может добавить два целых числа, думая, что это строки
raiseAmount1 = int
raiseAmount2 = int
while end == False:
action1 = raw_input(str(Players.player1)[9:] + ", what is your move? (r/c/f):")
if action1 == 'f':
Players.player2.score = Players.player2.score + 1
game().winner = str(Players.player2)[9:]
end = True
elif action1 == 'r':
raiseAmount1 = raw_input("Raise by: ")
Players.player1.money = Players.player1.money - raiseAmount1
Table.pot = Table.pot + raiseAmount1
end = False
(Полный код здесь: http://pastebin.com/T6N8gmJk)
А вот ошибка:
Welcome to texas holdem!
You are on round: 0
human, what is your move? (r/c/f):r
Raise by: 80
Traceback (most recent call last):
File "poker.py", line 144, in <module>
game()
File "poker.py", line 18, in game
playGame()
File "poker.py", line 129, in playGame
bettingRound()
File "poker.py", line 96, in bettingRound
Players.player1.money = Players.player1.money - raiseAmount1
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Так что программа считает, что либо raiseAmount1 или Players.player1 .money - это строка.
Если я конвертирую обе переменные в целое число с помощью int()
, он продолжается как обычно, но затем снова разрывается на следующей строке при добавлении Table.pot для увеличения суммы единицы. Я делаю то же самое с int()
, но на этот раз он не работает.
Я не вижу, как python думает, что переменные являются строкой, потому что все они ранее определены как целые числа.
Я думаю, что наиболее вероятная причина, о которой я могу думать, заключается в том, что когда программа устанавливает Player.player1 = ai (or human)
, она не переносит целое свойство?
Что вы ожидаете от этого? raiseAmount1 = int – BlackBear
, пожалуйста, прочитайте учебник python! –