https://pastebin.com/ztix8Aue
def namex3(): ask = input("What is your name?") name = ask for i in range(name): print(name * 3) namex3()
Я пытаюсь определить функцию namex3, которая принимает аргумент «Name» и печатает «hello» {name} три раза на экране, однако я получаю сообщение об ошибке Cannot be interpreted as an integer, как бы это исправить?
Cannot be interpreted as an integer
Попробуйте, если вы собираетесь использовать функцию:
def namex3(): print(*["hello " + input("What is your name?")]*3, sep = "\n") namex3()
Продолжая из комментариев выше, исправлено:
def namex3(): ask = input("What is your name?") for i in range(3): print(ask) namex3()
OUTPUT
What is your name?TFX TFX TFX TFX
Это потому, что вы пытаетесь range('hello')
range('hello')
range() ожидает целочисленные аргументы, но вы передаете 'hello', который является строкой.
range()
Поскольку OP запросил функцию, которая будет печатать «Hello {name}» три раза, вот она:
def name_three_times(): name = input("What is your name?") print(f'Hello {name}\n' * 3)
Обратите внимание на использование f-строк: https://realpython.com/python-f-strings/
У вас почти было это:
def namex3() name = input("What is your name? ") for i in range(3): print("Hello", name) namex3()
Обратите внимание, что каждый уровень отступа - это 4 пробела, что является рекомендуемым стилем в Python.
Вы можете даже сократить его до
name = "some name" print(name * 3)
или (с переводом строки):
print("{}\n".format(name) * 3)