Проблема Python с умножением str / int - PullRequest
1 голос
/ 15 мая 2019

Итак, я пытаюсь умножить число, указанное в переменной, но всякий раз, когда я умножаю, он принимает его как строку и умножает строку, но когда я пытаюсь преобразовать переменную в int, синтаксис говорит, что это должно быть ул!

Я пытался превратить переменную в int перед строкой

def gamble_menu():
  global dice_amount
  dice_amount = input("How many dice? (higher dice count = higher wager multiplier) ")
  gamble_dice()

def gamble_dice():
  while True:

    print(str(dice_amount)); print("1 - " + (int(dice_amount)) * 6)
    print("You must guess the number rolled from the number of dice")
    print("Multiplier = *2")
    number_guess = input("#? ")
    if (int(number_guess)) < 0 or (int(number_guess)) > dice_amount * 6:
      print("Invalid integer, try again")

Я ожидаю, что он умножит переменную на число, но он принимает ее буквально

Ответы [ 5 ]

0 голосов
/ 15 мая 2019

Я предполагаю, что код, который вы включили, является неполным. Пожалуйста, добавьте больше деталей. Я исправил пару ошибок, в основном из-за того, как вы используете строки в Python. Немного неясно, что пытается сделать функция.

def gamble_dice(dice_amount): 

    while True:
        print(str(dice_amount)) 
        print("1 - ",  (dice_amount * 6))
        print("You must guess the number rolled from the number of dice")
        print("Multiplier = *2")
        number_guess = input("#? ")

    if number_guess < 0 or (number_guess > dice_amount * 6):
        print("Invalid integer, try again")
    else:
        print("right on!")

dice_amount = int(input("How many dice? (higher dice count = higher wager multiplier) "))

gamble_dice(dice_amount)
0 голосов
/ 15 мая 2019
def gamble_menu():
  global dice_amount
  dice_amount = input("How many dice? (higher dice count = higher wager multiplier) ")
  gamble_dice()

def gamble_dice():
  while True:

    print(str(dice_amount)); print("1 - " + str((int(dice_amount)) * 6))
    print("You must guess the number rolled from the number of dice")
    print("Multiplier = *2")
    number_guess = input("#? ")
    if (int(number_guess)) < 0 or (int(number_guess)) > dice_amount * 6:
      print("Invalid integer, try again")

print("1 - " + (int(dice_amount)) * 6) # this is that str + int, it is wrong.
print("1 - " + str((int(dice_amount)) * 6)) # this that str + str, it works.

Постарайся помочь тебе.

0 голосов
/ 15 мая 2019

Возможно, это потому, что вы пытаетесь объединить число и строку в функции печати. ​​

Попробуйте напечатать ("1 -" + str (int (dice_amount) * 6))

0 голосов
/ 15 мая 2019

Я думаю, что проблема с

print("1 - " + (int(dice_amount)) * 6)

Нельзя смешивать str + int. если вы на Python 3.7, как я, попробуйте:

print(f"1 - {int(dice_amount) * 6}")
0 голосов
/ 15 мая 2019

Похоже, ваш dice_amount - это строка. (int(number_guess)) > dice_amount * 6 пытается сравнить целое число со строкой. Попробуйте int(dice_amount) вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...