内容正文:
少儿编程课
1
趣解数字谜题
数字与字符串的转换
整数 = int( 数字型字符串 )
字符串 = str (数字 )
a=int('123')
s=str(123)
3
数学运算
除法: /
整除: //
求余: %
print(31/3)
print(31//3)
print(31%3)
运行结果:
10.333333333333334
10
1
4
龙腾数
如果数字各个位数之和等于5,称为龙腾数。
例如:5,23,104等。
打印1000以内所有的龙腾数。
龙腾数
1000以内的龙腾数有可能是1位数,2位数或者3位数。
在不确定位数的情况无论使用整除求余还是字符串选取的方式都无法方便的取出各位数。
此时可以将数字转为字符串后,利用循环指令取出字符串的各个字,然后再将字转为数字的方式计算各位数字之和。
龙腾数
for x in range(1000):
n=str(x) #将未知位数的数字转为字符串
sum=0 #准备累加器
for y in n: #遍历字符串
sum+=int(y) #所有数字累加
if sum==5: #如果sum为5则打印这个数字
print(x)
计数
10000000000减去101011后,数字9有几个?
10000000000减去101011后,将数字转为字符串,利用for循环进行遍历,统计9的个数。
8
计数
n=10000000000-101011
s=str(n) #将计算后的数字转为字符串
c=0 #记录9的个数
for x in s:
if x=='9': #如果x为'9'则c增加1
c+=1
print(c) #打印'9'的个数
9
计数
count():用于计算某个字符在字符串中出现的次数
print('1999'.count('9')) #结果为3
print('11119'.count('1')) #结果为4
10
计数
n=10000000000-101011
s=str(n) #将数字转为字符串
print(s.count('9')) #结果为7
11
对称年
年份的千位数和个位数相同且百位数和十位数相同的年份称为对称年,例如2002年。
将2018年到2999年所有的对称年打印出来。
12
对称年
for x in range(2018,3000):
n=str(x)
a=n[0]
b=n[1]
c=n[2]
d=n[3]
if a==d and b==c:
print(x)
and:逻辑运算符
13
回文
把句子颠倒过来,仍与原文一致称为回文句。
例如:上海自来水来自海上,奶牛产牛奶均是回文句。
不仅仅有回文句,如果数字正序与倒序一致,这个数字就是回文数。
例如:79697,8448都是回文数字。
实际我们前面计算的对称年的年份也均为回文数。
字符串切片
利用字符串的切片我们可以从字符串中提取部分我们需要的内容。
切片的写法为[起点:终点:步长]
例如字符串s='python',接下来对字符串进行切片:
s[1:3:1]:切片的内容为yt
s[1:3:]:省略了步长值,此时步长值就使用默认的1,所以与[1:3:1]执行效果相同
s[:3:]:省略了起点,则从0开始,省略了步长使用默认的1,所以切片为'pyt'
s[1::]:省略了终点,则一直街取到结尾,省略了步长使用默认的1,所以切片为'ython'
s[::-1]:省略了起点和终点,步长值为-1,则会进行取反,也就是切片为'nohtyp'
对称年
利用切片解决对称年,只要年份数字数字与颠倒后的年份数字一致,就是对称那年。
for x in range(2018,3000):
n=str(x)
if n==n[::-1]: #如果原年份与切片取反后的内容一致,就是对称年
print(x)
相反数
一个三位数加上396后正好与原数字相反,所有这样的三位数。
例如: 105 + 396 = 501
256 + 396 = 652
相反数
遍历所有三位数,让三位数加上396得到一个新的三位数。
将原三位数和新三位数转为字符串。并对原三位数字符串进行切片操作取反。
如果取反后的原三位数字符串与新三