Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 26, 2016 00:42:03

aleks0070
Зарегистрирован: 2016-10-23
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите с решением задачи

Написать ф-цию toupper, которая принимает строку s (в которой записано слово на английском), и все маленькие буквы превращает в большие, и возвращает результат.
Пример:
“abaCab” -> “ABACAB”
я знаю короткое и быстрое решение)

 def f(s):
    return s.upper()
print(f("addSSdds"))
но загвоздка в том что метод upper использовать нельзя
думаю можно сделать как то через chr(65,91) но не могу понять как можно это использовать
заранее спасибо

Офлайн

#2 Ноя. 26, 2016 00:59:16

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

помогите с решением задачи

Давайте вм дам подсказку, а Вы попробуете сами решить задачу:

 In [40]: chr(ord('a') - 32)
Out[40]: 'A'



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Ноя. 26, 2016 01:17:10

aleks0070
Зарегистрирован: 2016-10-23
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите с решением задачи

JOHN_16
Давайте вм дам подсказку, а Вы попробуете сами решить задачу:
пока без функции сделал.
 g=[]    
i=input('')
for s in i:
    g.append(chr(ord(s) - 32))
print(g)
извините за глупый вопрос а что означает -32?

Отредактировано aleks0070 (Ноя. 26, 2016 01:41:10)

Офлайн

#4 Ноя. 26, 2016 02:08:51

wallet
Зарегистрирован: 2016-02-21
Сообщения: 50
Репутация: +  2  -
Профиль  

помогите с решением задачи

 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)

Офлайн

#5 Ноя. 26, 2016 08:07:26

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

помогите с решением задачи

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'))



Офлайн

#6 Ноя. 26, 2016 10:12:28

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

помогите с решением задачи

aleks0070
-32 это просто смещение номера символа в таблице символов



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#7 Ноя. 27, 2016 14:25:03

aleks0070
Зарегистрирован: 2016-10-23
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите с решением задачи

 def f(s):
    g=[]   
    for i in s:
        g.append(chr(ord(i) -32))
    return g
print(f('sasd'))

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version