Advertisement
Guest User

Untitled

a guest
Apr 2nd, 2020
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. # Владимир написал свой открытый проект, именуя переменные в стиле «ВерблюжийРегистр».
  2. # И только после того, как написал о нём статью, он узнал, что в питоне для имён переменных принято
  3. # использовать подчёркивания для разделения слов (under_score). Нужно срочно всё исправить,
  4. # пока его не «закидали тапками».
  5. # Задача могла бы оказаться достаточно сложной, но, к счастью,
  6. # Владимир совсем не использовал строковых констант и классов.
  7. # Поэтому любая последовательность букв и цифр, внутри которой есть заглавные,
  8. # — это имя переменной, которое нужно поправить.
  9.  
  10. import re
  11.  
  12. code = ''' MyVar17 = OtherVar + YetAnother2Var
  13. TheAnswerToLifeTheUniverseAndEverything = 42'''
  14.  
  15. def to_snake_no_re(code:str) -> str:
  16. return ''.join(['_' + char.lower() if char.isupper() else char for char in code]).lstrip('_')
  17.  
  18. result1 = ''
  19.  
  20. for keyword in code.split(' '):
  21. result1 += to_snake_no_re(keyword) + ' '
  22.  
  23.  
  24. def to_snake_re(code:str) -> str:
  25. return re.sub("(.)([A-Z])", r'\1_\2', code).lower()
  26.  
  27. result2 = ''
  28.  
  29. for keyword in code.split(' '):
  30. result2 += to_snake_re(keyword) + ' '
  31.  
  32.  
  33. print(result1, '\n')
  34. print(result2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement