Форум сайта python.su
0
Написать ф-цию toupper, которая принимает строку s (в которой записано слово на английском), и все маленькие буквы превращает в большие, и возвращает результат.
Пример:
“abaCab” -> “ABACAB”
я знаю короткое и быстрое решение)
def f(s): return s.upper() print(f("addSSdds"))
Офлайн
221
Давайте вм дам подсказку, а Вы попробуете сами решить задачу:
In [40]: chr(ord('a') - 32) Out[40]: 'A'
Офлайн
0
JOHN_16пока без функции сделал.
Давайте вм дам подсказку, а Вы попробуете сами решить задачу:
g=[] i=input('') for s in i: g.append(chr(ord(s) - 32)) print(g)
Отредактировано aleks0070 (Ноя. 26, 2016 01:41:10)
Офлайн
SPI={'a':'A', 'b':'B', 'c':'C', 'd':'D', 'e':'E', 'f':'F', 'g':'G', 'h':'H', 'i':'I', 'j':'J', 'k':'K', 'l':'L', 'm':'M', 'n':'N', 'o':'O', 'p':'P', 'q':'Q', 'r':'R', 's':'S', 't':'T', 'u':'U', 'v':'V', 'w':'W', 'x':'X', 'y':'Y', 'z':'Z'} def toupper(word): sl=[] for i in word: if i in SPI: for j,y in SPI.items(): if i == j: i = y sl.append(i) else: sl.append(i) return ''.join(sl) print (toupper('Hello word'))
Отредактировано wallet (Ноя. 26, 2016 04:06:21)
Офлайн
568
wallet
Наркоманский код. Зачем вам перебор словаря? Это ж словарь, по ключу можно получить значение без перебора.
SPI={'a':'A', 'b':'B', 'c':'C', 'd':'D', 'e':'E', 'f':'F', 'g':'G', 'h':'H', 'i':'I', 'j':'J', 'k':'K', 'l':'L', 'm':'M', 'n':'N', 'o':'O', 'p':'P', 'q':'Q', 'r':'R', 's':'S', 't':'T', 'u':'U', 'v':'V', 'w':'W', 'x':'X', 'y':'Y', 'z':'Z'} def toupper(word): return ''.join(SPI.get(i, i) for i in word) print (toupper('Hello word'))
Офлайн
221
aleks0070
-32 это просто смещение номера символа в таблице символов
Офлайн
0
def f(s): g=[] for i in s: g.append(chr(ord(i) -32)) return g print(f('sasd'))
Офлайн