vowlist=['a','e','i','o','u']
def piglatin(s):
if len(s)==1:
if s[0] in vowlist:
return s[0]+'way'
else:
return s[0]+'ay'
elif s[0]==' '*len(s):
return ' '
elif len(s)>1:
if s[0] in vowlist or (s[0]=='y' and s[1] not in vowlist):
return s[0:]+'way'
else:
return new(s)
def new(s):
global str
if s[0] not in vowlist:
str=s[0]+new(s[1:])
else:
return s[len(str):]+str[0:]+'ay'
print piglatin('school')
print piglatin('yttribium')
print piglatin('yolo')
這是我寫的代碼。它應該輸出:錯誤」類型爲'type'的對象沒有len()「
oolschay
yttribiumway
oloyay
但它給錯誤object of type 'type' has no len()
這是爲什麼?
歡迎堆棧溢出。將來,請將您的代碼直接發佈到問題中(您可以使用CMD-K進行格式化),而不是像「CoderPad」這樣的第三方網站。你還應該用編程語言(在這種情況下是Python)標記它。我編輯了你的問題來解決它,但它會使你更有可能在將來得到答案 –
你需要定義一個__len__函數。 參見[這裏] [1] [1]:http://stackoverflow.com/questions/27089682/python-typeerror-object-of-type-has-no-len – Canicious
將來,給出完整的調試消息(例如,錯誤發生在哪條線上)。 – rohanp