我试图用Python编写一个脚本,请求用户输入,它应该会在响应“请输入名字”时出错,然后将用户返回到初始输入问题提示符
这不起作用,相反,在询问了名字和姓氏之后,如果两个名字都没有给出,我会被扔进第一个错误的无限循环中
# User input for first name
first_name = input('Enter FIRST name here: ')
# User input for last name
last_name = input('Enter LAST name here: ')
def print_name():
# store user input in separate variable
fname = first_name
lname= last_name
while True:
# throw error if user enters no first name
if len(fname) == 0:
# error msg
print('No FIRST name entered...')
# loop back to prompt asking for first name
continue
else:
# if first name given move on to prompting for last name
# break loop
break
# loop into prompting user for last name
while True:
# throw error if user enters no last name
if len(lname) == 0:
print('No LAST name entered...')
# loop back to prompt asking for last name
continue
else:
# if last name given move on to running print command
# break loop
break
return fname, lname
print(f'your name is {fname} {lname}')
print_name()
有人能帮我弄明白这里出了什么问题吗?当没有给出任何信息时,它应该只返回到询问名字(或姓氏),否则它应该将用户名打印到控制台。两个名字都应该给出,如果没有给出名字,那么我希望在第一个while循环中出现错误,就像没有给出姓氏时的wise一样
还有更好的方法吗?使用2 while循环似乎是错误的
问题在于无限循环,您可以简化函数,如:
我觉得你在这方面是新手:
而循环通常如下所示:
这意味着在大多数情况下,每次执行循环时,
while
都会重新计算和检查条件在您的情况下,这将变成:
您在这里编写的案例(
while true
)也存在,并且经常使用,但在非常不同的情况下,例如在基于多线程事件的程序中:这意味着程序的一部分(所谓的线程)正在等待捕获事件(如按钮点击),然后发生了一些事情。然而,这主要是在多线程应用程序中完成的,这意味着“主”程序正在做一些事情,而子程序正在处理即将到来的事件
不要重复你自己。如果复制并粘贴一段代码,请停下来思考。它应该是一个函数,或者是一个循环
另外,不要使用注释重复代码所说的内容
相关问题 更多 >
编程相关推荐