为了账号安全,请及时绑定邮箱和手机立即绑定

错误时重复循环

错误时重复循环

开满天机 2021-03-18 18:15:58
下面的函数调用输入命令,并检查str.isalnum()。def enterPass(str):    x = raw_input("enter password Alpha or Alphanumeric! 'No_Space' :")    if x.isalnum():        print "saved"    else:        print "try again"    return;上面的函数是下面的函数,当该函数enterPass被调用3次时,该函数就会存在。_try = 1while (_try <= 3):    enterPass("password")    _try += 1我的意图是在输入密码后应验证是否为字母数字。如果是这样,它应该提示“已保存”并退出,如果不是,那么它应该再次要求输入密码,并且如果用户不能正确输入密码3次,则该程序应该退出。我面临的问题是,一旦程序成功接受带有“已保存”提示的isalnum(),我将无法退出该程序。再次循环询问是否再次输入密码。请建议我如何使此功能按预期工作,并可能提高效率。上述程序仅用于学术目的,目前没有有用的应用程序。
查看完整描述

2 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

在这种情况下,可能不需要某个函数,因为您可以使用break:


tries = 0

while tries < 3:

    x = raw_input("Enter password Alpha or Alphanumeric! No spaces! ")

    if x.isalnum():

        print "Saved"

        break

    print "Try again"

    tries += 1

这是一个测试:


Enter password Alpha or Alphanumeric! No spaces! Hi!@#

Try again

Enter password Alpha or Alphanumeric! No spaces! !@#!@#

Try again

Enter password Alpha or Alphanumeric! No spaces! @@@@

Try again

>>> 

Enter password Alpha or Alphanumeric! No spaces! No!

Try again

Enter password Alpha or Alphanumeric! No spaces! Okay

Saved

>>> 


查看完整回答
反对 回复 2021-03-31
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

您可以导入sys并执行sys.exit(0)


import sys



if x.isalnum():

        print "saved"

        sys.exit(0)

现在,sys.exit在以IDLE运行时退出程序时,会给您很多错误,请忽略这些错误,因为在实际的最终程序中它们不会出现。


但这就是如果您想终止整个程序。如果您只是想跳出循环并继续进行其他操作,则可以执行此操作


if x.isalnum():

        print "saved"

        break

中断也必须处于循环中才能起作用。


查看完整回答
反对 回复 2021-03-31
  • 2 回答
  • 0 关注
  • 200 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信