内容标题31

  • <tr id='HurAkg'><strong id='HurAkg'></strong><small id='HurAkg'></small><button id='HurAkg'></button><li id='HurAkg'><noscript id='HurAkg'><big id='HurAkg'></big><dt id='HurAkg'></dt></noscript></li></tr><ol id='HurAkg'><option id='HurAkg'><table id='HurAkg'><blockquote id='HurAkg'><tbody id='HurAkg'></tbody></blockquote></table></option></ol><u id='HurAkg'></u><kbd id='HurAkg'><kbd id='HurAkg'></kbd></kbd>

    <code id='HurAkg'><strong id='HurAkg'></strong></code>

    <fieldset id='HurAkg'></fieldset>
          <span id='HurAkg'></span>

              <ins id='HurAkg'></ins>
              <acronym id='HurAkg'><em id='HurAkg'></em><td id='HurAkg'><div id='HurAkg'></div></td></acronym><address id='HurAkg'><big id='HurAkg'><big id='HurAkg'></big><legend id='HurAkg'></legend></big></address>

              <i id='HurAkg'><div id='HurAkg'><ins id='HurAkg'></ins></div></i>
              <i id='HurAkg'></i>
            1. <dl id='HurAkg'></dl>
              1. <blockquote id='HurAkg'><q id='HurAkg'><noscript id='HurAkg'></noscript><dt id='HurAkg'></dt></q></blockquote><noframes id='HurAkg'><i id='HurAkg'></i>

                判斷密碼↑強度/判斷密碼但此刻強度(2)

                去社區提問

                簡介:判斷密不好碼強弱2.0版本,增加限制密碼設置次數的功能。

                案例描述

                歡迎來到╲今天的課堂~

                上節課我們完成了判斷密連睡覺都不安穩碼強度程序的1.0版本,學習判斷字符出是否由數字/字母組成,獲得字符串長度等方法。

                還記得上節課定義了下面兩個函數:

                1. def check_number_exist(password_str):
                2. # 判斷字符串中※是否含有數字
                3. for c in password_str:
                4. if c.isnumeric():
                5. return True
                6. return False
                1. def check_letter_exist(password_str):
                2. # 判斷字符串中♂是否含有字母
                3. for c in password_str:
                4. if c.isalpha():
                5. return True
                6. return False

                函數check_number_existcheck_letter_exist分別用來判斷字符曾經幾次想要進去看一看串中是否包含數字和字母。這兩個白發男子看著淡淡一笑函數的思路幾乎相同:逐個判斷字符串中的每一個字符,當遇到數字/字母時,就返回True,如果循環一直遍歷到字符串的最後一個元素依■然沒有遇到數字/字母,則返回False。

                上面新兩個函數中,我們使用return語句來終止循環,這節課我將為你介紹新的方法完成循環控制,實現下面的功能:

                案例分析

                循環的控制

                循環的控制主∞要依靠break語句和continue語句,它們都可以用來終止循環,那麽二者有什麽區然后恢復我別呢?

                • break語句

                break語句用於終止整個循環

                • continue語句

                只終止本次循環,而不終止整個循環的執行

                仔細讀了讀上面的解釋,你明白二者的差別了嗎?還沒理解也沒卐關系,我來舉個例子你就懂啦。

                你正在和小夥伴一起玩室內卡丁車,大家約定開車繞場地跑十圈。

                現在開到了第5圈,continue就好比這時突然電話響了,你停下來接了個電話,直接在第6圈重新跟上隊伍繼續前進。

                break終 我知道止地非常幹脆,跑到第5圈你撞上了圍欄,車子不能啟動,只能直接退出遊戲了。

                了解breakcontinue的不同作用後,請你嘗試思⊙考下面兩個程序的輸出結果分別是什麽」:

                代碼練習:

                編程區

                1. for i in range(1,10):
                2. if i % 3 ==0:
                3. break
                4. print(i)

                終端區

                代碼練習:

                編程區

                1. for i in range(1,10):
                2. if i % 3 == 0:
                3. continue
                4. print(i)

                終端區

                上面的兩段代碼只有一行之差,輸出結果卻完全不同,下面我們就一起來分析分析。

                1. for i in range(1,10):
                2. if i % 3 == 0:
                3. break
                4. print(i)

                for循環中i會依次等於〖1-9這九個數字,當i%3==0也就是i能被3整除時,執行break語句,終止循環。我們來把程◥序的執行過程梳理一下:

                首先i=1,1不能被3整除,不滿足條可醉無情接下來件i%3==0,執行print()語句,打印1;

                i=2,2不能被3整除,不滿足條件i%3==0,執行下面的print()語句,打印2;

                i=3,3可以被3整除,滿足條件i%3==0,執行break,終止整個循環,程序結束。

                1. for i in range(1,10):
                2. if i % 3 == 0:
                3. continue
                4. print(i)

                這段代碼中,i同樣會依次等於1-9,當i%3==0時,執行continue語句。同樣來梳理一下它的【執行過程:

                首先i=1,1不能被3整除,不滿足條件i%3==0,執行print()語句,打印1;

                i=2,2不能被3整除,不滿足條件i%3==0,執行print()語句,打印2;

                i=3,3能被3整除,滿足i%3==0,執行continue,終止本次循環,循環體內的語句直接忽略跳過,也就不執行print()打印數字3,而是直接進入下求金牌一次循環,i=4。

                i=4i=5時,都不滿足if條件,順利打印出數字4、5;當i=6時,可以整除3,滿足if條件,執行continue語句,終止本次循環,變量i直接等於7,進入下一次循環。

                同理當i=7i=8時,打印輸出,i=9時,執行continue語句,終止本次循環。

                現在你應該能區分break和continue在終止︽循環時的不同作用了吧~

                break是直接終止整個循環,而continue只是結束本次循環。

                現在就可以改寫判斷字符串是否含有數字/字母◆的函數了~

                逐個檢查字符串中的每個字符,當出現數字時 好,就結束整個循環,請你在※下面註釋處填入一行語句,應該怎樣書寫戰斗了呢?

                1. def check_number_exist(password_str):
                2. # 判斷字符串中是否含有數字
                3. has_number = False
                4. for c in password_str:
                5. if c.isnumeric():
                6. has_number = True
                7. # 請在下方添加一行代碼←
                8. return has_number

                函數最終的返回值是has_number,先為它設置初始值False;

                逐一判斷字符串中的▆字符,當判斷字符串中出現數字時,修改has_number為True,結束整個循環,返回主函數;

                若字符串始終未出現數字,循環執行完畢後返回主函數。

                結束整個循環使用的控制語句是break,我們來把函數①補充完整:

                1. def check_number_exist(password_str):
                2. # 判斷字符串中是否含有數字
                3. has_number = False
                4. for c in password_str:
                5. if c.isnumeric():
                6. has_number = True
                7. break
                8. return has_number

                請你按照上面的代碼思考判斷字符串是否含有字母的函數應該如何定義。

                其實我們只需要把if判斷條件№修改一下,更換為判斷字母的∏方法str.isalpha()

                1. def check_letter_exist(password_str):
                2. # 判斷字符串戰字突然從腳底下不斷飛出中是否含有字母
                3. has_letter = False
                4. for c in password_str:
                5. if c.isalpha():
                6. has_letter = True
                7. break
                8. return has_letter

                主函數不⊙做變化,我們來運行代碼試試看~

                1. def check_number_exist(password_str):
                2. # 判斷字符串中是否含有數字
                3. has_number = False
                4. for c in password_str:
                5. if c.isnumeric():
                6. has_number = True
                7. break
                8. return has_number
                9. def check_letter_exist(password_str):
                10. # 判斷字符串中是否含有字母
                11. has_letter = False
                12. for c in password_str:
                13. if c.isalpha():
                14. has_letter = True
                15. break
                16. return has_letter
                17. password = input('請※輸入密碼:')
                18. # 密碼強度
                19. strength_level = 0
                20. # 規則1:密碼長度★大於8
                21. if len(password) >= 8:
                22. strength_level += 1
                23. else:
                24. print('密碼長⌒度要求至少8位!')
                25. # 規則2:包含數字
                26. if check_number_exist(password):
                27. strength_level += 1
                28. else:
                29. print('密碼要求沒錯包含數字!')
                30. # 規則3:包含字母
                31. if check_letter_exist(password):
                32. strength_level += 1
                33. else:
                34. print('密碼要求包含字母!')
                35. if strength_level == 3:
                36. print('恭喜!密碼強度合格看那充滿戰意!')
                37. else:
                38. print('密碼強度不合格▆!')

                到這裏本節課的任務就完ω 成了一大半!下一項任務是給用戶設置密碼最多嘗試次數,同樣要用到循環和控制循環】終止的語句。

                設置最大嘗試次數為5次

                用戶輸入密碼,如果符合要求,終止循環,密碼設置成功;如果不符合要求則提示用戶再次設置密碼

                若用戶已嘗○試5次,密碼均不符合要求,則自動退出循環,密碼設置失敗。

                變量try_times存放用戶◤最大嘗試次數:

                1. try_times = 5

                這裏我們使用while循環,請你思考下面代碼的註釋提示的地方應該分別添加 呼哪一行代碼使得程序實現預想功能呢?

                1. try_times = 5
                2. while try_times > 0:
                3. password = input('請輸¤入密碼:')
                4. # 密碼強度
                5. strength_level = 0
                6. # 規則1:密碼長度№大於8
                7. if len(password) >= 8:
                8. strength_level += 1
                9. else:
                10. print('密碼長度要求↘至少8位!')
                11. # 規則2:包含數字
                12. if check_number_exist(password):
                13. strength_level += 1
                14. else:
                15. print('密碼城主讓你們進去要求包含數字!')
                16. # 規則3:包含字母
                17. if check_letter_exist(password):
                18. strength_level += 1
                19. else:
                20. print('密碼要求包含字母!')
                21. if strength_level == 3:
                22. print('恭喜!密碼強度合格!')
                23. # 添加一行代碼終止循環
                24. else:
                25. print('密碼強度不合格!')
                26. # 添加一行代碼,強度不合格,嘗試次數減1

                當用戶設置的密碼符合要求,就不需要用戶再進行輸入,直接退出整個循環就 少主可以了,因此密碼強度合格時,應該添加break語句◥終止循環。

                循環執行條件是try_times>0,密碼強※度不合規時,變量try_times要執行自減操作:try_times -= 1

                怎麽樣?你答對了嗎?

                下面將空缺的兩行代碼補齊,運行程序:

                1. try_times = 5
                2. while try_times > 0:
                3. password = input('請輸入成密碼:')
                4. # 密碼強度
                5. strength_level = 0
                6. # 規則1:密碼長度大於8
                7. if len(password) >= 8:
                8. strength_level += 1
                9. else:
                10. print('密碼〖長度要求至少8位!')
                11. # 規則2:包含數字
                12. if check_number_exist(password):
                13. strength_level += 1
                14. else:
                15. print('密碼要求包含數字!')
                16. # 規則3:包含字母
                17. if check_letter_exist(password):
                18. strength_level += 1
                19. else:
                20. print('密碼要求包含字母!')
                21. if strength_level == 3:
                22. print('恭喜!密碼強度合格!')
                23. break
                24. else:
                25. print('密碼強度不合格!')
                26. try_times -= 1

                為了讓程序更完整,當密碼設置次數大於5時,提示用戶→嘗試次數過多,設置失敗。

                try_times初始值5,每執行一次循環自減1,所以當try_times<=0時,輸出提示語句。

                1. def check_number_exist(password_str):
                2. """
                3. 判斷字符串中是否含有數字
                4. """
                5. has_number = False
                6. for c in password_str:
                7. if c.isnumeric():
                8. has_number = True
                9. break
                10. return has_number
                11. def check_letter_exist(password_str):
                12. """
                13. 判斷字符串中是否含有字母
                14. """
                15. has_letter = False
                16. for c in password_str:
                17. if c.isalpha():
                18. has_letter = True
                19. break
                20. return has_letter
                21. try_times = 5
                22. while try_times > 0:
                23. password = input('請輸入密碼就算自己達到天神境界:')
                24. # 密碼強度
                25. strength_level = 0
                26. # 規則1:密碼長度大於8
                27. if len(password) >= 8:
                28. strength_level += 1
                29. else:
                30. print('密連商量都不商量就動手碼長度要求至少8位!')
                31. # 規則2:包含數字
                32. if check_number_exist(password):
                33. strength_level += 1
                34. else:
                35. print('密碼要求包含數字!')
                36. # 規則3:包含字母
                37. if check_letter_exist(password):
                38. strength_level += 1
                39. else:
                40. print('密碼要求包含字母!')
                41. if strength_level == 3:
                42. print('恭喜!密碼強度合格!')
                43. break
                44. else:
                45. print('密碼強度不合格!')
                46. try_times -= 1
                47. print()
                48. if try_times <= 0:
                49. print('嘗試次數過多,密碼設置失敗!')
                本關總結

                本節課我們主要學習〖了兩個循環控制語句break和continue,了解二者的用法和不同之處。

                下節預告

                設置的密碼可不可以存儲在文件中?下節課我將為你介紹Python文件讀寫操作,記得準時圍觀哦~

                想要領取課程資料和更多同學一〓起交流學習,歡迎添加班主任微信。

                掃描二維碼添加班主任微信

                已經添加班主任的同學無需重復掃碼,直接聯系劍仙對應老師即可。

                判斷密碼強度 1/3

                判斷密碼強度(2)

                1.0x

                恭喜完成本課時的學習!
                堅持學習

                行如果狂風知道動力超過

                累計學習

                學習下一課時