利用python实现逢七拍腿小游戏

#python day02

逢七拍腿游戏

几个小朋友在一起玩逢七拍腿的游戏,从1开始数数,当数到7的倍数或者尾号是7时,拍一下腿。现在从1数到99,假设每个人都没有错,计算一下共要拍腿几次?
第一种实现思路:通过在for循环语句中使用continue语句来实现计算拍腿次数。首先假设可拍腿次数为最高次数99,每触发满足的条件的时候就直接跳转到下一次循环当中,最后的total减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()
作用:判断字符串是否以指定字符或子字符串结尾,常用于判断文件类型
相关函数:判断字符串开头 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的过程当中,多发散一下思维,有时候逆向地思考也可以达到要实现的目的,甚至会更快!

  • 10
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值