【发布时间】:2021-12-19 21:50:58
【问题描述】:
我正在为我的第一个 python 课程做一个简单的项目,但我被困在一个部分,我不知道如何继续。
所以在这部分用户应该输入他/她想要租用的车辆ID。输入车辆 ID 后,我的代码开始在 Vehicle.txt 文本文件中搜索该车辆 ID。如果代码找到 VehicleID 变量并且还发现它是 "A"(表示可用),它会开始打印该特定汽车的详细信息。
我的 Vehicle.txt 文本文件如下所示;
XJY-604,Hyundai Getz,O,0,45.00,A
AJB-123,BMW mini,P,200,65.00,A
WYN-482,Ford Fiesta,O,0,40,A
BKV-943,Ford Ikon,P,150,60,A
JMB-535,Ford Flex,O,0,50,A
FKI-232,Fiat Egea,O,0,30,A
KLE-154,Toyota Corolla,O,0,40,A
ITO-444,Renault Clio,O,0,55,A
MAA-321,Honda Civic,O,0,70,A
IRK-948,Hyundai i20,O,0,30,A
TRY-475,Peugeot 2008,O,0,50,A
IBM-984,Skoda Superb,O,0,60,A
KRI-365,Opel Corsa,O,0,50,A
PMA-760,Citreon C3,O,0,55,A
NGT-407,KIA Sportage,O,0,60,A
所以到目前为止,一切都很好;如果代码找到车辆 ID(以及条件 “A”),则代码开始按我的意愿打印详细信息(如果条件不同或未找到车辆 ID,它还会打印适当的错误消息这也可以按照我的意愿完美运行)。
我的问题在这部分之后开始:
打印汽车的详细信息后,我的代码应将特定汽车的状况从 "A"(可用)更改为strong>Vehicle.txt 文本文件。
例如,假设用户输入了车辆 ID TRY-475 --> 在此输入之后,我在 Vehicle.txt 文本文件中的异常更改是;
但文本文件的实际变化是;
我的代码是这样的;
from datetime import datetime
now = datetime.now()
dateandtime = now.strftime("%d/%m/%Y %H:%M:%S")
def rentVehicle():
VehicleID = input("Please enter the vehicle ID you want to rent: ")
with open("Vehicle.txt","r+") as f1:
for line in f1:
l = line.split(",")
if l[0] == VehicleID and l[5] == "A\n" or l[5] == "A":
renterID = input("Please enter your ID: ")
startingodometer = input("Please enter the current odometer reading: ")
print("\nCar",l[0],"is rented to", renterID,"\n")
print("\t\t******************** Vehicle Details ********************\n")
print("Vehicle ID =",l[0],"\t\tDescription =",l[1],"\t\tDaily Rate =",l[4],"\tStatus =",l[5],"\n")
print("Renter ID =",renterID,"\tDate/time of rent =",dateandtime,"\tRent Starting Odometer =",startingodometer)
f1.write(l[5].replace(l[5],"R\n"))
print("\nRenting vehicle is successful!")
break
elif l[0] == VehicleID and l[5] == "R\n" or l[5] == "R":
print("\nThe vehicle you entered is rented. Please display available cars from the main menu.")
break
else:
print("\nThe vehicle ID you entered does not exist. Please enter a valid vehicle ID.")
break
rentVehicle()
我认为问题出在第 17 行 (f1.write(l[5].replace(l[5],"R\n")))。我搜索了其他选项,但它们也没有在 Vehicle.txt 文本文件中给出我的例外输出。此外,我不允许更改我的文件名或将这些行添加到另一个文件(手动或在代码中),因为它在我的项目工作中受到限制。我应该只通过代码更新当前的 Vehicle.txt。如果有人解决这个问题,我会很高兴。对于初学者来说,这些问题有时真的很有挑战性。提前致谢。
【问题讨论】:
标签: python loops if-statement replace