Python实现逢七拍腿游戏:两种算法思路与代码详解
本文详解Python实现逢七拍腿小游戏的两种核心思路。第一种利用逆向思维,通过排除非目标数字计算结果;第二种采用正向计数器累加满足条件的次数。文章深入解析了endswith()函数的用法及代码逻辑,帮助开发者理解不同编程思维在实际应用中的差异与优劣。
游戏背景与规则
逢七拍腿游戏
逆向思维实现法
几名小朋友围坐在一起玩逢七拍腿游戏,规则是从1开始依次报数。当报出的数字是7的倍数,或者个位数字包含7时,需要拍一下腿。现在要求从1数到99,假设所有参与者均无误操作,请计算总共需要拍腿多少次? 第一种实现思路:利用for循环配合continue语句来统计拍腿次数。初始设定可拍腿次数变量为最大值99,每当遇到满足拍腿条件的数字时,直接跳过本次循环剩余部分,不执行后续的减1操作;而不满足条件的数字,则执行total减1的操作。因此,最终total的值实际上等于总数减去不满足条件的数字个数,即拍腿的次数。具体代码如下:
total = 99 #记录拍腿次数的变量
for number in range(1,100): #创建一个从1数到99的循环
if number&7 == 0: #判断是否为7的倍数
continue #跳转到下一次循环
else:
string = str(number) #将数值转化为字符串,方便判断尾号是否为7
if string.endswith('7'): #判断尾号数字是否为7
continue #跳转到下一次循环
total -= 1 #可拍腿次数减1
print("从1数到99共拍腿",total,"次") #显示拍腿次数
endswith函数解析
在此处我们新学到一个函数为endswith(),我们先来讨论一下endswith()函数的作用。
函数:endswith() 作用:判断字符串是否以指定字符或子字符串结尾,常用于判断文件类型 相关函数:判断字符串开头 startswith()
运行结果如下:

正向计数实现法
第二种实现思路:通过设置一个计数器,每触发条件一次计数器就加1.代码如下:
total = 0 #记录拍腿次数的变量
for number in range(1,100): #创建一个从1数到99的循环
if number&7 == 0: #判断是否为7的倍数
total +=1 #可拍腿次数加1次
else:
string = str(number) #将数值转化为字符串,方便判断尾号是否为7
if string.endswith('7'): #判断尾号数字是否为7
total +=1 #可拍腿次数加1次
print("从1数到99共拍腿",total,"次") #显示拍腿次数
两种思路对比与总结
这两种方法都可以实现,很有趣的是第一种实际上是一种逆向的思维,我们已经习惯于加法,很少会使用到减法。第二种是我们很多人习惯的思考方式。在学习python的过程当中,多发散一下思维,有时候逆向地思考也可以达到要实现的目的,甚至会更快!
总结
到此这篇关于python实现逢七拍腿小游戏的思路详解的文章就介绍到这了,更多相关python实现逢七拍腿小游戏内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









