这是我的代码,我似乎无法从输入语句的赋值中修改任何值。是否有一些我不熟悉Python的范围规则?
days=0
airfaire=0
mealsPaid=0
carRental=0
privateMilesDriven=0
parkingFees=0
taxiCharges=0
conferenceFees=0
lodgingCharges=0
def getInputForVariables():
days=input("Number of days on the trip: ")
airfaire=input("Amount of airfare, if none then enter 0: ")
mealsPaid=input("Amount paid for meals, if none then enter 0: ")
carRental=input("Amount of car rental fees, if none then enter 0: ")
privateMilesDriven=input("Number of miles driven, if a private vehicle was used: ")
parkingFees=input("Amount of parking fees, if none then enter 0: ")
taxiCharges=input("Amount of taxi charges, if none then enter 0: ")
conferenceFees=input("Conference or seminar registration fees, if none then enter 0: ")
lodgingCharges=input("Lodging charges, per night: ")
if __name__ == "__main__":
getInputForVariables()
print("the number of days is", days)
print("the amount of lodginnig charges is", (lodgingCharges))
答案 0 :(得分:0)
是的,您的代码存在范围问题。函数getInputForVariables
仅具有在函数本身范围内定义的变量。在对函数的调用结束后,丢弃变量值。您可能想要做的是将输入存储到字典中并返回
def getInputForVariables():
data={}
data["days"]=input("Number of days on the trip: ")
data["airfaire"]=input("Amount of airfare, if none then enter 0: ")
data["mealsPaid"]=input("Amount paid for meals, if none then enter 0: ")
data["carRental"]=input("Amount of car rental fees, if none then enter 0: ")
data["privateMilesDriven"]=input("Number of miles driven, if a private vehicle was used: ")
data["parkingFees"]=input("Amount of parking fees, if none then enter 0: ")
data["taxiCharges"]=input("Amount of taxi charges, if none then enter 0: ")
data["conferenceFees"]=input("Conference or seminar registration fees, if none then enter 0: ")
data["lodgingCharges"]=input("Lodging charges, per night: ")
return data
if __name__ == "__main__":
data=getInputForVariables()
print("the number of days is", data["days"])
print("the amount of lodginnig charges is", (data["lodgingCharges"]
这样您就可以从返回的值中访问输入数据,并通过data["insert variable name here"]
获取输入。