如何修复我的Pig Latin加密代码?

时间:2019-10-25 23:26:19

标签: python indexing

我正在尝试修复代码中的'if w [0] not in元音:'部分(用于处理以辅音开头的单词。但是返回值不是应该的,我也不知道为什么!

def encrypt(w):
    '''
    encrypt to pig latin
    '''
    Lstw = list(w)
    y = 0
    if w[0:2] == 'qu':
        PLw = []
        for element in vowel:
            #find first occurence of vowel in 'qu...'
            y = w.find(element)
            #if vowel found, y = 0
            if y != -1:
                #terminate loop and continue to line 22
                break
        x = w[0:y]
        PLw.append(w[y:] + '-' + x + 'ay')
        return PLw[0]
    if w[0] in vowel:
        PLw = []
        PLw.append(w + '-way')
        return PLw[0]
    if w[0] not in vowel:
        PLw = []
        for element in vowel:
            v = w.find(element)
            if v != -1:
                break
        PLw.append(w[v:] + '-' + w[0:v] + 'ay')
        return PLw[0]
    else: 
        if w[1] in vowel:    
            PLw = []
            x = w[0]
            PLw.append(w[1:] + '-' + x + 'ay')
            return PLw[0]                  
print(encrypt('yesterday'))
print(encrypt('STRENGTH'))

应该返回

>>> esterday-yay
>>> ENGTH-STRay

当前返回

>>> ay-yesterday
>>> H-STRENGTay

1 个答案:

答案 0 :(得分:0)

我马上看到三个错误;可能还会更多。

  1. 您的寻找元音的循环正在寻找元音列表中的第一个元音,而不是单词中的第一个元音。
  2. 我猜您的vowel列表仅小写,这就是为什么大写字母输入会中断的原因。
  3. 您寻找第一个元音的循环无法说明根本没有元音的情况,这就是为什么(2)的破损不明显的原因。