一,单词字母替换
题目要求是编写一串代码,将输入的字符串中的字母改成它在字母表中的下一个
解题的代码是:
def shift_char(word):
result = []
for ch in word:
next_ch = chr(ord(ch) + 1)
result.append(next_ch)
return ''.join(result)
word = input()
print(shift_char(word))
next_ch = chr(ord(ch) + 1)解释一下这串代码,ord是将括号中的东西转化成它相应的Unicode 码,然后加一,就是变成下一个,最后使用chr再将Unicode 码变成对应的字母。
二,缺失数字之和
def sum_missing_numbers(nums):
if not nums:
return 0
lo, hi = min(nums), max(nums)
return sum(range(lo, hi + 1)) - sum(nums)
nums = list(map(int, input().split()))
print(sum_missing_numbers(nums))
题目的要求就是我们输入一个列表,然后找出最小值和最大值,并找出之前缺失的数字。上述是解题的代码。
需要注意的是, lo, hi = min(nums), max(nums)中的多重赋值,还有range是左闭右开的。
三,字符串中缺失的字母
题目要求是:将输入的字符串中的字母与字母表中的进行对应,并且输出缺失的部分。
解题的代码:
def get_missing_letters(word_string):
all_letters = set('abcdefghijklmnopqrstuvwxyz')
existed = set(word_string)
missing = sorted(all_letters - existed)
return ''.join(missing)
word_string = input()
print(get_missing_letters(word_string))
代码没什么好说的,主要讲解一下解题的思路,就是将字母表和输入的字符串全部转化为集合,然后求两者的差集,最后即可得到答案。
四,子列表的数量
题目要求:计算列表中子列表的数量是多少。
解题的关键代码:
return sum(isinstance(item, list) for item in list_input)
重点讲解一下isinstance这个玩意的用法:
方法原型是这样的:isinstance(obj, classinfo)
前一个参数是任何一个对象,后面的是一种类型或者类型元组,作用是检查前面的对象是不是后面的那一种或多种类型。
举两个栗子:


五,重复字符的数量
题目要求是返回一个字符串中重复出现的字母的个数。
解题代码:
from collections import Counter
def count_duplicate_chars(input_string):
counts = Counter(input_string)
return sum(1 for cnt in counts.values() if cnt >= 2)
test_string = input()
result = count_duplicate_chars(test_string)
print(result)
解题思路:首先引入Counter工具对每个字母的出现次数进行计算,然后通过找出每个字母出现的次数的值,来判断重复出现的字母有多少个。
需要注意的是使用Counter的时候首先需要先从工具箱里面掏出来,其次记得counts.values() 的用法是取值(Counter的输出结果类似于字典,但是不是字典,而是一个字典-like 对象(就是在行为上像字典的玩意,实际上counter是一种映射容器))

六,字符出现的次数
题目要求是计算一个英语句子中每个单词出现某个字母的次数。
解题代码:
char = char.lower()
words = sentence.split()
return [word.lower().count(char) for word in words]
着重注意一下split和count的使用方法。
七,完美数
解题的代码:
def check_perfect(num):
if num < 2:
return False
factor_sum = 1
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
factor_sum += i
counterpart = num // i
if counterpart != i:
factor_sum += counterpart
return factor_sum == num
num = int(input())
print(check_perfect(num))
题目的要求是判断用户输入的数是不是完美数(所有因子相加等于这个数),主要注意一下这道题目的算法,以及num ** 0.5的使用(**是python中的幂运算符)