문자열 입력을 돼지 라틴어로 변경하는이 함수를 만들었습니다. 인덱스가 범위를 벗어나지 만 검사 방법이 범위를 벗어난 인덱스인지 확인하려고했습니다.인덱스가 범위를 벗어 났는지 확인하려고했으나 사용 된 코드가 범위를 벗어나는 인덱스를 제공하고 있습니까?
def simple_pig_latin(input, sep=' ', end='.'):
words=input.replace(" ", " ").split(sep)
new_sentence=""
Vowels= ('a','e','i','o','u')
Digit= (0,1,2,3,4,5,6,7,8,9)
cons=('b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z')
characters= ('!','@','#','$','%','^','&','*','.')
for word in words:
if word[0] == " ":
new_word=word
else:
if word[0] in Vowels:
new_word= word+"way"
if word[0] in Digit:
new_word= word
if word[0] in cons:
first_letter=word[0] #saves the first letter
change= str(word) #change to string
rem= change.replace(first_letter,'')
put_last= rem+first_letter #add letter to end
new_word= put_last+"ay"
if word[0] in characters:
new_word= word
new_sentence= new_sentence+new_word+sep
new_sentence= new_sentence.strip(sep)+end
return new_sentence
당신은 비어 있으면 문이 확인되는 경우 첫 번째 볼 수 있습니다,하지만 난이 정확한 오류 받고 있어요 :
"9 호선 IndexError : 밖으로 문자열의 인덱스를 다음과 같이
은 참조 범위의 "
어떻게 빈 시퀀스를 확인할 수 있습니까? 나는 if 문이 작동하지 않기 때문에 범위 내의 단어 (len (단어))를 사용할 수 없습니다. 그것은 객체가 subscriptable하지 않다는 것을 말해 줄 것입니다. 루프에서
"당신은 볼 수 있습니다 첫 번째 if 문은 비어 있는지 확인합니다. "- 그렇지 않습니다. 'word [0]'에 액세스하려고 시도하고'word [0]'이 공백인지 확인합니다. 'word [0]'이 있다고 가정합니다. 단어'가 비어 있는지 확인하는 것과 같은 것은 아닙니다. – user2357112
이 질문에 대한 이유는 무엇입니까? 가난한 표를 얻지 않도록 오류를 수정하고 싶습니다. –