不知道各位同学和小伙伴在一起无聊的时候有没有玩过逢七过的游戏。
可能有的同学玩过,有的同学有点懵。逢七过是个什么游戏?那不管有没有玩过这个游戏,我们都来讲一下游戏规则。
游戏规则
逢七过游戏规则:最少有两名玩家。由其中一名玩家随意说出一个小于10的数字,剩下的一位玩家往上累加,但累加后的数字不能带7,或者是7的倍数也不行。比如说17,或者21。一个里面带7,一个是7的倍数。若遇到这种数字可以直接跳过。
那接下来我们先来看看用程序做出来的效果。
接下来我们再来看看代码:
视频私信单独发
num=int(input('请输入第一个数字'))
while num<=100:
num+=1
if num%7==0 or '7' in str(num):
print('pass')
else:
print(num)
我们一起来看看上面这堆代码什么意思。
第一行代码:定义一个num变量,这个num变量的作用就是让用户输入第一个数字,这样计算机才能根据用户输入的第一个数字去进行累加。
第二行代码:依然是我们熟悉的while循环,只不过后面加了个判断条件:num<=100:,这是什么意思呢?意思就是,想循环的人赶紧进来循环,但是有一个条件,那就是你们想循环,可以,但是num必须得小于等于100,否则循环就不干活了。总体来讲就是,我们只玩100以内的逢七过小游戏,超过100 就不玩了。还不明白的同学可以再看看刚才视频里代码运行的结果,是不是数字数到100就自己结束程序了。
第三行代码:给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<=100:
num+=1
if num%7==0 or '7' in str(num):
contiue
else:
print(num)
网友评论