Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
2 / 2 / 0
Регистрация: 26.11.2017
Сообщений: 30
1

Древний Английский

11.01.2018, 13:52. Просмотров 1194. Ответов 1
Метки нет (Все метки)


Онуфрий изучает древний английский язык. Поскольку он делает это в рамках домаш-
него задания на завтра, он не успевает детально изучить его грамматику, поэтому он решил
для простоты применить следующие правила для перевода современных английских слов
в свой вариант древнего английского.
• Все буквы «s», после которых не идет «h» и которые не являются первыми в слове,
заменяются на комбинацию «th».
• Если первая буква в слове «e», то она заменяется на «ae».
• Комбинация «oo» заменяется на «ou», причем если в слове идет подряд более двух
букв «o», то из них заменяются только первые две.
Помогите Онуфрию перевести несколько слов на свою версию древнего английского
языка.Формат входных данных
Первая строка ввода содержит n — количество слов, которые требуется перевести
(1 ≤ n ≤ 100). Далее следует n строк, каждая из которых состоит только из букв ла-
тинского алфавита. Все буквы каждого слова строчные, кроме, возможно первой, которая
может быть заглавной. Длина каждого слова не превышает 30.
Формат выходных данных
Выведите n строк — результат перевода. Если первая буква исходного слова была за-
главной, то такой же должна быть и первая буква переведенного слова. Иначе все буквы
должны остаться строчными.
Пример
стандартный ввод стандартный вывод
3 soun
soon Aenglish
English thith
this
СУЩЕСТВУЮТ ЛИ БОЛЕЕ КРАТКИЕ ПРОГРАММЫ ДЛЯ РЕШЕНИЯ НА PYTHON?

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
n=int(input("Введите количество слов которое надо перевести: "))
 
for j in range(n):
    a=''
    
    l=[]
    s=input("Введите слово: ")
    for i in range(len(s)):
        l.append(s[i])
    if l[0]=='e':
        l[0]='ae'
    if l[0]=='E':
        l[0]='Ae'
    if l[0]!='s':
        for k in range(len(l)):
         if l[k-1]=='s' and l[k]!='h':
             l[k-1]='th'
    for m in range(len(s)):
        if l[m]=='o' and l[m+1]=='o':
            l[m+1]='u'
            break
    for p in range(len(l)):
        a+=l[p]
    print(a)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.01.2018, 13:52
Ответы с готовыми решениями:

Создание обратного словаря (из англо-латыньского латыно-английский)
помогите,умоляю , на питоне пытался разобраться но никак не получается Однажды, разбирая старые...

Русско-английский словарь с использованием Tkinter!
Помогите доделать русско-английский словарь на Python с использованием Tkinter. Не занимаюсь...

Людям которые знают\учат английский. Я хочу выучить английский нуля но
Привет! Кто знает нормальные каналы Youtube по изучению английского с нуля? Вообще поделитесь...

Английский для программиста (технический английский)
Английский - это латынь современного человека задействованного в компьютерных науках. Без его...

1
277 / 226 / 93
Регистрация: 27.06.2016
Сообщений: 639
11.01.2018, 14:56 2
Exiti,
1. Зачем нам читать все эти истории про Онуфриев, не имеющие отношения к задаче?
В три-четыре раза можно текст сократить, можно даже убрать упоминания английского.
2. Отрицательный индекс списка l (Например l[-1]) - это доступ к элементам с конца. То есть индекс i эквивалентен len(l) - i.
Python
1
2
3
for k in range(len(l)):
if l[k-1]=='s' and l[k]!='h':
l[k-1]='th'
range(n) возвращает последовательность 0...n-1. Думаю, этого вам хватит чтобы разобраться, где вы налажали.
3. Насчёт короче - да, но это не значит, что решение будет более понятным. Можете использовать метод replace у строк. Или изучить регулярные выражения.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.01.2018, 14:56

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Древний компьютер
Схема работы древнего компьютера Реконструкция работы древнего компьютера Древний компьютер в...

Древний дистрибутив
Здравствуйте. Не подскажете где можно найти очень старые дистрибутивы? Не важно какой важно что...

не грузится древний винт...
Народ ,такая трабла- пытаюсь поставить на древний винт (generic generic 6гб)винду xp зверя...Первая...

древний UPS + автоаккумулятор
недавно нарыл (слямзил) древний как говно мамонта UPS APX с потрохами (плата и трансформатор) и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.