Как вырваться из петли Python - PullRequest
0 голосов
/ 21 октября 2019

Мне нужно написать организатора (от Цельсия до Кельвина, от Кельвина до Цельсия ...). Пользователь пишет: a - градусы (например, 0), b - например: Кельвин, c - например: Цельсий.

Упражнение: Формат ввода Есть несколько строк ввода. Каждая строка состоит из трех слов. Первое слово указывает на начальную температуру. Второе слово указывает на начальную шкалу. Третье слово указывает целевую шкалу.

Ограничения Возможные шкалы: {"Кельвин", "Цельсий", "Фаренгейт"}. Температура до 1000 градусов. Когда начальная температура ниже абсолютного нуля, выведите «NO». Число в выходных данных должно сохранять точность с точностью до второго десятичного знака.

Формат вывода Для каждой входной строки одно число, которое является расчетной температурой (с точностью до двух десятичных знаков) или словом «НЕТ».

Это для хакерна

Ошибка:

Traceback (most recent call last):
  File "C:/Users...", line 4, in <module>
    a, b, c = input().split()
ValueError: not enough values to unpack (expected 3, got 0)

Код:

while True:
    a, b, c = input().split()
    if int(a) < 0:
        print('NO')
    else:

Выйти из цикла, когда пользователь прекратит запись.

1 Ответ

1 голос
/ 21 октября 2019

Догадываясь об одном возможном решении:

a, b, c = input().split()

Этот код требует ровно три непустых поля в строке. Вы можете проверить это;

user_stuff = input().split()
if len(user_stuff) != 3:
    break
a, b, c = user_stuff

Ваша ссылка подразумевает, что вы читаете из файла, переданного по каналу stdin, а не из живого пользовательского ввода. В этом случае вы должны обработать sys.stdin как файл:

from sys import stdin

for line in stdin:
    a, b, c = line.split()
    ...
...