Уведомления

Группа в Telegram: @pythonsu

#1 Июль 9, 2017 23:43:59

JediSkywalker
Зарегистрирован: 2017-07-09
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Заменитель букв. Не работает метод replace

Набросал следующий код:

try:
filename = input(“Enter the path to the file: ”)
file = open(filename, “r”)
cont = file.read()

ru = “АаВЕеКМНОоРрСсТуХх”
en = “12BEeKMHOoPpCcTyXx”
total = 0

for c in cont:
if c in ru:
total += 1
ind = ru.index©
nc = en
print(nc)
cont.replace(c, nc)

part = str(round(total/len(cont), 2) * 100) + ‘%’
print(total, len(cont), part)
print(cont)
file.close()

except FileNotFoundError:
print(“The file is not found”)
except ZeroDivisionError:
print(“The file is empty”)
except:
print(“The erroe occured”)


Обнаружилось, что вроде всё работает, кроме метода replace. Что вместо него поставить или как его заставить работать?

Офлайн

#2 Июль 10, 2017 00:05:00

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2679
Репутация: +  182  -
Профиль   Отправить e-mail  

Заменитель букв. Не работает метод replace

> Что вместо него поставить или как его заставить работать?

Да всё очень просто:

 >>> alfavit_ru = "АаВЕеКМНОоРрСсТуХх"
>>> alfavit_en = "12BEeKMHOoPpCcTyXx"
>>> trans = dict(zip(map(ord, alfavit_en), alfavit_ru))
>>> "12".translate(trans)
'Аа'



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано Rodegast (Июль 10, 2017 00:06:41)

Офлайн

#3 Июль 10, 2017 00:52:05

JediSkywalker
Зарегистрирован: 2017-07-09
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Заменитель букв. Не работает метод replace

Rodegast
translate(trans)
Спасибо. Насчёт просто: к сожалению, кроме функции map я тут больше никаких других не узнал. Правда, я питон только с сололён учил, надеюсь, вышковский курс будет лучше.

Офлайн

#4 Июль 10, 2017 03:16:03

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Заменитель букв. Не работает метод replace

  
>>> ru = 'абвг'
>>> en = 'abvg'
>>> 
>>> 'абвгд'.translate(str.maketrans(ru, en))
'abvgд'
>>> 
>>>



Отредактировано py.user.next (Июль 10, 2017 03:20:34)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version