Печать str три раза дает ошибку «не может быть истолковано как int» - PullRequest
0 голосов
/ 05 марта 2019

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, как бы это исправить?

Ответы [ 6 ]

1 голос
/ 05 марта 2019

Попробуйте, если вы собираетесь использовать функцию:

def namex3():
    print(*["hello " + input("What is your name?")]*3, sep = "\n")
namex3()
1 голос
/ 05 марта 2019

Продолжая из комментариев выше, исправлено:

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
0 голосов
/ 05 марта 2019

Это потому, что вы пытаетесь range('hello')

range() ожидает целочисленные аргументы, но вы передаете 'hello', который является строкой.

0 голосов
/ 05 марта 2019

Поскольку 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/

0 голосов
/ 05 марта 2019

У вас почти было это:

def namex3()
    name = input("What is your name? ")
    for i in range(3):
        print("Hello", name)

namex3()

Обратите внимание, что каждый уровень отступа - это 4 пробела, что является рекомендуемым стилем в Python.

0 голосов
/ 05 марта 2019

Вы можете даже сократить его до

name = "some name"
print(name * 3)

или (с переводом строки):

print("{}\n".format(name) * 3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...