Python 3.x 退出python中的for循环
如果在第一个for循环中找到注册号,如何阻止代码执行第二个for循环。提问时提供更多详细信息。如果我理解你的意思,那么你要做的就是在一个文件中搜索一个特定的数字;如果找到号码,请打开另一个文件并记下,否则,如果找不到号码,请为用户提供将该号码添加到第一个文件的选项。您的代码效率极低:每次调用Python 3.x 退出python中的for循环,python-3.x,for-loop,Python 3.x,For Loop,如果在第一个for循环中找到注册号,如何阻止代码执行第二个for循环。提问时提供更多详细信息。如果我理解你的意思,那么你要做的就是在一个文件中搜索一个特定的数字;如果找到号码,请打开另一个文件并记下,否则,如果找不到号码,请为用户提供将该号码添加到第一个文件的选项。您的代码效率极低:每次调用write()时都打开同一个文件,并且使用两个循环,而其中一个循环可以。请尝试以下方法: owner_details = open ("owner_details","r") for lin
write()
时都打开同一个文件,并且使用两个循环,而其中一个循环可以。请尝试以下方法:
owner_details = open ("owner_details","r")
for line in owner_details.readlines():
if RegistrationNumber in line:
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write(line)
vehicles_speeding.close()
print ("Details for registration",[RegistrationNumber],"have been added to the 'vehicles_speeding' file")
time.sleep(2)
view = input("Match found for registration number in 'owner_details' file. Do you wish to view details \n:")
view = view.upper()
if view == "YES":
print (line)
else:
continue
owner_details = open ("owner_details","r")
for line in owner_details.readlines():
if RegistrationNumber not in line:
add= input("No match found for registration number do you want to add details for registration number ? \n:")
add = add.upper()
if add == "YES":
name = input("enter vehicle owners full name \n:")
adress = input ("Enter vehicle owners adress \n:")
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write("\n"+"NAME: ")
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write(name)
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write("ADDRESS: ")
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write(' '+adress)
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write("REGISTRATION NUMBER: ")
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write( ' '+RegistrationNumber+' ')
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write("SPEED: ")
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write("%2.f"%(Speed))
vehicles_speeding = open ("vehicles_speeding","a")
vehicles_speeding.write(' '+"m/s")
vehicles_speeding.close()
print ("Details have been added to file")
为了提高效率,您可以为
详细信息
分配固定数量的空间以防止其增长(类似于详细信息=[“”]*9
),然后填充这些空间 为什么要多次打开同一个文件?你想在这里做什么?:中断
如果你想结束循环,继续
如果你想进入下一个迭代。
owner_details = open("owner_details","r")
vehicles_speeding = open ("vehicles_speeding","a")
for line in owner_details:
if RegistrationNumber in line:
vehicles_speeding.write(line)
print ("Details for registration",RegistrationNumber,"have been added to the 'vehicles_speeding' file")
view = input("Match found for registration number in 'owner_details' file.\nDo you wish to view details:").upper()
if view.startswith("Y"):
print(line)
break
else: # this branch is run, if the FOR loop completed without breaking
add = input("No match found for registration number.\nDo you want to add details for registration number?:").upper()
if add.startswith("Y"):
details = []
name = input("enter vehicle owners full name: ")
adress = input ("Enter vehicle owners address: ")
details.append("\nNAME: ") # Too many concatenations
details.append(name)
details.append("ADDRESS: ") # append is cheaper
details.append(adress) # than writing to the file every time
details.append("REGISTRATION NUMBER: ")
details.append(RegistrationNumber)
details.append("SPEED: ")
details.append("%2.f" %(Speed)) #not really sure what format u want
details.append(" m/s")
vehicles_speeding.write("".join(details)) # write everything at once
print("Details have been added to file")
vehicles_speeding.close() # now you can close them
owner_details.close()