亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

錯誤時重復循環

錯誤時重復循環

開滿天機 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 關注
  • 225 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號