——while循環的改進——
我們之前設置的游戲規則為:只給你三次猜測的機會,如果三次猜不中,就顯示你已經猜了太多次退出了。現在我想修改游戲規則為:當你三次都猜錯了之后,會詢問你你是否還想繼續猜。如果是的話,可以繼續給三次機會進行猜測,如果否就退出。
主要的思想是:在while循環內,這時的count已經等于3,我們在此時設置一個確認標志,如果這個這個確認標志不是N,我們就繼續猜,方法是可以把count清零,給count賦值為0,再返回判斷count<3,可以繼續while循環;如果確認標志為N,count就不滿足count<3的條件了,就會退出游戲。
此時程序為:
繼續猜的情況下:
不想繼續猜的情況下:
——for循環——
先寫一個最簡單的for循環:
上面這個for循環,從loop0打印到了loop9。
i是個臨時變量,range(10)就相當于生成一組數,(0,1,2,3,4,5,6,7,8,9),每循環一次,就取一個數,第一次是0,第二次是1,……等等,然后執行下面的循環內容,這樣這個循環就執行了10次。
把之前猜年齡(有三次機會)的while程序可以稍作修改,改成 for循環的:?
結果依然是正確的:
else什么時候執行呢?當for循環完整的走完之后走else語句。
我現在又有新的想法,之前打印的是loop0、loop1、loop2、……、loop9,現在我想隔一個打印一個,比如打印loop0,、loop2、loop4、等等,這個該怎么操作?
那隔兩個打印一個呢?
range(),括號里面的格式為:起始位置,終止為止,步長。(步長默認為1)
——continue的用法——
我們都知道,循環里面一般有break,除此之外,還有對應的一個用法就是continue。
為了了解這個循環的執行步驟,我們斷點執行一下:
①先是i等于0,走到下一步,判斷i<3
②打印輸出“loop0”
③if條件滿足,所以不會走else語句,然后往下繼續執行,打印輸出“hello”。
④第一個循環結束,返回循環。
⑤開始第二個循環,注意此時的i等于1,判斷if條件,i<3滿足。
⑥打印輸出“loop1”。
⑦if條件滿足之后,就不會再走else語句了,然后往下繼續執行,打印輸出“hello”。
同樣的,i=2時同i=1和i=0是一樣的。
⑧當i=2結束時,返回循環。
⑨i=3,判斷if條件,不滿足。走else語句,是continue,返回循環。
⑩返回循環。
(11)i=4,判斷if條件,if條件不滿足。
(12)走else語句,然后是continue,返回循環。
i=5以后都是一樣的。
我們來總結一下,break的作用是跳出整個循環,continue的作用是跳出本次循環,繼續到下一次循環。
舉個例子:
結果為:
大循環套小循環,一共打印了100次。
我們在小循環里面加一個條件判斷:
結果是這樣的:
一共打印了40次。
這樣就看出了break的作用,break的作用是跳出當前的小循環,而不是兩層循環都跳出了。
附:三次結束后詢問要不要繼續猜的for版本。