python 警告说 "Name "X" can be undefined"

python warnings saying "Name "X" can be undefined"

我是编程新手,我制作了一个运行良好的应用程序,但我收到警告说 "Name "X" can be undefined"。这是什么意思,我怎样才能摆脱警告?我正在使用 Python 3.8 和 Intelij IDE 2020.1。

这是我的问题的屏幕截图:

这是我的代码的最小回购:

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))

您必须添加第三个条件,其中值不等于 1 和 2 数字。因为如果用户输入了 1 或 2 之外的其他数字,则不会创建您打印的所有变量。

finish_time 将在以下情况下未定义:school_number 不等于 1 或 2,current_day 不等于 "mon",等等。在这种情况下,您的脚本将引发异常。所以你必须在 if school_number == 1:

行上方的某处定义 finish_time