Как исправить отображение фигурных скобок в строке ввода? - PullRequest
1 голос
/ 24 июня 2019

У меня есть некоторый базовый код для бросания кубиков в python3, мое поле ввода выдает фигурные скобки вместо желаемого целого числа.Как я могу получить мое целое число вместо моих фигурных скобок?

Для личного проекта, пытающегося лучше понять Python.Я ничего не пробовал, так как я все еще новичок в Python и не знаю, с чего начать.Пробовал искать здесь, находил вещи либо слишком продвинутые для меня, чтобы понять, либо проблемы, более конкретные, чем мне нужно.

from random import randint

def roll(sides, number):
    return [randint(1, sides) for i in range(number)]

sides = int(input("\nHow many sides do you want on your dice?:  "))
number = int(input("\nHow many {} sided dice do you want to roll?:  "))
results = roll(sides, number)

sides = int(sides)
number = int(sides)
print(results)

Ожидаемый результат, если я введу 10 и 2 (в качестве примера): сколько сторон вы хотите получить на своем кубике ?: Сколько 10-гранных кубиков вы хотите бросить ?: 2

Вместо этого вывод: Сколько сторон вы хотите на своей кости ?: 10

Сколько {} односторонних кубиков вы хотите бросить ?: 2

Я прошу прощения, если этоэто глупый вопрос, но я не уверен, с чего начать.

Заранее извиняюсь, если форматирование здесь странное, это мой первый пост здесь, и я не уверен в правильности методов.

1 Ответ

1 голос
/ 24 июня 2019

Если вы используете Python 3.6 или выше, вы можете использовать Отформатированные строковые литералы , используя префикс "f", например: f"your {var} variable".Например:

number = int(input(f"\nHow many {sides} sided dice do you want to roll?:  "))

Или вы можете явно использовать метод format :

number = int(input("\nHow many {sides} sided dice do you want to roll?:  ".format(sides=sides)))

или

number = int(input("\nHow many {} sided dice do you want to roll?:  ".format(sides)))
...