不知道各位同學和小伙伴在一起無聊的時候有沒有玩過逢七過的游戲。
pythonwhile循環用法,可能有的同學玩過,有的同學有點懵。逢七過是個什么游戲?那不管有沒有玩過這個游戲,我們都來講一下游戲規則。
游戲規則
python循環結構、逢七過游戲規則:最少有兩名玩家。由其中一名玩家隨意說出一個小于10的數字,剩下的一位玩家往上累加,但累加后的數字不能帶7,或者是7的倍數也不行。比如說17,或者21。一個里面帶7,一個是7的倍數。若遇到這種數字可以直接跳過。
那接下來我們先來看看用程序做出來的效果。
python for?接下來我們再來看看代碼:
num=int(input('請輸入第一個數字'))
while num
num+=1
if num%7==0 or '7' in str(num):
print('pass')
else:
print(num)
我們一起來看看上面這堆代碼什么意思。
第一行代碼:定義一個num變量,這個num變量的作用就是讓用戶輸入第一個數字,這樣計算機才能根據用戶輸入的第一個數字去進行累加。
第二行代碼:依然是我們熟悉的while循環,只不過后面加了個判斷條件:num
第三行代碼:給num不斷地累加1,我們說實際上如果不用程序來玩,我們自己人對人面對面這樣玩的話,最少得兩個人,那么這行程序從某種角度來說代替了另外一個玩家累加1的作用。也就是說我們讓電腦充當了另一個玩家的角色,讓電腦去不斷累加1。如果把這行代碼去掉,你可能會看到你的電腦一直在重復不斷地輸出你第一次輸入的那個數字(當然如果你輸入的是7或者7的倍數那就另當別論了)。這是因為假如你輸入了1,那么程序會判斷你輸入的數字小于100,他就會放你進入循環,按照常理來說的話,程序會給你的num加個1,緊接著判斷你輸入的這個數字是否有7或者是7的倍數,然后去進行下一個數字的判斷,但由于你這行程序被刪掉了,所以程序判斷它不屬于7的倍數,里面也不含7,他就會一直輸出1,因為num一直是1,沒有經過累加,它一經過循環,循環就放他走,一直這樣重復輸出同一個數字。
第四行代碼:我們說玩這個游戲必須有兩個先決條件,第一,他不能含7,第二,它不能是7的倍數。這兩個任帶一個條件都得說pass。首先來看第一個條件,我們之前說過,%是一種除法,但是它除出來是兩個數字的余數,比如說7%2==1.那么1就是他倆的余數,所以我們看這行代碼當中的第一個條件,num%7==0,什么意思呢,也就是說num除出來的這個數字沒有余數,相當于num是7的倍數,既然是7的倍數我們自然要說pass了,再看第二個條件,那有的同學覺得奇怪,不就是判斷7在不在num里面嗎,為什么要給7帶引號把他變成字符串呢?還有為什么要給num加上str把他強制轉換為字符串呢?我們當然知道in是在什么什么里面的意思,最后這個條件翻譯過來的意思就是判斷7是否在num里面,那么我們說為什么要將7跟num都轉換為字符串呢,首先我們要知道,我們不能用數字類型來判斷一個數字是否在另外一個數字里面,例如說7是否在37里面,這是不可取的,如果一定要判斷,那我們只能判斷一個字符串是否在另外一個字符串里面。
我相信剩下的代碼都不需要我去多講了,總體來講就是,如果符合第四行代碼當中任意一個條件那就輸出pass,否則就輸出這個數字。
continue保留字
那么今天我們再來學習一個新知識叫continue保留字,那么continue的作用是什么呢?他跟break都是循環的親兒子,兩個人都是只對循環起作用,我們知道break是用來終止循環的,那continue的作用是啥呢?他是用來跳過本次循環的,也就是說,假如循環到了某個節點我們不想讓他循環了,但是這個節點以下的程序我們還想讓他循環,那怎么辦?就用continue函數跳過你不想讓他循環的點,緊接著繼續循環。可以看下面這段代碼跟上面那段代碼的唯一區別就是,一個是print(‘pass’),而另外一個是continue,大家可以試試。用continue跟第一次的代碼有什么區別。
代碼如下:
num=int(input('請輸入第一個數字'))
while num
num+=1
if num%7==0 or '7' in str(num):
contiue
else:
print(num)
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态