#python
#python
Вопрос:
У меня есть переводчик Pig Latin, который работает, но теперь я должен придумать способ использовать строчные буквы в середине каждого слова и переместить знаки препинания в середине каждого слова в конец.
Я экспериментировал с
if letter_index.isupper():
new_word = letter_index.lower()
но это не работает. И я импортировал string
и создал:
punc = string.punctuation
Вот что у меня есть:
import string
def part2():
fin = open('Sonnet.txt')
vowels = 'AEIOUaeiou'
#punc = string.punctuation
for line in fin:
poem = line.split()
print(poem)
for word in poem:
for letter_index in range(len(word)):
if word[letter_index] in vowels:
if letter_index == 0:
if letter_index.isupper():
new_word = letter_index.lower()
print(new_word 'way')
else:
print(word[letter_index:] word[0:letter_index] 'ay')
break
part2()
Любые прописные слова с заглавными буквами в середине должны быть строчными, но первая буква теперь должна быть заглавной. Затем любые знаки препинания в середине слова следует переместить в конец слова.
Комментарии:
1. Каков наилучший способ завершения кода?
2. Посмотрите на
str.title()
иstr.capitalize()
3. Есть идеи о том, как применить эти методы?
4. Да, вы просто вызываете их в строке, к которой хотите их применить:
‘aBcD’.capitalize() == ‘Abcd’
5. Чтобы переместить знаки препинания, я бы, скорее всего, использовал регулярные выражения… поиск не букв
Ответ №1:
Попробуйте
sentence = 'pyThon jAva cpP'
words_list = sentence.split(' ')
prpoer_word_list = [w.title() for w in words_list]
print(' '.join(prpoer_word_list))
Вывод
Python Java Cpp
Комментарии:
1. Я не думаю, что вам даже нужно разделять строку на
str.title()
, это приведет к тому, что каждое слово в строке будет написано с заглавной буквы.