Могу ли я сделать изменяющееся входное сообщение из списка в цикле for - PullRequest
0 голосов
/ 04 апреля 2019

Я создаю код, в котором есть список с именами, и код запрашивает возраст каждого человека.Можно ли создать циклический ввод для сообщения, постоянно меняющегося в соответствии с именем?

Я пробовал синтаксис печати, но, похоже, он не работал:

ages = [0] * 3

names = ["Julia", "Benjamin", "George"]

for i in range (0, 3):
    ages[i] = int(input("How old is", names[i]))

print(ages)

Ожидаемыйвывод будет список, содержащий возраст, например:

[23, 19, 34]

, но я получаю только сообщение об ошибке:

TypeError: raw_input() takes from 1 to 2 positional arguments but 3 were given.

Спасибо за помощь!

Ответы [ 6 ]

1 голос
/ 04 апреля 2019

input не использует тот же синтаксис, что и print, поэтому вы не можете написать:

input("How old is", names[i]) # doesn't work!!

, но вы должны передать ввод полной строки, например:

input("How old is {}?".format(names[i]))

Обратите внимание, что вы можете (и должны) избегать использования индексов при цикле:

names = ["Julia", "Benjamin", "George"]
ages = []

for name in names:
    ages.append(int(input("How old is {}?".format(name)))

print(ages)
0 голосов
/ 04 апреля 2019

Вы дали два аргумента для input (), разделив их запятой. Попробуйте

for i in range (0, 3):
    ages[i] = int(input("How old is " + names[i]))

или

for i in range (0, 3):
    ages[i] = int(input("How old is {}".format(names[i])))
0 голосов
/ 04 апреля 2019

Попробуйте это:

ages[i] = int(input("How old is " + names[i]))
0 голосов
/ 04 апреля 2019

Попробуйте это:

for i in range (0, 3):
    ages[i] = int(input("How old is "+names[i]))

ВЫХОД :

How old is Julia20
How old is Benjamin50
How old is George8
>>> ages
[20, 50, 8]
0 голосов
/ 04 апреля 2019

Просто измените строку:

ages[i] = int(input("How old is", names[i]))

By:

ages[i] = int(input("How old is" + names[i]))

Причина в том, что «+» создает новую строку, поэтому она считается только 1 аргументом.

0 голосов
/ 04 апреля 2019

Просто используйте форматирование строки:

input(f"How old is {names[i]}?")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...