Форум сайта python.su
0
На вход подаётся строка, состоящая из слов, разделённых одним пробелом. Слова состоят из маленьких латинских букв. Напечатайте исходную строку, сделав так, чтобы каждое слово начиналось с большой буквы. При этом используйте вашу функцию capitalize().
s=str(input()) def capitalize(s): kod1=ord(s[0]) kod2=kod1-32 s=s.replace(chr(kod1),chr(kod2),1) i=0 index=0 while i<=len(s)-1: index=s.find(" ",i) if index==-1: return s else: kod1=ord(s[index+1]) kod2=kod1-32 [u]s=s[:i]+ s[i:].replace(chr(kod1),chr(kod2),1)[/u] i=index+1 return s print(capitalize(s))
Отредактировано AnnaKV (Янв. 24, 2016 14:02:01)
Офлайн
6
Оберните код в теги code
Офлайн
76
Есть же метод upper(), зачем изощряться с переводом в ASCII
def capitalize(word): new_word = word[0].upper() + word[1:] return new_word s = input("Enter word to space").split(' ') print(' '.join(map(capitalize, s)))
Офлайн
0
Romissevdтакое задание
Есть же метод upper(), зачем изощряться с переводом в ASCII
Офлайн
6
AnnaKVТак пишите целиком задание, что ж нам гадать чтоли
Офлайн
20
Для AnnaKV
Если условие именно такое, что слова состоят только из маленьких латинских букв, тогда все решается очень просто. Можно даже не создавать файл .py с программой, а всю работу - определение вашей собственной функции capitalize() и проверку ее работы - сделать прямо в командной строке интерпретатора Python:
>>> def capitalize(s): ... s1 = [] ... s = s.split() ... for i in range(len(s)): ... s[i] = chr(ord(s[i][0]) - 32) + s[i][1:] ... s1.append(s[i]) ... s1 = " ".join(s1) ... return s1 ... >>> s = "hello, wonderful world!" >>> print(capitalize(s)) Hello, Wonderful World! >>>
Офлайн
0
old_montyСпасибо! Да, задание именно такое.
Для AnnaKVЕсли условие именно такое, что слова состоят только из маленьких латинских букв, тогда все решается очень просто. Можно даже не создавать файл .py с программой, а всю работу - определение вашей собственной функции capitalize() и проверку ее работы - сделать прямо в командной строке интерпретатора Python:
Офлайн
0
FirikТак я и написала.
На вход подаётся строка, состоящая из слов, разделённых одним пробелом. Слова состоят из маленьких латинских букв. Напечатайте исходную строку, сделав так, чтобы каждое слово начиналось с большой буквы. При этом используйте вашу функцию capitalize().
Офлайн
20
AnnaKVПожалуйста. А как насчет моего решения? Вы о нем почему-то ничего не сказали…
Спасибо! Да, задание именно такое.

>>> s = 'здравствуй, удивительный мир' >>> capitalize(s) 'Здравствуй, Удивительный Мир' >>>
Отредактировано old_monty (Янв. 24, 2016 20:00:00)
Офлайн
0
old_montyЯ его скопировала и пошла проверять. Ваша программа помогла мне открыть эталонное решение преподавателя.
Я так понимаю, в Вашем решении используется двумерный массив, а мы его еще не учили. Эту задачу наверно требовалось решать более простыми способами. Отредактировано AnnaKV (Янв. 25, 2016 09:40:58)
Офлайн