学校作业出现Python错误,未定义乘车时间

学校作业出现Python错误,未定义乘车时间,python,Python,当我运行代码时,我得到一个错误,说我的乘车时间没有定义。我对Python非常陌生 Traceback (most recent call last): File "main.py", line 36, in <module> if ride_time<=30: NameError: name 'ride_time' is not defined 打印菜单:\n如果您有年度订阅,请输入1\n如果您有每日订阅,请输入2。 subscription\u status=i

当我运行代码时,我得到一个错误,说我的乘车时间没有定义。我对Python非常陌生

Traceback (most recent call last):
  File "main.py", line 36, in <module>
    if ride_time<=30:
NameError: name 'ride_time' is not defined
打印菜单:\n如果您有年度订阅,请输入1\n如果您有每日订阅,请输入2。 subscription\u status=intinput请输入您的订阅类型:存储订阅类型 如果订阅状态==1或订阅状态==2: 欢迎来到自行车分享!!!! 我想知道你的票价: 打印1。星期一\n2.星期二\n3.星期三\n4.星期四\n5.星期五\n6.星期六\n7.星期日 now=INTINPUT请输入一个有效的日数: 取货时间=输入请以分钟为单位输入取货时间: drop\u off\u time=IntInput请输入您的drop\u time(分钟): def计算车费、乘车时间、下车时间: 计算车费、上车时间、下车时间 def计算票价、上车时间、下车时间:计算公平功能 乘车时间=下车时间-上车时间 如果骑乘时间30和骑乘时间60和骑乘时间120和骑乘时间600: 因为您的骑行时间超过10小时。所以你需要罚款50美元 其他: 打印您输入了错误信息..\n请重试..\n谢谢 您需要在最后一条语句的开头删除def关键字,我假设ride_time是一个变量,但您向解释器建议它是一个函数

编辑1: 此外,calculate_fare定义了两次,这是不正确的。您可能希望删除calculate_fare的第一个声明,以使代码语法正确

Edit2:您希望返回函数calculate_fare的值,这样,当您从代码中调用它时,函数将执行计算并返回结果。然后,您希望将结果存储在一个变量中,以您的情况为例

另外,我还建议您遵循Python基础教程,学习函数、变量和条件语句,如。

您定义函数

def calculate_fare(now,pickup_time,drop_off_time): # Calculate_fair function

  ride_time = drop_off_time-pickup_time
创建可变行驶时间,但在函数内部创建的变量是局部变量,在函数外部不可访问。这样,您可以在不同的函数中使用相同的名称,并且一个函数中的变量不会意外更改另一个函数中的值

若你们真的需要使用这个函数,那个么你们应该使用return来返回这个函数的值,你们必须执行这个函数来计算并得到这个值

# define function
def calculate_fare(now,pickup_time,drop_off_time): # Calculate_fair function
    result = drop_off_time-pickup_time
    return result

# use function
ride_time = calculate_fare(now,pickup_time,drop_off_time)
完整代码

# --- functions ---

def calculate_fare(pickup_time, drop_off_time): # Calculate_fair function
    ride_time = drop_off_time - pickup_time
    return ride_time

# --- main ---

print(" Menu:\n Enter 1 if you have annual subscription. \n Enter 2 if you have a daily subscription.")

subscription_status = int(input(" Please enter your subscription type: ")) #Storing subscription type

if subscription_status == 1 or subscription_status == 2:
    print("Welcome to Bike Share!!!!")
    print("Want to know your fare :")
    print("1. Monday\n2.Tuesday\n3.Wednesday\n4.Thursday\n5.Friday\n6.Saturday\n7.Sunday")

now = int(input("Please enter a valid day(in number): "))
pickup_time = int(input("Please enter your pick up time(in minutes) :"))
drop_off_time = int(input("Please enter your drop of time(in minutes) :"))

ride_time = calculate_fare(now, pickup_time, drop_off_time)

if ride_time <= 30:
  print("Your fair for journey is 0.")
elif 30 < ride_time <= 60:
  print("Your fair for journey is 1 dollar.")
elif 60 < ride_time <= 120:
  print("Your fair for journey is 3 dollar.")
elif 120 < ride_time <= 600:
  print("Your fair for journey is 7 dollar.")
elif ride_time > 600:
  print("Since your riding time exceeds 10 hours. So you need to a fine of 50 dollars")

# this will never executed because other `if/elif` will get all situations
#else:
#  print("You eneter something wrong..\nPLease try again..\nThank You")

嗨,汤米,欢迎来到这个网站。请您的问题显示您的异常的回溯,因为它将为我们准确地识别您遇到错误的地方。我在代码中看到的一件奇怪的事情是def ride_time=drop_off_time-picku_time,这没有任何意义,def需要一个函数签名,而不是赋值。如果这不是你的问题,这可能是一个缩进问题,你能再次检查问题中格式化的代码是否与你实际运行的代码相匹配吗?发布回溯以便我们可以看到错误。另外,您的代码缩进不正确。。。你能把柱子倾斜一点,让我们了解全貌吗。最后,一个技巧——复制代码并不断缩减,直到你得到一个有问题的小程序。作为一个程序,它不需要有意义,只是针对问题的本质缩小了范围。Blckknght-我不确定如何正确地将骑乘时间定义为一个函数,或者它到底应该放在哪里。我发现我一开始写得不正确,试图修复它,但没有太多运气。你有错误的缩进-你定义了ride_time=drop_off_time-Picku_time_time函数内的calculate_fare,但下一行如果ride_timeride_时间在calculate_fare函数内定义,就会出现问题,这意味着它不能在它之外访问,对吗?我错过什么了吗?
# --- functions ---

def calculate_fare(pickup_time, drop_off_time): # Calculate_fair function
    ride_time = drop_off_time - pickup_time
    return ride_time

# --- main ---

print(" Menu:\n Enter 1 if you have annual subscription. \n Enter 2 if you have a daily subscription.")

subscription_status = int(input(" Please enter your subscription type: ")) #Storing subscription type

if subscription_status == 1 or subscription_status == 2:
    print("Welcome to Bike Share!!!!")
    print("Want to know your fare :")
    print("1. Monday\n2.Tuesday\n3.Wednesday\n4.Thursday\n5.Friday\n6.Saturday\n7.Sunday")

now = int(input("Please enter a valid day(in number): "))
pickup_time = int(input("Please enter your pick up time(in minutes) :"))
drop_off_time = int(input("Please enter your drop of time(in minutes) :"))

ride_time = calculate_fare(now, pickup_time, drop_off_time)

if ride_time <= 30:
  print("Your fair for journey is 0.")
elif 30 < ride_time <= 60:
  print("Your fair for journey is 1 dollar.")
elif 60 < ride_time <= 120:
  print("Your fair for journey is 3 dollar.")
elif 120 < ride_time <= 600:
  print("Your fair for journey is 7 dollar.")
elif ride_time > 600:
  print("Since your riding time exceeds 10 hours. So you need to a fine of 50 dollars")

# this will never executed because other `if/elif` will get all situations
#else:
#  print("You eneter something wrong..\nPLease try again..\nThank You")