猿问

错误时重复循环

下面的函数调用输入命令,并检查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 = 1

while (_try <= 3):

    enterPass("password")

    _try += 1

我的意图是在输入密码后应验证是否为字母数字。如果是这样,它应该提示“已保存”并退出,如果不是,那么它应该再次要求输入密码,并且如果用户不能正确输入密码3次,则该程序应该退出。


我面临的问题是,一旦程序成功接受带有“已保存”提示的isalnum(),我将无法退出该程序。再次循环询问是否再次输入密码。请建议我如何使此功能按预期工作,并可能提高效率。


上述程序仅用于学术目的,目前没有有用的应用程序。


开满天机
浏览 201回答 2
2回答

梵蒂冈之花

在这种情况下,可能不需要某个函数,因为您可以使用break:tries = 0while tries < 3:&nbsp; &nbsp; x = raw_input("Enter password Alpha or Alphanumeric! No spaces! ")&nbsp; &nbsp; if x.isalnum():&nbsp; &nbsp; &nbsp; &nbsp; print "Saved"&nbsp; &nbsp; &nbsp; &nbsp; break&nbsp; &nbsp; print "Try again"&nbsp; &nbsp; tries += 1这是一个测试:Enter password Alpha or Alphanumeric! No spaces! Hi!@#Try againEnter password Alpha or Alphanumeric! No spaces! !@#!@#Try againEnter password Alpha or Alphanumeric! No spaces! @@@@Try again>>>&nbsp;Enter password Alpha or Alphanumeric! No spaces! No!Try againEnter password Alpha or Alphanumeric! No spaces! OkaySaved>>>&nbsp;

汪汪一只猫

您可以导入sys并执行sys.exit(0)import sysif x.isalnum():&nbsp; &nbsp; &nbsp; &nbsp; print "saved"&nbsp; &nbsp; &nbsp; &nbsp; sys.exit(0)现在,sys.exit在以IDLE运行时退出程序时,会给您很多错误,请忽略这些错误,因为在实际的最终程序中它们不会出现。但这就是如果您想终止整个程序。如果您只是想跳出循环并继续进行其他操作,则可以执行此操作if x.isalnum():&nbsp; &nbsp; &nbsp; &nbsp; print "saved"&nbsp; &nbsp; &nbsp; &nbsp; break中断也必须处于循环中才能起作用。
随时随地看视频慕课网APP

相关分类

Python
我要回答