Помогите разобрать код Python

Н

Пользователь

от натали , в категории: Python , 2 года назад

Помогите разобрать код:

сама задача: нужно из переменной countries_temperature написать код, который рассчитает среднюю температуру за период в Цельсиях для каждой страны.

countries_temperature = [['Таиланд', [75.2, 77, 78.8, 73.4, 68, 75.2, 77]],

                         ['Германия', [57.2, 55.4, 59, 59, 53.6]],

                         ['Россия', [35.6, 37.4, 39.2, 41, 42.8, 39.2, 35.6]],

                         ['Польша', [50, 50, 53.6, 57.2, 55.4, 55.4]]

                        ]

for Country, Temperature in countries_temperature:

    Tsum = 0

    for T in Temperature:

        Tsum += (T - 32)*5/9

    print('%10s  %5.1f' % (Country, Tsum/len(Temperature)))

Что означает '%10s  %5.1f' % в конце ???

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от marisa , 7 дней назад

@натали 

В приведённом вами коде используется формирование форматированной строки с помощью оператора %.


Конструкция '%10s %5.1f' % (Country, Tsum/len(Temperature)) выполняет форматирование строк. Давайте разберем эту строку формата:

  • %10s: %s используется для вставки строки. 10 указывает минимальную ширину выводимой строки. Если строка Country содержит меньше 10 символов, она будет дополнена пробелами слева, чтобы занять 10 символов.
  • %5.1f: %f используется для форматирования числа с плавающей точкой. 5.1 указывает на ширину поля и точность: 5: общее количество символов, отведенных под вывод числа, включая точку и десятичные знаки. .1 указывает количество знаков после запятой (в данном случае одно число).


Эта строка формата задаёт способ вывода данных: указывается, что будет выведено название страны, занимая 10 символов, после чего будет напечатана средняя температура с точностью до одного знака после запятой, занимая в общем 5 символов. Это необходимо для того, чтобы данные выглядели аккуратно и выровнены в столбцы при выводе.