继续无法正常工作
Posted
技术标签:
【中文标题】继续无法正常工作【英文标题】:Continue isnt working properly 【发布时间】:2016-08-11 14:50:16 【问题描述】:我确实需要帮助来解决我的代码。 以下 python 代码“继续”无法正常工作
dicemp = '12345':''
while(1):
choice = int(input("Please enter your choice\n"))
if (choice == 1):
empno = input("Enter employee number: ")
for i in dicemp.keys():
if i == empno:
print("employee already exists in the database")
continue
print("Hello")
输出:
请输入您的选择
1
输入员工编号:12345
员工已存在于数据库中
你好
所以对于上面的代码,如果我给相同的员工编号。 12345 它将进入 if 块并打印消息“员工已存在于数据库中”之后它应该从开始继续,但在这种情况下它也打印“你好”。
【问题讨论】:
循环结束时将打印“hello”。无论员工是否已存在于数据库中,循环都会结束。 有 2 个循环。for
循环终止后,它会打印 Hello。 continue
适用于您的 for
循环,而不适用于 while
那么print语句应该在循环中
那么我应该如何使它适用于while循环,任何建议。如果员工没有,我希望循环重新开始。已经存在
顺便说一句:for i in dicemp.keys(): if i == empno:
可以只替换为 if empno in dicemp:
【参考方案1】:
您的continue
正在将for
循环移动到下一次迭代,这无论如何都会发生。如果你需要继续外循环,你可以这样做:
while True:
choice = int(input("Please enter your choice\n"))
if choice == 1:
empno = input("Enter employee number: ")
found = False
for i in dicemp:
if i == empno:
print("employee already exists in the database")
found = True
break
if found:
continue
print("Hello")
现在continue
在for
循环之外,所以它将继续外循环。
您可以将其简化为:
while True:
choice = int(input("Please enter your choice\n"))
if choice==1:
empno = input("Enter employee number: ")
if empno in dicemp:
print("employee already exists in the database")
continue
print("Hello")
并完全摆脱内部循环。
【讨论】:
是的!我的坏..我是编程新手,有很多错误:P以上是关于继续无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
使用 QStyledItemDelegate 验证 QTreeWidget 的特定列无法正常工作
Apple ITunes AppStore客户评论rss端点无法正常工作