python初学者练习题---字符串

1、编写一个程序,重复长度较小的字符串,直到长度等于较长字符串的长度。假设两个输入字符串的长度不相等。

定义函数repeat_till_equal_length()的函数,有两个参数string1string2

在函数内,重复较短的字符串,直到它等于较长的字符串的长度。

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(),它接受两个参数:word1word2

该函数应返回一个包含word1word2之间均出现的字母的组成的字符串。

返回的字符串中的字母应为小写并按字母顺序排序。如果没有相同的字母,则返回一个空字符串。

示例输入: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(),参数为email

在函数内,如果邮箱email满足下面提到的条件,则返回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

​​​​​​​解释: 由于ef最近的元音,因此它是此测试输入用例的输出。

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))

猜你喜欢

转载自blog.csdn.net/qq_69424518/article/details/134826460