我正在通过一个教程视频制作一个程序,代码是启动、停止或退出汽车。程序的一部分是这样做,如果汽车已经启动或停止,你在程序中告诉他们。我的程序会告诉用户汽车已经启动或停止,但在我告诉它停止两次之后,而不是一次。希望有人能描述一下while循环和if语句中的布尔值之间的关系?
action = ""
started = False
while action != 'exit':
action = input("Type either start, stop, exit to work this car: ").lower()
if action == "start":
if started:
print("The car is already started")
else:
started = True
print("Congrats you started the car! You can now either stop the car or exit the car!")
action == input("Type either stop or exit to work this car: ")
elif action == "stop":
if not started:
print("You already stopped the car")
else:
started = False
print("Congrats you stopped the car! You can now exit the car!")
action = input("Either start the car again or exit the car: ")
elif action == "exit":
print("Congrats you exited the car!")
break
else:
action = input("You typed an invalid response, type either start, stop or exit:")
pprint("The end")
让我更正你的密码
action = ""
started = 0
while action != 'exit':
action = input("Type either start, stop, exit to work this car: ").lower()
if action == "start":
if started:
print("The car is already started")
else:
started = 2
print("Congrats you started the car! You can now either stop the car or exit the car!")
action = input("Type either stop or exit to work this car: ").lower()
elif action == "stop":
if started == 2:
started = 1
elif started == 0:
print("You already stopped the car")
else:
started = 0
print("Congrats you stopped the car! You can now exit the car!")
action = input("Either start the car again or exit the car: ").lower()
elif action == "exit":
print("Congrats you exited the car!")
break
else:
action = input("You typed an invalid response, type either start, stop or exit:").lower()
print("The end")
您需要更改action==input(…)
到
操作=输入(…)
考虑汽车已经启动的情况,用户现在已经进入“停止”。这将我们置于else
块中:
elif action == "stop":
if not started:
print("You already stopped the car")
else: # <-- here
started = False
print("Congrats you stopped the car! You can now exit the car!")
action = input("Either start the car again or exit the car: ")
最后一行提示用户输入一个新命令,该命令将重置操作
,并将您带回循环的顶部,您将立即提示用户输入一个新命令:
action = input("Type either start, stop, exit to work this car: ").lower()
换句话说,您的代码“忘记”用户在“stop”块中键入的内容,提示他们输入新命令,而不处理原始条目。
通过将第一个输入
行移动到一个条件块(即else
)中,可以很容易地解决这个问题。这样做的另一个好处是,您可以保持向用户提示适用于其情况的消息的准确性(例如,当用户刚刚输入“停止”时,“再次启动汽车或退出汽车”)。应该是这样的:
action = ""
started = False
while True:
if action == "start":
if started:
print("The car is already started")
else:
started = True
print("Congrats you started the car! You can now either stop the car or exit the car!")
action = input("Type either stop or exit to work this car: ")
elif action == "stop":
if not started:
print("You already stopped the car")
else:
started = False
print("Congrats you stopped the car! You can now exit the car!")
action = input("Either start the car again or exit the car: ")
elif action == "exit":
print("Congrats you exited the car!")
break
else:
if action:
print("You typed an invalid response.")
action = input("Type either start, stop, exit to work this car: ").lower()
print("The end")
注意,这在第一次通过时可以很好地工作,因为action=”“
会直接将您带到新的else
块。
当元素的值通过JavaScript代码更改时,会发生什么事件?例如: 事件在这里没有帮助,因为更改值的不是用户。 在Chrome上测试时,事件不会被激发。也许是因为元素没有失去焦点(它没有获得焦点,所以不能失去焦点)?
问题内容: 在laravel中,我们可以通过获得输入值。我尝试通过这样做来更改值。但是然后,我得到了错误消息“” 。 我们是否可以更改输入值,以便在以后调用时获得新的修改后的值? 谢谢。 问题答案: 您可以用来替换单个项目。 或用于替换整个输入数组。 这是文档的链接
问题内容: 每当我尝试将其插入仓库时,git都要求两者。 每次重新输入密码都没有问题,但是问题在于输入用户名。我用来克隆我的仓库。 因此,我该如何配置git,这样就不会在每一个上都要求它了。 我是Linux的新手,但Windows中的IIRC 仅要求输入密码。 问题答案: 编辑(由主持人和评论建议使用@ dk14) 警告:如果您从答案中使用密码,您的密码将完全未加密(“原样”)存储在。请查阅下面的
我想在我的代码中手动读取一些值。除了最后一个(lambda2)之外,它对所有值都有效。我可以无限地继续键入值,即使它们不是双精度的,也不会发生任何事情。如果我用任何其他值键入其他值,我会收到一条错误消息,以及第一次输入lambda2时的错误消息。我在另一个代码中以类似的方式(最终只创建了一个不同的对象)进行了操作,并且效果很好。
我有一个示例程序,用于为航空公司注册人员。 在Registration类的selectSeats方法中,我有一个try-catch块,其中catch语句应该捕获InputMissMatchException,以防用户输入非数值。 但是,重新输入操作没有发生,因此,当发生异常时,程序只是抛出错误消息并继续到末尾(这会导致意外结果) 这就是有问题的方法 编辑:我通过使方法在catch块中递归来解决这个
我创建了以下类,用于输入用户的年龄,然后在控制台中显示适当的信息。 运行此程序时,控制台会询问“请输入您的年龄:”