python基础题,请用基础方法解决,循环用while不用for

python基础题,请用基础方法解决,循环用while不用for

问题描述:

注明元音字母为a,e,i,o,u.y

1 编写一个last_consonant函数,它以一个单词作为参数,并返回两个返回值:其最后一个辅音在列表中的的位置以及最后一个辅音是什么(对于列表,我们将考虑第一个字母的索引为零)。我们不会处理单词不包含辅音的问题。

示例: last_consonant('arrivee')vaut 4, 'v'

2 编写一个double_consonant函数,它接受一个单词作为参数并有两个返回值:一个布尔值等于True如果单词包含一个双辅音(连续两次相同的辅音),在这种情况下,返回的第二个值是加倍的辅音;如果没有双辅音,函数应该返回False和None。 有关信息:为简化练习,我们不会在包含多个双辅音的单词(例如,“successor”)上测试您的功能。

例子:

double_consonne('arrivee') vaut True, 'r'.
double_consonne('bonbon') vaut False, None
double_consonne('reussite') vaut True, 's'
3 编写一个函数envers,该函数将列表li作为参数(注意,不是单词,与本练习中的其他函数不同),并通过颠倒元素的顺序返回从li获得的列表。

Exemple: envers(['a', 'b', 'c', 'd']) vaut ['d', 'c', 'b', 'a']

4 编写一个回文函数,该函数将一个单词作为参数并返回一个布尔值,指示该单词是否是一个回文。回文是从右到左阅读时保持不变的单词,而不是通常的从左到右的顺序。

Exemple: palindrome('ici') vaut True mais palindrome('aller') vaut False.

  1. 编写一个函数mot_autorise以一个单词和一个禁用单词列表作为参数,如果该单词被授权,则返回True,如果该单词被禁用,则返回False。
    Exemple:

mot_autorise('fric', ['sous', 'fric', 'thune', 'ble']) vaut False
mot_autorise('argent', ['sous', 'fric', 'thune', 'ble']) vaut True

alp = ['a', 'e', 'i', 'o', 'u', 'y']


def last_consonant(w):
    global alp
    i = len(alp) - 1
    while i > -1:
        if w[i] not in alp:
            return i,w[i]
        i -= 1


def double_consonant(w):
    global alp
    i = 0
    while i < (len(w) - 1):
        if w[i] == w[i + 1]:
            if w[i] not in alp:
                return True, w[i]
        i += 1
    return False, None


def envers(li):
    return li[::-1]


def palindrome(w):
    return w == w[::-1]


def mot_autorise(w, li):
    return w not in li


if __name__ == '__main__':
    word = input(">>>")
    lista = ['a', 'b', 'c', 'd']
    x = last_consonant(word)
    print(x)
    x = double_consonant(word)
    print(x)
    x = envers(lista)
    print(x)
    w = 'noon'
    x = palindrome(w)
    print(x)
    winj = ['sous', 'fric', 'thune', 'ble']
    x = mot_autorise(word, winj)
    print(x)

img

vaut意思是“是”,“is”

word = input(">>>")
alp = ['a', 'e', 'i', 'o', 'u', 'y']

def last_consonant(w):
    for i in range(-1, -len(w), -1):
        if w[i] not in alp:
            return len(w) + i, w[i]
x = last_consonant(word)
print(x)

def double_consonant(w):
    for i in range(len(w) - 1):
        if w[i] == w[i+1] and (w[i] not in alp):
            return True, w[i]            
    return False, None
x = double_consonant('bonbon')
print(x[0], x[1])

def envers(li):
    return li[::-1]

print(envers(['a', 'b', 'c', 'd']))

def palindrome(w):
    return w == w[::-1]

print(palindrome('ic'))

def mot_autorise(w, li):
    return w not in li

print(mot_autorise('argent', ['sous', 'fric', 'thune', 'ble']))