Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.03 KB | None | 0 0
  1. # 1
  2. def calc_simple():
  3. s = input("Введите операцию: (+,-,*,/): ")
  4.  
  5. if s in ('+', '-', '*', '/'):
  6. x = float(input("Введите первое число: "))
  7. y = float(input("Введите второе число: "))
  8. if s == '+':
  9. print("%.2f" % (x + y))
  10. elif s == '-':
  11. print("%.2f" % (x - y))
  12. elif s == '*':
  13. print("%.2f" % (x * y))
  14. elif s == '/':
  15. if y != 0:
  16. print("%.2f" % (x / y))
  17. else:
  18. print("Деление на ноль!")
  19. else:
  20. print("Неверный знак операции!")
  21.  
  22.  
  23. # 2
  24. def calc_extended():
  25. operation = 0
  26. while operation > 3 or operation < 1:
  27. operation = int(input(
  28. "Какую операцию вы хотите сделать? Возвести в степень - 1; Получит остаток от деления - 2; Найти корень - 3: "))
  29. if operation == 1:
  30. num1 = int(input("Введите число которое возвести в степень: "))
  31. num2 = int(input("Введите в какую степень возвести: "))
  32. print("Результат возведения в степень {num2}, чилса {num1} равна {results}".format(num1=num1, num2=num2,
  33. results=num1 ** num2))
  34. if operation == 2:
  35. num1 = int(input("Введите число у которого надо найти остаток: "))
  36. num2 = int(input("Введите число на которое делить для получения остатка: "))
  37. if num2 == 0:
  38. print("Делить на 0 нельзя!")
  39. else:
  40. print(
  41. "Остаток от деления {num1} на {num2}, равен {result}".format(num1=num1, num2=num2, result=num1 % num2))
  42. if operation == 3:
  43. num1 = int(input("Введите число: "))
  44. print("Корнень {num1} из равен - {result}".format(num1=num1, result=num1 ** 0.5))
  45.  
  46.  
  47. # 3
  48. def trigon_deg():
  49. pass
  50. print('3')
  51.  
  52.  
  53. # 4
  54. def trigon_rad():
  55. pass
  56. print('4')
  57.  
  58.  
  59. # 5
  60. def calc_logic():
  61. act = int(input('Введите номер действия (1 – and, 2 – or, 3 - not): '))
  62. if act == 1 or act == 2:
  63. a = False if int(input('Введите первое значение: ')) == 0 else True
  64. b = False if int(input('Введите второе значение: ')) == 0 else True
  65. elif act == 3:
  66. a = False if int(input('Введите значение: ')) == 0 else True
  67.  
  68. if act == 1:
  69. print(a and b, ' (', int(a and b), ')', sep='')
  70. elif act == 2:
  71. print(a or b, ' (', int(a or b), ')', sep='')
  72. elif act == 3:
  73. print(not a, ' (', int(not a), ')', sep='')
  74.  
  75.  
  76. # 6
  77. def calc_10_2():
  78. print('Введите число:', end='')
  79. number = int(input())
  80. print("Число {number}, в двоичной: {bin}".format(number=number, bin=str(bin(number))[2:]))
  81.  
  82.  
  83. def number_simplifier(number):
  84. number = int(number)
  85. if 0 <= number < 10:
  86. return str(number)
  87. elif number == 10:
  88. return 'A'
  89. elif number == 11:
  90. return 'B'
  91. elif number == 12:
  92. return 'C'
  93. elif number == 13:
  94. return 'D'
  95. elif number == 14:
  96. return 'E'
  97. elif number == 15:
  98. return 'F'
  99. else:
  100. return ''
  101.  
  102.  
  103. # 7
  104. def calc_10_16():
  105. number = int(input("Введите число: "))
  106. number_reserv = number
  107. number_16 = ''
  108. if not number:
  109. print("0")
  110. exit()
  111. while number != 0:
  112. number_16 += number_simplifier(number % 16)
  113. number = int(number / 16)
  114. print("Число {number} в 16-ичной системе исчесления равно - {number_16}".format(number=number_reserv,
  115. number_16=number_16[::-1]))
  116.  
  117.  
  118. # 8
  119. def calc_10_8():
  120. number = int(input("Введите число: "))
  121. number_8 = ''
  122. if not number:
  123. print("0")
  124. exit()
  125. while number != 0:
  126. number_8 += str(number % 8)
  127. number = int(number / 8)
  128. print(number_8[::-1])
  129.  
  130.  
  131. # 9
  132. def menu_logic():
  133. print('1.Перевод 10СИ -> 2СИ;')
  134. print('2.Перевод 10СИ -> 16СИ;')
  135. print('3.Перевод 10СИ -> 8СИ;')
  136. n = int(input())
  137. if n == 1:
  138. calc_10_2()
  139. elif n == 2:
  140. calc_10_16()
  141. else:
  142. calc_10_8()
  143.  
  144.  
  145. # 10
  146. def brackets_op():
  147. print('Введите строку с формулой: ', end='')
  148. string = input()
  149.  
  150. arr = '' # Скобки без текста
  151. flag = True
  152.  
  153. for i in range(len(string)):
  154. if string[i] == '}' or string[i] == '{':
  155. arr = arr + string[i]
  156.  
  157. op_br = 0 # Число открытых скобок
  158. for i in range(len(arr)):
  159. if arr[i] == '{':
  160. op_br += 1
  161. elif arr[i] == '}':
  162. op_br -= 1
  163. if op_br < 0:
  164. flag = False
  165. break
  166. if op_br != 0:
  167. flag = False
  168. print('Да' if flag else 'Нет')
  169.  
  170.  
  171. # 11
  172. def menu_num_calc():
  173. # Меню
  174. print('1. Простые операции;')
  175. print('2. Расширенные операции;')
  176. print('3. Тригонометрические действия с градусами;')
  177. print('4. Тригонометрические действия с радианами;')
  178. print('5. Логические операции;')
  179. print('6. Перевод чистел в различные СС;')
  180. print('7. Проверка скобок;')
  181.  
  182. print('-===========================-')
  183. print('Введите число от 1 до 7:')
  184. print('-===========================-')
  185. inp = int(input())
  186.  
  187. # Проверка на условия
  188. if inp == 1:
  189. calc_simple()
  190. elif inp == 2:
  191. calc_extended()
  192. elif inp == 3:
  193. trigon_deg()
  194. elif inp == 4:
  195. trigon_rad()
  196. elif inp == 5:
  197. calc_logic()
  198. elif inp == 6:
  199. menu_logic()
  200. elif inp == 7:
  201. brackets_op()
  202. else:
  203. print('Неверный номер задания')
  204.  
  205.  
  206. # 12
  207. def str_simple():
  208. operation = input("Введите строку с операцией: ")
  209. if operation == '+':
  210. s1 = input("Введите первую строку: ")
  211. s2 = input("Введите вторую строку: ")
  212. print(s1 + s2)
  213. return
  214. elif operation == '*':
  215. try:
  216. s = input("Введите строку: ")
  217. n = int(input("Введите число: "))
  218. except ValueError:
  219. print("Неверный ввод!")
  220. str_simple()
  221. else:
  222. print("Неверный ввод!")
  223. str_simple()
  224. print(s * n)
  225.  
  226.  
  227. # 13
  228. def str_showcenter():
  229. s = input("Введите строку: ")
  230. print('\n'.join('{:^80}'.format(i) for i in s.split('\n')))
  231.  
  232.  
  233. # 14
  234. def str_words():
  235. s = input("Введите строку: ")
  236. count_of_unique_words = 0
  237. data = s.split()
  238. for i in range(len(data) - 1):
  239. flag = False
  240. for j in range(i + 1, len(data)):
  241. if data[i] == data[j]:
  242. flag = True
  243. if not flag:
  244. count_of_unique_words += 1
  245.  
  246. print("Кол-во слов: " + str(len(data)))
  247. print("Кол-во уникальных слов: " + str(count_of_unique_words))
  248.  
  249.  
  250. # 15
  251. def str_stat():
  252. s = input('Введите строку: ')
  253.  
  254. upper = 0
  255. lower = 0
  256. digit = 0
  257. white_space = 0
  258.  
  259. for i in range(len(s)):
  260. if s[i].isupper():
  261. upper = upper + 1
  262.  
  263. for i in range(len(s)):
  264. if s[i].islower():
  265. lower = lower + 1
  266.  
  267. for i in range(len(s)):
  268. if s[i].isdigit():
  269. digit = digit + 1
  270.  
  271. for i in s:
  272. if ord(i) == 32:
  273. white_space += 1
  274.  
  275. print("Длинна строки: " + str(len(s)))
  276. print("Кол-во цифр: " + str(digit))
  277. print("Кол-во символов в верхнем регистре: " + str(upper))
  278. print("Кол-во символов в нижнем регистре: " + str(lower))
  279. print("Кол-во пробельных символов: " + str(white_space))
  280.  
  281.  
  282. # 16
  283. def menu_strings():
  284. print("1. Простые операции со строками;")
  285. print("2. Вывод строки по центру экрана; ")
  286. print("3. Количество слов и количество уникальных слов;")
  287. print("4. Статистика по символам строки.")
  288. try:
  289. n = int(input())
  290. except Exception:
  291. print("Введена неверная команда!")
  292. menu_strings()
  293. if n == 1:
  294. str_simple()
  295. elif n == 2:
  296. str_showcenter()
  297. elif n == 3:
  298. str_words()
  299. elif n == 4:
  300. str_stat()
  301. else:
  302. print("Введена неверная команда!")
  303.  
  304.  
  305. # 17
  306. def long_add():
  307. a = [int(d) for d in input('Введите первое число: ')]
  308. b = [int(d) for d in input('Введите второе число: ')]
  309.  
  310. if len(a) > len(b):
  311. b = [0 for i in range(len(a) - len(b))] + b
  312. elif len(b) > len(a):
  313. a = [0 for i in range(len(b) - len(a))] + a
  314.  
  315. a = list(reversed(a))
  316. b = list(reversed(b))
  317.  
  318. result = [0]
  319. for i in range(len(a)):
  320. res = a[i] + b[i]
  321. result[i] += res % 10
  322. result.append(res // 10)
  323.  
  324. print(''.join([str(d) for d in reversed(result[:-1])]))
  325.  
  326.  
  327. # 18
  328. def long_sub():
  329. a = [int(d) for d in input('Введите первое число: ')]
  330. b = [int(d) for d in input('Введите второе число: ')]
  331. if len(a) > len(b):
  332. b = [0 for i in range(len(a) - len(b))] + b
  333. elif len(b) > len(a):
  334. a = [0 for i in range(len(b) - len(a))] + a
  335.  
  336. a = list(reversed(a))
  337. b = list(reversed(b))
  338. result = [0]
  339. for i in range(len(a)):
  340. res = a[i] - b[i]
  341. result[i] += res % 10
  342. result.append(res // 10)
  343.  
  344. ans = ''.join([str(d) for d in reversed(result[:-1])])
  345.  
  346. if ans[0] == '0':
  347. print(ans[1:])
  348. else:
  349. print(ans)
  350.  
  351.  
  352. # 20
  353. def menu_long():
  354. print('1. Сложение')
  355. print('2. Вычитание')
  356. print('3. Умножение')
  357.  
  358. action = int(input())
  359.  
  360. while action < 1 or action > 3:
  361. print('Неверное действие')
  362. action = int(input())
  363.  
  364. if action == 1:
  365. long_add()
  366. elif action == 2:
  367. long_sub()
  368. elif action == 3:
  369. print('long_mul_op')
  370.  
  371.  
  372. # 21
  373. def menu():
  374. print('1. Калькулятор чисел')
  375. print('2. Калькулятор строк')
  376. print('3. Длинная арифметика')
  377.  
  378. action = int(input())
  379.  
  380. while action < 1 or action > 3:
  381. print('Неверное действие')
  382. action = int(input())
  383.  
  384. if action == 1:
  385. menu_num_calc()
  386. elif action == 2:
  387. menu_strings()
  388. elif action == 3:
  389. menu_long()
  390.  
  391.  
  392. def main():
  393. menu()
  394.  
  395.  
  396. if __name__ == '__main__':
  397. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement