1、编写一个程序,重复长度较小的字符串,直到长度等于较长字符串的长度。假设两个输入字符串的长度不相等。
定义函数
repeat_till_equal_length()
的函数,有两个参数string1
和string2
。在函数内,重复较短的字符串,直到它等于较长的字符串的长度。
def repeat_till_equal_length(string1, string2):
if len(string1) > len(string2):
shorter = string2
longer = string1
else:
shorter = string1
longer = string2
while len(shorter) < len(longer):
shorter += shorter[:len(longer) - len(shorter)]
return shorter
# 输入两个字符串
string1 = input()
string2 = input()
# 调用函数
print(repeat_till_equal_length(string1, string2))
2、编写一个程序,返回一个按字母顺序排序的字符串,其中包含给定字符串中不出现的所有小写字母。
定义函数
get_missing_letters()
,参数为word_string
。在函数内部,返回一个排序的字符串,其中包含不出现在
word_string
中的所以小写字母。注意:假设用户只输入小写字母字符串作为输入。
示例输入:stray
示例输出:bcdefghijklmnopquvwxz
def get_missing_letters(word_string):
# 定义一个包含所有小写字母的字符串
all_letters = 'abcdefghijklmnopqrstuvwxyz'
# 将输入字符串中的字母转换为小写字母,并去重
word_set = set(word_string.lower())
# 将all_letters中不在word_set中的字母添加到missing_letters中
missing_letters = ''.join(sorted(set(all_letters) - word_set))
return missing_letters
# 获取输入的字符串
word_string = input()
# 调用函数输出结果
print(get_missing_letters(word_string))
3、编写一个程序找出两个单词之间的共同字母。
定义函数
common_letters()
,它接受两个参数:word1
和word2
。该函数应返回一个包含
word1
和word2
之间均出现的字母的组成的字符串。返回的字符串中的字母应为小写并按字母顺序排序。如果没有相同的字母,则返回一个空字符串。
示例输入:
horse home
输出:eho
def common_letters(word1, word2):
w1 = set(word1)
w2 = set(word2)
s = []
for i in w1:
if i in w2:
s.append(i)
return ''.join(sorted(s))
# 输入两个单词
word1 = input()
word2 = input()
# 调用函数, 并打印结果
print(common_letters(word1, word2))
4、编写一个程序,按照每个单词的最后一个字母对句子进行排序。
定义函数
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))
5、编写一个程序来验证一个邮箱地址是否合法。
定义函数
is_email_valid()
,参数为在函数内,如果邮箱
True
,否则返回False
。要求邮箱有效,必须满足以下条件:
字符串必须包含一个
@
字符。字符串必须包含一个
.
字符。
@
必须有至少一个字符在它之前。
.
和@
必须处于适当的位置。例如,
hello.email@com
是无效的,而[email protected]
是有效的。
def is_email_valid(email):
for i in email:
if '@' not in email and '.' not in email:
return False
if email.index('@') <= 1:
return False
if email.count('.') <= 1 and email.index('@') > email.index('.'):
return False
if email.count('.') >= 2 and email.index('@') > email.index('.'):
return True
return True
# 获取输入
email = input()
# 调用函数
print(is_email_valid(email))
6、编写一个程序,查找给定字母最近的元音。
定义函数
closest_vowel()
,参数为一个字母letter
。在函数内,确定给定字母最近的元音。
如果两个元音离给定字母距离相等,则返回字母顺序较小的元音。
另外忽略字母大小写,将输入的字母转换为小写。
示例输入
f
示例输出
e
解释: 由于e
是f
最近的元音,因此它是此测试输入用例的输出。
def closest_vowel(letter):
vowels = ['a', 'e', 'i', 'o', 'u']
if letter in vowels:
return letter
else:
left = right = ord(letter)
while chr(left) not in vowels:
left -= 1
while chr(right) not in vowels:
right += 1
if ord(letter) - left <= right - ord(letter):
return chr(left)
else:
return chr(right)
# 获取输入
letter = input()
# 调用函数
print(closest_vowel(letter))
7、编写一个程序,检查句子中的任何单词是否包含重复字母。
定义函数
check_duplicate_letters()
,参数为phrase
(字符串)。在函数内,如果字符串
phrase
的任何单词包含重复字母,则返回True
,否则返回False
。示例输入
Taylor and harry are friends
示例输出True
解释: 在测试输入中,单词
harry
包含重复字母,因为字母r
出现了两次。因此输出为True
from collections import Counter
def check_duplicate_letters(phrase):
words = phrase.split() # 将句子分割成单词
for word in words:
if len(set(word)) != len(word): # 如果单词中有重复字母
return True
return False
# 获取输入
sentence = input()
# 调用函数
print(check_duplicate_letters(sentence))