입력으로 단어를 소문자로 요청하고 단어를 Pig Latin로 변환하는 Python 프로그램을 작성해야합니다. • 단어를 Pig Latin로 번역하는 규칙은 다음과 같습니다. a) 단어가모음으로 시작하면 단어 끝에 길을 추가하십시오. 예를 들어, 그렇지 않으면 그렇지 않습니다. b) 단어가자음그룹으로 시작하는 경우 단어의 끝으로 이동하고 ay를 추가하십시오. 예를 들어, 칩이 ipchay가됩니다.
현재 코딩 :
word = input("Enter word to translate: ")
#if the 1st letter of a word is "aeiou", add "way" to the end of the word
if word[0] == "a" or "e" or "i" or "o" or "u":
print(word + "way")
elif word[0] and word[1] == "b" or "c" or "d" or "f" or "g" or "h" or "j" or "k" or "l" or "m" or "n" or "p" or "q" or "r" or "s" or "t" or "v" or "x" or "y" or "z":
print(word + "ay")
현재의 코딩은 단어의 첫 글자가 모음인지 자음인지에 관계없이 단어 끝에 "ways"를 추가 한 단어 만 표시하므로 문제가있는 것 같습니다. 또한 단어의 자음 그룹 인 경우 단어의 첫 글자를 단어의 끝으로 이동하는 방법을 잘 모르겠으며 단어의 첫 글자와 두 번째 글자가 자음과 같은 경우 어떻게 처리해야하는지 모르겠습니다. "zh", "ch"등
이 Python 프로그램의 예상 결과 : 번역 할 단어를 입력하십시오 : else Pig Latin의 단어는 그렇지 않다. 번역 할 단어를 입력하십시오 : chip Pig Latin의 단어는 ipchay입니다.
- 답변 # 1
- 답변 # 2
'or'가 생각한대로 작동하지 않습니다. 왼쪽에있는 것이 True인지, 그렇지 않은 경우 오른쪽에있는 것이 True인지 확인합니다. 이 중 하나라도 True이면 'or'가 True를 반환하고, 그렇지 않으면 False를 반환합니다. 코드에서 문자는 부울로 변환되고 항상 True를 제공합니다. 따라서 '또는'의 오른쪽에는 항상 True가 있습니다. 즉, 첫 번째 'if'가 항상 작동합니다.
- 답변 # 3
이것은 가장 파이썬적인 대답은 아니지만 ...
elif를 사용하는 경우 : 첫 번째 문장에 추가하는 것입니다. 이것이 항상 끝에 추가하는 이유입니다
elif를 사용하여 각 모음을 해결 한 다음 else 문을 자음 처리 :
vowels = ['a','e','i','o','u'] consonants = ['b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z'] word = input("Enter word to translate: ") #if the 1st letter of a word is "aeiou", add "way" to the end of the word if word[0] in vowels: print(word + "way") elif word[0] and word[1] in consonants: print(word[2:] + word[0:2] + "ay") else: print(word[1:] + word[0] + 'ay')
관련 자료
- tkinter - 파이썬으로 이미지 가져 오기, 실행하려면 프로그램 폴더를 다른 위치로 이동하면 프로그램이 작동하지 않습니다 코드를 변경해야합니다
- 파이썬 단어 목록을 문자 목록과 비교
- beginner - 3 자리 자기애 적 숫자 프로그램 - 파이썬&# 128013;
- Python을 사용하여 Python을 사용하여 CLI 프로그램을 실행하는 방법
- authentication - python - 로그인 후 요청 실패
- Python에서 KeyboardInterrupt를 사용할 때 어떻게 프로그램을 중지 할 수 없습니까?
- 파이썬의 우박 프로그램
- Python 프로그램은 pycharm에서만 작동하며 다른 곳에서는 작동하지 않습니다
- 파이썬 프로그램에서 입력을 어떻게 사용합니까?
- python - 스레드 오류시 처음부터 프로그램을 다시 시작하는 방법
- list - 쿠폰으로 파이썬 복권 프로그램! (숙제 도움)
- PHP에서 Python 프로그램을 실행하고 HTML 내에서 반환 값을 사용하는 방법은 무엇입니까?
- python을 사용하여 파일 보내기 및 받기 - fastapi 및 요청
- java - 입력 한 소문자 수에 대한 비밀번호 확인 방법은?
- 문자, 숫자, 밑줄, 마침표, 대시 및 더하기 기호를 포함하는 최상위 웹 주소에 대해 Python 정규식을 작성해야합니다
- 대문자와 숫자 만 받아들이는 파이썬에서 어떻게 입력을 할 수 있습니까?
- ssl - Python 요청 문제 SSLCertVerificationError
- 대문자 앞에 모든 소문자 알파벳 단어를 가져 오기 위해 목록을 정렬하는 Python
- Python fseek에서 텍스트 파일을 수동으로 편집하면 OSError [Errno 22]가 발생하지만 프로그램이 파일로 출력되면 오류가 발생하지 않습니다
- 문자열에 숫자가있는 경우에만 소문자를 허용하려면이 RegEx를 어떻게 수정해야합니까?
- python : 일대다 관계 flask-sqlalchemy를 식별하는 적절한 방법입니까?
- PYTHON-최소 3자리 숫자 반환
- python : PyCharm은 dict 생성 속성의 확인되지 않은 속성에 대해 경고합니다.
- python : 지수 형식/과학 표기법 없이 십진수를 인쇄하는 방법은 무엇입니까?
- python : opencv에서 인수 오류가 계속 발생합니까?
- python : Sphinx는 :param 및 :return을 제대로 인식하지 못합니다.
- python : super가 항상 __init__에서 호출되어야 하는 이유
- python : 값이 두 번 이상 나타나면 값을 취하는 목록 만들기
- bash 스크립트에서 올바른 Python 설치를 동적으로 선택하십시오.
- python : 파이썬 함수에서 하드 코딩된 문자열 값을 피하는 방법
파이썬이 당신의
if
를 해석하는 방식 진술은 당신이 생각하는 방식이 아닙니다.네가 생각하는 것 :
그러나 실제로는 다음과 같이 처리됩니다
따라서 "e"(혹은 비어 있지 않은 문자열)는 파이썬에 의해 항상 True로 평가되므로 항상 'way'를 추가 할 것이기 때문에 단어 [0]에 실제로 포함 된 내용은 중요하지 않습니다.
if
를 다시 쓰는 가장 쉬운 방법 입니다"aeiou"라는 문자열에 나타나는지 확인하여 모음인지 실제로 확인합니다.