1、编写一个程序找出两个单词之间的共同字母。
定义函数
common_letters()
,它接受两个参数:word1
和word2
。该函数应返回一个包含
word1
和word2
之间均出现的字母的组成的字符串。返回的字符串中的字母应为小写并按字母顺序排序。如果没有相同的字母,则返回一个空字符串。
def common_letters(word1, word2):
w1 = set(word1)
w2 = set(word2)
s = ""
for i in w1:
for j in w2:
if j == i:
s = "".join(j) + s
l = list(s)
l.sort()
s = "".join(l)
return s
# 输入两个单词
word1 = input()
word2 = input()
# 调用函数, 并打印结果
print(common_letters(word1, word2))
2、编写一个程序来提取嵌套元组中的唯一元素。
例如,在嵌套元组
((1,2,3),(2,4,6),(2,3,5))
中,2重复出现了3次,3重复出现了2次,但我们的输出列表只会包含2、3一次。即:
[1, 2, 3, 4, 5, 6]
定义函数
get_unique_elements()
,函数接受一个参数 - 一个包含三个元组的嵌套元组。在函数内,提取所有元组中的独立元素,确保不重复提取元素。
以列表的形式返回唯一的元素,并从小到大排序。
【思路:只有集合中不允许出现重复的值,先创建一个空集合,在遍历这个元组,再将每一个元组转换成集合(即去除重复元素)再添加到新的集合中,最后将整个集合转换成列表并进行排序】
def get_unique_elements(nested_tuples):
unique_elements = set()
for tup in nested_tuples:
unique_elements.update(set(tup))
return sorted(list(unique_elements))
# 初始化嵌套元组
nested_tuples = []
# 获取用户输入
for _ in range(3):
tuple_elements = tuple(map(int, input().split()))
nested_tuples.append(tuple_elements)
# 调用函数
print(get_unique_elements(nested_tuples))
3、编写一个程序来计算两个给定单词之间相同字符的数量。
需要考虑字符是区分大小写的(即a和A是不同的字符)。
例如,单词cookie和cool有两个字符相同:c和o。因此,输出应该是2。
另一方面,单词Blow和beer没有相同的字符,因为B和b视为不同的字符。
定义函数
shared_chars_count()
,有两个参数:word1
和word2
。该函数应返回两个单词中相同字母的数量。
【思路:单词中存在两个相同的字母,只计算其中的一个的时候,就要想到集合操作,转换成集合,可以去除相同的元素,再计算两个字符的交集,就是相同字符,最后返回长度即可。】
def shared_chars_count(word1, word2):
set1 = set(word1)
set2 = set(word2)
shared_chars = set1 & set2
return len(shared_chars)
# 获取输入
word1 = input()
word2 = input()
# 调用函数
print(shared_chars_count(word1, word2))
4、编写一个程序,计算句子中每个单词中某个字符出现的次数。
注意: 我们将英文字母的大小写当作同一个字符。例如,如果一个单词中同时包含S和s,那么它们都将被计为同一个字母s的出现次数。
定义函数
count_char_occurrences()
,有两个参数:sentence
(句子)和char
(字符)。在函数内部,将
sentence
转换为小写。返回一个列表,包含
char
在句子的每个单词中出现的次数
示例输入:She sells sea shells by the seashore. s
示例输出:[1, 2, 1, 2, 0, 0, 2]
【思路:先将所有的单词全部转换成小写,再将句子中的每个单词进行遍历和判断】
def count_char_occurrences(sentence, char):
sentence = sentence.lower() # 将句子转换为小写
result = [] # 存储每个单词中char出现的次数
for word in sentence.split(): # 遍历每个单词
count = 0 # 记录char出现的次数
for c in word: # 遍历单词中的每个字符
if c == char: # 如果字符与char相同
count += 1 # char出现的次数加1
result.append(count) # 将char出现的次数添加到结果列表中
return result
# 获取输入
sentence_input = input()
char_input = input()
# 调用函数
print(count_char_occurrences(sentence_input, char_input))
5、编写一个程序,在单词中的每个大写字母前添加空格,然后将字符串中的每个字符转换为小写。
定义函数add_space_before_capital(),它接受一个参数word。 在函数中,在字符串的每个大写字母前添加空格,并转为小写字符串后返回。
示例输入 myNewComputer 示例输出 my new computer
【在代码中,尝试通过将单词按空格拆分为列表来处理每个大写字母之前的空格。 然而,这种方法是不正确的。需要在每个大写字母前插入一个空格,而不是将单词拆分成列表】
def add_space_before_capital(word):
new_word = ""
for i in word:
if i.isupper():#判断是否为大写,并将其转换成小写
new_word =new_word + " " + i.lower()
else:
new_word =new_word + i.lower()
return new_word
# 获取用户输入
word = input()
# 调用函数
print(add_space_before_capital(word))
6、编写一个程序,按照每个单词的最后一个字母对句子进行排序。
定义函数
sort_by_last_char()
,参数为sentence
(表示句子)。在函数内部,返回按照每个单词最后一个字母排序的句子。示例输入:
i love python programming
示例输出:
love programming i python
def sort_by_last_char(sentence):
s = sentence.split()
s.sort(key=lambda x: x[-1]) # 按照每个单词的最后一个字母排序
return ' '.join(s) # 将排序后的单词列表合并成字符串,使用空格分隔
# 输入句子
sentence = input()
# 调用函数
print(sort_by_last_char(sentence))