GOOGLE ADS

пятница, 29 апреля 2022 г.

Как печатать строки и целые числа в одной строке?

Я пытаюсь напечатать каждый элемент в следующих двух списках:

lNames = ['John','David','Michael']
lAges = [45,14,32]
with the format: "Person 0, Name: John, Age 34".
I tried adding another list:
```py
lPersons = [0, 1, 2]

Пробовал этот код:

lNames = ['John','David','Michael']
lAges = [45,14,32]
lPersons = [0, 1, 2]
for a in lNames:
for b in lAges:
for c in lPersons:
print("Person: " + c + ", Name: " + a + ", Age: " + b)

Это дало TypeError, потому что я неправильно комбинирую целые числа со строками при печати. Чего мне не хватает для желаемого результата?


Решение проблемы

Две проблемы:

  • В forциклах больше вложений, чем необходимо. Вы не хотите перебирать каждую комбинацию элементов из всех трех списков; скорее, у вас есть список людей и информация об этих людях, и вы хотите распечатать их информацию по одному человеку за раз. Для этого требуется только один проход по каждому списку.


  • Вы не можете объединить строку и целое число, как указано в ошибке. Вместо этого вы можете использовать f-строку.


  • Вот фрагмент кода, который решает обе проблемы:

    for i in range(len(lNames)):
    print(f"Person: {lPersons[i]}, Name: {lNames[i]}, Age: {lAges[i]}")

    Или, что еще лучше, используйте zip():

    for name, age, person_id in zip(lNames, lAges, lPersons):
    print(f"Person: {person_id}, Name: {name}, Age: {age}")

    Эти выходные данные:

    Person: 0, Name: John, Age: 45
    Person: 1, Name: David, Age: 14
    Person: 2, Name: Michael, Age: 32

    Комментариев нет:

    Отправить комментарий

    Laravel Datatable addColumn returns ID of one record only

    Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...