你在你的函數結束時忘了回報p
:
def anti_vowel(text):
p=''
for c in text:
if c=='a' or c=='A':
break
elif c=='e' or c=='E':
break
elif c=='i' or c=='I':
break
elif c=='o' or c=='O':
break
elif c=='u' or c=='U':
break
else:
p=p+c
return p
沒有最後一行所有你永遠打印爲None
,該沒有明確的return
語句的函數的默認返回值。
當然,您的功能只會打印第一個輔音,因爲break
結束一旦找到任何元音循環。它永遠不會扭轉字符串。對於您的示例輸入,函數返回'H'
,因爲輸入中的下一個字母是元音,然後break
結束循環。
你可以很容易地重新寫你的函數中使用str.lower()
和遏制測試:
def anti_vowel(text):
p = ''
for c in text:
if c.lower() in 'aeiou':
break
p += c
return p
這做同樣的事,返回第一個輔音('H'
爲您的樣品輸入)。
如果你想反向字母,和排除元音,不使用break
和反轉放在什麼地方,其餘的字母。你可以使用continue
代替,或者更簡單地說,只是反轉if
測試階段,只處理chararter如果不是元音:
def anti_vowel(text):
p = ''
for c in text:
if c.lower() not in 'aeiou':
p = c + p
return p
現在輔音放在以前任何一項輔音,扭轉了文本:
>>> def anti_vowel(text):
... p = ''
... for c in text:
... if c.lower() not in 'aeiou':
... p = c + p
... return p
...
>>> anti_vowel('Hello you')
'y llH'
DEF anti_vowel(文本): p值= '' 對於C在文本: 如果c == '一' 或c == 'A': 破 elif c =='e'or c =='E': break elif c =='i'or c =='I': break elif c =='o'or c =='O ': 突破 ELIFç==' U」或c == 'U': 突破 其他: p = + C 打印(anti_vowel( '你好,你')) – ALpha
你是不是返回任何東西,函數需要返回,可能'p' –
我有一種感覺,你想使用'continue'而不是'break' –