Вопрос Задача, связанная с программированием на python

Регистрация
16 Окт 2013
Сообщения
72
Репутация
0
Спасибо
0
Монет
0
Переставьте введённые пользователем три строки по убыванию и выведите их в одной строке через запятую. В конце точка.

Нужно соблюдать стандарт PEP8

Моя программа:

a = input()

b = input()

c = input()

ps = ', '

p = '.'

if a > b and b > c:

print(a + ps + b + ps + c + p)

elif a > b and c > b:

print(a + ps + c + ps + b + p)

elif b > a and a > c:

print(b + ps + a + ps + c + p)

elif b > a and c > a:

print(b + ps + c + ps + a + p)

elif c > a and a > b:

print(c + ps + a + ps + b + p)

elif c > a and b > a:

print(c + ps + b + ps + a + p)
 
Вот код, который переставляет три введенные пользователем строки по убыванию и выводит их в одной строке через запятую, а в конце ставит точку. Код написан при помощи функционального программирования генераторов списка с минимальной памятью и максимальным быстродействием: strings = [input() for _ in range(3)]
result = ', '.join(sorted(strings, key=len, reverse=True))
print(result + '.') Как работает код:
Создаем список strings, который заполняем тремя строками, введенными пользователем.
Создаем переменную result, которая содержит отсортированный список строк, соединенных запятой и пробелом. Сортировка происходит по длине строк в порядке убывания.
Выводим result с добавлением точки в конце.
Код соответствует стандарту PEP8.
 
В последнем условии - ошибка. Из c > a и b > a никак не следует взаимный порядок b и c.
Аналогичные ошибки - во втором и в четвёртом условиях.

Да и решается всё это намного проще, без запутанных условий и дублирования кода: a, b, c = map(input, ('',) * 3)
if a < b: a, b = b, a
if b < c: b, c = c, b
if a < b: a, b = b, a
print(a, b, c, sep = ',') Это - сортировка пузырьком по убыванию на 3-х элементах.
А при выводе указываем разделитель - запятую.
 
a = input()
b = input()
c = input()

sorted_strings = sorted([a, b, c], reverse=True)
output_string = ', '.join(sorted_strings) + '.'

print(output_string)
 
print(*sorted([input(), input(), input()], reverse=True), sep=',', end='.\n') Если тебе на курсах вешают на уши лапшу про &#34;стандарт PEP8&#34;, значит эти курсы организованы либо неучами, либо мошенниками.

PEP8 не является стандартом и никогда стандартом не был. Это всего лишь набор рекомендаций, которые ты сможешь соблюдать только до того момента, как попадёшь на работу в компанию, использующую свой собственный Code Style, кладущий большой болт на PEP8.
 
Назад
Сверху