python предупреждений о том, что «Имя« Х »может быть неопределенным» - PullRequest
0 голосов
/ 24 апреля 2020

Я довольно новичок в программировании, и я сделал приложение, которое работает нормально, но я получаю предупреждения о том, что "Имя" X "может быть неопределенным". Что это значит и как я могу избавиться от предупреждения? Я использую Python 3.8 с Intelij IDE 2020.1.

Вот скриншот моей проблемы:

enter image description here

Вот минимальное количество репо моего кода:

print("1. school a \n2. school b")
while True:
    try:
        school_number = int(input("\nEnter the number of what school you are at: "))
        break
    except ValueError:
        print("That was an invalid number.  Please try again...\n")

current_day = input("Please enter what day it is (mon/tue etc): ".lower())

if school_number == 1:
    school_name = "school A"
    cost = (7.50 * 2)
    leave_time_multiplier = 1.15
    if current_day == "mon":
        start_time = 09.30
        finish_time = 14.30
    else:
        pass

if school_number == 2:
    school_name = "school B"
    cost = (9.50 * 2)
    leave_time_multiplier = 1.25
    if current_day == "mon":
        start_time = 17.00
        finish_time = 20.30
    else:
        pass

# renames the days
if current_day == "mon":
    day = "Monday"
else:
    day = "Other"

leave_time = start_time - leave_time_multiplier - 1

print("\nOn {} at {}: It will cost {:.2f} return. You start at {:.2f} and finish at {:.2f} You should leave at"
      "{:.2f}".format(day, school_name, cost, start_time, finish_time, leave_time))

Ответы [ 2 ]

1 голос
/ 24 апреля 2020

finish_time будет неопределенным в случае: school_number не равно 1 или 2, current_day не равно "mon", et c. В таких случаях ваш скрипт вызовет исключение. Таким образом, вы должны определить finish_time где-то выше строки с if school_number == 1:

0 голосов
/ 24 апреля 2020

Вы должны добавить третье условие, где значение не равно 1 и 2 числа. Потому что, если пользователь введет другое число, отличное от 1 или 2, все переменные, которые вы напечатаете, не будут созданы.

...