Как перевести слово / предложение на воображаемый язык, используя закодированные параметры? - PullRequest
0 голосов
/ 04 февраля 2019

Я кодирую программу, которая берет одно слово на английском и переводит его на воображаемый язык, эльфийский.Что мне нужно сделать, это перевести предложение, но я не знаю, как я мог это сделать.Пока что моя программа работает только для одного слова.Кроме того, мне нужно, чтобы программа начиналась с предложения: «Elcómewó óten heten Igpén Lvísheá ránslátórtë! (Добро пожаловать в переводчик Свинья эльфийская!начало.Я знаю, что нужна серия циклов, но я не понимаю циклы for / while так, как я думал, чтобы сделать это.Наконец, после запуска программы и отображения вывода пользователя, я должен иметь возможность спросить пользователя, хотят ли они перевести другое слово на эльфийский, и, если это так, снова пройти код.

# User Input: Ask user for a word

WordToBeTranslated = input("Please enter a word you would like to translate: ")
WordToBeTranslatedLower = WordToBeTranslated.lower()

# Condition #1: Moving the First Letter to the end

elvish = WordToBeTranslatedLower[1:] + WordToBeTranslatedLower[0]

# Condition #2 + #3: Appending a Vowel / Appending 'en' to the end of a word

vowel = ['a', 'e', 'e', 'i', 'o', 'u']
import random
randomVowel = random.choice(vowel)
list = []
list.append(WordToBeTranslated)
if len(WordToBeTranslated) >= 4:
    elvish += randomVowel

else:
    elvish = elvish + 'en'

# Condition #4: change all k's to c's

elvish = elvish.replace('k', 'c')

# Condition #5: Replace 'e' at end of the word with ë

if elvish[-1] == 'e':
    elvish = elvish[:-1] + 'ë'


# Condition #6: Capitalization
# Part of Condition #6 was achieved in Condition #1

elvishFinal = elvish.capitalize()
print("\"" + WordToBeTranslated + "\"", "in elvish is:", elvishFinal)

newWord = input("Would you like to translate another word? (y/n): ")

1 Ответ

0 голосов
/ 04 февраля 2019

Если я правильно понял, попробуйте это просто кодовое расположение.

Сначала обертка функции переводчика:

def elvish_translator(input_sentence):
  WordToBeTranslatedLower = input_sentence.lower()

  # Condition #1: Moving the First Letter to the end
  elvish = WordToBeTranslatedLower[1:] + WordToBeTranslatedLower[0]

  # Condition #2 + #3: Appending a Vowel / Appending 'en' to the end of a word
  vowel = ['a', 'e', 'e', 'i', 'o', 'u']
  import random
  randomVowel = random.choice(vowel)
  list = []
  list.append(WordToBeTranslated)
  if len(WordToBeTranslated) >= 4:
      elvish += randomVowel
  else:
      elvish = elvish + 'en'

  # Condition #4: change all k's to c's
  elvish = elvish.replace('k', 'c')

  # Condition #5: Replace 'e' at end of the word with ë
  if elvish[-1] == 'e':
      elvish = elvish[:-1] + 'ë'

  # Condition #6: Capitalization
  # Part of Condition #6 was achieved in Condition #1
  elvishFinal = elvish.capitalize()

  print("  \"" + WordToBeTranslated + "\"", "in elvish is:", elvishFinal)

Затем функция пользовательского ввода, которая продолжает спрашивать пользователя.y / n и только y / n:

def user_choice_function():
  input_user = input("\nWould you like to translate another word? (y/n): ")
  while input_user not in ['y', 'n']:
      input_user = input("  Input error. Please choose between yes (y) or no (n). Try again: ")

  return input_user

И, наконец, главное:

print("Elcómewó óten heten Igpén Lvísheá ránslátórtë! (Welcome to the Pig Elvish translator!)\n")
user_choice = 'y'
while user_choice == 'y':
  WordToBeTranslated = input("Please enter a word you would like to translate: ")
  elvish_translator(WordToBeTranslated)
  user_choice = user_choice_function()

Пример:

"""
Elcómewó óten heten Igpén Lvísheá ránslátórtë! (Welcome to the Pig Elvish translator!)

Please enter a word you would like to translate: Hello world!
  "Hello world!" in elvish is: Ello world!hu

Would you like to translate another word? (y/n): yes
  Input error. Please choose between yes (y) or no (n). Try again: y
Please enter a word you would like to translate: Hello StackOverflow!
  "Hello StackOverflow!" in elvish is: Ello staccoverflow!hu

Would you like to translate another word? (y/n): n
"""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...