3 и 1 интерпретируются как строки - PullRequest
0 голосов
/ 15 января 2019

Я делаю программу броска костей, в которой вы пытаетесь сделать бросок костей выше, чем на компьютере, хотя он полностью рандомизирован. У меня есть функция:

def wait(loop, time):
    sleep(time)
    for number in range(loop):
        print('.')
        sleep(time)

Это должно вызвать ... появление для ожидания.

Пример ввода:

wait(3, 1)

Предполагаемая мощность:

.
.
.

Где он повторяется 3 раза и ждет 1 секунду между циклами. Я получаю ошибку

TypeError: объект 'str' не может быть вызван

Я не понимаю, потому что это число, а не строка.

Я пытался использовать int () для каждой части и только для некоторых. Например:

def wait(loop, time):
    sleep(int(time))
    for number in range(int(loop)):
        print('.')
        sleep(int(time))

wait(int(3), int(1))

и

def wait(loop, time):
    sleep(int(time))
    for number in range(int(loop)):
        print('.')
        sleep(int(time))

wait(3, 1)

и

def wait(loop, time):
    sleep(time)
    for number in range(loop):
        print('.')
        sleep(time)

wait(int(3), int(1))

1 Ответ

0 голосов
/ 15 января 2019

Поскольку вы присваиваете строковое значение wait, это создает локальную переменную, которая переопределяет функцию с именем wait

 wait = input('\nPress enter to begin the game:')

Вы не можете тогда позвонить wait(3,1) позже, потому что '\nPress enter to begin the game:'(3,1) не имеет смысла.

...