目录
一、统计字符在字符串中出现的次数
二、字符串分割
三、字符个数统计
四、提取不重复的正整数
五、找质数因子
六、合并表记录
总结
一、统计字符在字符串中出现的次数
例如:字符串AaBbabc,字符a,不区分大小写,在字符串中出现3次。
strs=input().strip().upper()
word=input().upper()
print(strs.count(word))
二、字符串分割
例如:字符串AaBbabc,字符a,不区分大小写,在字符串中出现3次。
输入一个字符串,把字符串按长度8分割成新的字符串,不够8的补0
要求:输入的字符串长度限制为1到100
str1=input()
if len(str1)>0 and len(str1)<=100:
for i in range(0,len(str1),8):
print("{0:0<8s}".format(str1[i:i+8]))
三、字符个数统计
编写一个函数,计算字符串中含有的不同字符的个数。
思路:用集合去重,去重后的字符串长度就是不同字符个数
例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3 。
def count_word(str1):
list1 = list(str1)
list2 = set(list1)
return len(list2)
str1 = input()
print(count_word(str1))
四、提取不重复的正整数
输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。保证输入的整数最后一位不是 0 。
方法一:用集合去重处理
list1 = list(input()[::-1])
if int(list1[0]) != 0:
list2 = list(set(list1))
list2.sort(key=list1.index) # 集合去重后会乱序,重新按照之前顺序排序
print(''.join(list2))
方法二: 字符串拼接,如果该字符不在列表中就追加进去
new_list = []
data = list(input())[::-1]
if int(data[0]) != 0:
for i in data:
if i not in new_list:
new_list.append(i)
print(''.join(new_list))
五、找质数因子
输入一个正整数,按照从小到大的顺序输出它的所有质因子。(重复的也要列举)(如180的质因子为2 2 3 3 5 )
num = int(input())
for i in range(2, int(num ** 0.5) + 1): #质因数范围>=2,<=自身开根号
while num % i == 0:
print(i, end=' ')
num = num//i
if num >= 2: #从2开始的质数,例如2,3,5,7,11,13,17,19...
print(num)
六、合并表记录
数据表记录包含表索引index和数值value(int范围的正整数),要求对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照index值升序进行输出。
n = int(input()) #第一行输入:表有几行数据
dic = {}
for i in range(n):
line = input().split() #输入key和value值
key = int(line[0])
value = int(line[1])
dic[key] = dic.get(key,0)+value #累积key对应的value
for j in sorted(dic):
print(j,dic[j])
总结
数据表记录包含表索引index和数值value(int范围的正整数),要求对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照index值升序进行输出。
n = int(input()) #第一行输入:表有几行数据
dic = {}
for i in range(n):
line = input().split() #输入key和value值
key = int(line[0])
value = int(line[1])
dic[key] = dic.get(key,0)+value #累积key对应的value
for j in sorted(dic):
print(j,dic[j])
总结
目前练习的题目还是比较基础,题目要求比较简单,后续要加强练习复杂逻辑题目。



