内容正文:
少儿编程课
1
找数字
字符串的遍历
for x in 字符串:
…
for x in 'python':
print(x)
3
字符串的切片
切片:
[起点:终点:步长]
s='python'
print(s[1:3:1])
print(s[1:3])
print(s[:3:])
print(s[1::])
print(s[::-1])
4
找数字
在1~218中,各位数之和能被5整除的所有数字。
例如:5,136,186等。
位数不确定的情况下使用整除求余或字符串选取的方式均无法方便的取出各位数。
此时可以将数字转为字符串后,利用循环指令取出字符串的各个字,然后再将字转为数字的方式计算各位数字之和是否可以整除5。
找数字
for x in range(1,219):
n=str(x) #将未知位数的数字转为字符串
sum=0 #准备求和
for y in n: #遍历字符串
sum+=int(y) #所有数字累加
if sum % 5==0: #如果sum可以整除5则打印这个数字
print(x)
计数
六位数2018XX可以被12整除,则XX是什么?
XX代表着两个一样的数字,则只能是00,11,22,33,44,55,66,77,88,99。
让这些数字以与2018拼接,然后与12做整除运算。
nums=['00','11','22','33','44','55','66','77','88','99']
7
计数
nums=['00','11','22','33','44','55','66','77','88','99']
for x in range(10):
n='2018'+nums[x]
if int(n)%12==0:
print(int(n))
8
多条件筛选
有时解决一个问题的需要多重筛选条件。只要有一个条件不符合就前功尽弃。
例如明朝的科举制度,分为院试、乡试、会试和殿试四个阶段:
参加院试的考生不论年纪均可参加,通过院试的考生称为秀才。
只有通过院试的秀才可以参加每三年一次的乡试,通过乡试的考生称为举人。
只有通过乡试的举人在第二年可以参加会试,通过会试的考生称为贡士。
只有通过会试的贡士可以参加殿试,殿试有皇帝或皇帝指派的重臣主持,通过殿试的考生称为进士。
特别的,进士中排名第一的称为状元,第二名称为榜眼,第三名称为探花。
普通考生
秀才
举人
贡士
进士
多条件筛选
zfill():返回指定长度的字符串,原字符串右对齐,前面补0
找数字
有一个七位数2018xyz能同时被2,3,4,5,6,7,8,9整除,则七位数是几?
我们要找符合下面二个条件的数字
xyz各不相同。
2018与xyz组成的七位数可以整除2,3,4,5,6,7,8,9。
找数字
1. xyz各不相同。
xyz是一个七位数字的后三位,所以取值范围从000~999。将当前数字转为字符串后,一旦发现有重复的内容,就跳到下一个3位数继续判断。如果都不重复,进入步骤2。
如果数字不足3位,前面补0如何实现?
解决方式:将数字转为字符串,调用字符串的zfill(希望长度)函数。只要字符串的长度小于期望长度,则会在字符串前面补充0。
找数字
2. 2018与xyz组成的七位数可以整除2,3,4,5,6,7,8,9
与2018组成7位数字之后,从2至9进行整除测试,如果一个符合就不用进行后面的整除测试了。
找数字
n='2018'
for x in range(1000):
flag=True
s=str(x).zfill(3) #将不足三位的字符串前面补0
for y in s:
if s.count(y)>1: #如果有重复的内容
flag=False
break
if flag:
m=int(n+s) #生成七位数字
for z in range(2,10): #七位数字是否可以整除2,3,4,5,6,7,8,9
if m%z!=0:
flag=False
break
if flag:
print(n+s) #打印通过以上所有测试的七位数
找数字
有一个三位数ABC,不同的字母代表不同的数字,且: