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的过程当中,多发散一下思维,有时候逆向地思考也可以达到要实现的目的,甚至会更快!
总结