func_1.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. import math
  2. '''
  3. Оформление кода
  4. https://pythonchik.ru/osnovy/imenovanie-v-python
  5. Функция - именованный блок кода который выполняет определенную
  6. задачу или возвращает значение.
  7. Функция - набор операторов, которые возвращают некоторое значение
  8. вызывающему объекту. В функцию также может быть передано ноль или
  9. более аргументов, которые могут использоваться при выполнении тела функции.
  10. def f():
  11. print("QWERTY")
  12. def f():
  13. print("ABC")
  14. f()
  15. f()
  16. Выведет:
  17. ABC
  18. ABC
  19. Функция перезатрет первую def f()
  20. Любая функция в python возвращает значение. Значение возвращается при
  21. помощи оператора return. Если функция не содержит оператор return,
  22. то по умолчанию такая функция вернет значение None.
  23. Функция должна выполнять только одну операцию. Она должна выполнять ее
  24. хорошо. И ничего другого она делать не должна. Если функция выполняет
  25. только те действия, которые находятся на одном уровне под объявленным
  26. именем функции, то эта функция выполняет одну операцию.
  27. Будьте последовательны в выражениях возврата: либо все операторы return
  28. в функции должны возвращать выражение, либо ни один из них не должен.
  29. Если какой-либо оператор return возвращает выражение, то оставшиеся
  30. операторы return тоже должны явно возвращать значение, не смотря на то,
  31. что python по умолчанию возвращает None.
  32. '''
  33. def get_reverse(data: str):
  34. return data[-1::-1]
  35. def generate_n_chars(n, s):
  36. return s*n
  37. def print_histogram(data):
  38. for i in data:
  39. print('*'*i)
  40. def count_words(data):
  41. ret = 0
  42. for i in data.strip().split(' '):
  43. if i != '':
  44. ret += 1
  45. return ret
  46. # Является ли год високосным
  47. def is_leap(year):
  48. return (year%4 == 0 and year%100 != 0) or year%400 == 0
  49. # Проверка строки на полиндром
  50. def is_palindrome(value):
  51. formated_string = ''
  52. revers_string = ''
  53. for char in value.lower():
  54. if char != ' ':
  55. formated_string += char
  56. revers_string = formated_string[::-1]
  57. return revers_string == formated_string
  58. # Возвращает число високосных лет в заданном диапазоне
  59. def count_leap_years(y1, y2):
  60. number = 0
  61. for year in range(y1, y2):
  62. if is_leap(year):
  63. number += 1
  64. return number
  65. # Возвращает список високосных годов в заданном диапазоне
  66. def get_leap_years(y1, y2):
  67. leap_years = []
  68. for year in range(y1, y2):
  69. if is_leap(year):
  70. leap_years.append(year)
  71. return leap_years
  72. # Создание палиндрома
  73. def create_palindrome(value):
  74. if is_palindrome(value):
  75. return value.lower()
  76. ret = ''
  77. ret = value + '_i_' + value[::-1]
  78. return ret.lower()
  79. # Сравнение строк
  80. def is_strings_equal(st1, st2):
  81. return sorted(st1) == sorted(st2)
  82. #
  83. def is_dunder(st):
  84. return st.startswith('__') and st.endswith('__') and \
  85. len(st) >= 6 and st[2:-2].isalpha()
  86. def main():
  87. # print_histogram([1, 2, 3])
  88. # print(test_1('hello'))
  89. # print(count_words(' hello bro '))
  90. # print(is_palindrome("Never Odd or Even"))
  91. # print(is_palindrome("qwerty"))
  92. # print(count_leap_years(2021, 2021))
  93. # print(get_leap_years(1990, 2021))
  94. # print(is_strings_equal('afdsa', 'aasdfa'))
  95. if __name__ == '__main__':
  96. main()