分模块积累,此模块为按要求【取数】,技巧多,偏灵活。
1. 有 n 个小朋友围在一起玩游戏,游戏规则是这样的:每一轮每个小朋友都自由地从 1-99 中选择一个数,主持人每一轮都会报一个 1-9 的数字x,当小朋友的编号满足一下两个条件的任何一个时要蹲下(否则会被淘汰):
1)编号的数字有 x(如x=3,编号=13,则该小朋友要蹲下)
2)该编号能整除 x
例如:
输入 n 个小朋友的编号和数字 x :
1 3 6 8 21
2
输出要蹲下的小朋友的编号:
2
6
8
21
1.1 判断含某数字的两位数:
'''判断输出'''
for i in range(len(l)):
if max(l[i])==x or min(l[i])==x:
print(int(l[i]))
elif int(l[i])%int(x)==0:
print(int(l[i]))
--这里采用取巧的方法,利用 max() 和 min() 函数,来取得字符串中的不同的两位数字。
1.2 题解:
'''处理输入'''
s=input()
l=s.split(' ')
x=input()
'''判断输出'''
for i in range(len(l)):
if max(l[i])==x or min(l[i])==x:
print(int(l[i]))
elif int(l[i])%int(x)==0:
print(int(l[i]))
2. 一个正整数的平方的尾数一位或者几位数等于这个正整数,称为自守数。
如:
正整数5的平方为25,25的尾数一位是5
正整数25的平方为625,625的尾数两位是25
编程实现:
给定一个正整数,判断这个正整数是否为自守数,如果是输出大写字母Y,否则输出大写字母N
注:1为自守数
2.1 切片确定后几位:
'''判断输出'''
if s_q[-l:]==s:
print('Y')
else:
print('N')
--这里同样采用取巧的方法,利用切片来取得平方后几位(若一位)等于该数(则一位)。
2.2 题解:
'''输入、初始化'''
s=input()
s_q=str(int(s)**2)
l=len(s)
'''判断输出'''
if s_q[-l:]==s:
print('Y')
else:
print('N')
3. 输入一个只包含大小写字母的字符串,将字符串全部变为大写字母,然后逆序(反向)输出
样例输入:aCb
样例输出:BCA
3.1 反向输出:
'''反向输出'''
print(s[::-1])
--这里利用切片步长,使得反向输出。
3.2 题解:
'''输出'''
s=input()
'''大写、字符串排序'''
s=s.upper()
'''反向输出'''
print(s[::-1])
4. 将一个列表的数据复制到另一个列表中。
4.1 列表复制:
'''复制'''
l2=l1[:]
--这里采用切片,将原列表中的所有数都复制到另一列表中。
4.2 题解:
'''处理输入'''
s=input()
l1=s.split(',')
for i in range(len(l1)):
if l1[i].isdigit():
l1[i]=int(l1[i])
'''复制'''
l2=l1[:]
'''输出'''
print(l2)
5. 回文判断
一个字符串,如果各字符反向排列与原字符串相同,则称为回文,如“上海自来水来自海上”,用户输入一个字符串,判断该字符串是否为回文,如是回文输出“True”,否则输出“False”。
5.1 判断规则:
if s[:]==s[::-1]:
--各字符反向排列与原字符串相同。
5.2 题解:
s=input()
if s[:]==s[::-1]:
print('True')
else:
print('False')