- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
#Это калькулятор
t=input("Введите колличество чисел (2 или 3): ")
if t == '3':
one=float(input("Введите первое число: "))
two=float(input("Введите второе число: "))
three=float(input("Введите третье число: "))
n=input("Введите первый знак: ")
if n != '+' and n != '-' and n != '*' and n != '/' :
print("Вы написали что-то неправильно")
else:
m=input("Введите второй знак: ")
if m != '+' and m != '-' and m != '*' and m != '/' :
print("Вы написали что-то неправильно")
else:
if n == '+':
if m == '+':
rez=one+two+three
print(rez)
elif m == '-':
rez=one+two-three
print(rez)
elif m == '*':
rez=one+two*three
print(rez)
elif m == '/':
rez=one+two/three
print(rez)
else:
print("Вы написали что-то неправильно")
elif n == '-':
if m == '+':
rez=one-two+three
print(rez)
elif m == '-':
rez=one-two-three
print(rez)
elif m == '*':
rez=one-two*three
print(rez)
elif m == '/':
rez=one-two/three
print(rez)
else:
print("Вы написали что-то неправильно")
elif n == '*':
if m == '+':
rez=one*two+three
print(rez)
elif m == '-':
rez=one*two-three
print(rez)
elif m == '*':
rez=one*two*three
print(rez)
elif m == '/':
rez=one*two/three
print(rez)
else:
print("Вы написали что-то неправильно")
elif n == '/':
if m == '+':
rez=one/two+three
print(rez)
elif m == '-':
rez=one/two-three
print(rez)
elif m == '*':
rez=one/two*three
print(rez)
elif m == '/':
rez=one/two/three
print(rez)
else:
print("Вы написали что-то неправильно")
else:
print("Вы написали что-то неправильно")
elif t == '2':
z=input("Введите знак: ")
if z != '+' and z != '-' and z != '*' and z != '/' :
print("Вы написали что-то неправильно")
else:
one=float(input("Введите первое число: "))
two=float(input("Введите второе число: "))
if z == '+':
rez=one+two
print(rez)
elif z == '-':
rez=one-two
print(rez)
elif z == '*':
rez=one*two
print(rez)
elif z == '/':
rez=one/two
print(rez)
else:
print("Вы написали что-то неправильно")
else :
print("Вы написали что-то неправильно")
Как можно сократить говнокод? Просто интересно... Спасибо)
ilyaclover000 08.11.2020 16:05 # −1
rotoeb 08.11.2020 16:33 # −2
bootcamp_dropout 08.11.2020 17:35 # −1
guest6 08.11.2020 17:48 # 0
bootcamp_dropout 08.11.2020 17:52 # 0
guest6 08.11.2020 17:56 # +1
bootcamp_dropout 08.11.2020 17:58 # 0
guest6 08.11.2020 18:03 # +1
bootcamp_dropout 08.11.2020 18:10 # +1
defecate-plusplus 08.11.2020 16:14 # 0
На питоне нет LR-парсеров, кстати?
gost 08.11.2020 18:04 # 0
Фу, говно переусложнённое. Именно поэтому я за «польскую запись».
guest6 08.11.2020 18:09 # 0
defecate-plusplus 08.11.2020 18:15 # 0
gost 08.11.2020 18:16 # 0
guest6 08.11.2020 18:20 # 0
кстати, это язык программирования
guest6 08.11.2020 18:52 # 0
https://wiki.python.org/moin/LanguageParsing
https://pypi.org/project/parsing/
https://github.com/erezsh/plyplus
https://github.com/lark-parser/lark
Скорее всего товарищ просто не проходил еще парсеры, и в принципе не понимает как такие задачи решать.
Ну это как ПХПшники HTML регулярками парсят
bootcamp_dropout 08.11.2020 16:23 # +1
guest6 08.11.2020 18:54 # +2
gost 08.11.2020 18:55 # 0
guest6 08.11.2020 18:58 # 0
bormand 08.11.2020 19:25 # +1
gost 08.11.2020 19:29 # +1
Наебать нас вздумал?!
bormand 08.11.2020 19:32 # +1
bormand 08.11.2020 18:51 # +1
Обратитесь к администратору.
gost 08.11.2020 21:54 # 0
bootcamp_dropout 08.11.2020 21:58 # +1
guest6 08.11.2020 21:58 # +1
gost 08.11.2020 22:01 # 0
bormand 08.11.2020 22:12 # 0
ilyaclover000 08.11.2020 22:14 # 0
gost 08.11.2020 22:16 # +1
bormand 08.11.2020 22:29 # +1
А в своём коде, если выражения доверенные, вай нот?
gost 08.11.2020 22:55 # 0
bootcamp_dropout 08.11.2020 23:04 # 0
у меня первые лабы были посчитать синус треугольника, перевести число из римской записи в арабскую
defecate-plusplus 08.11.2020 23:08 # 0
изучали if then else
а switch/case в их питон, видимо, пока ещё не завезли
может он должен был хотя бы дерево построить из введенного выражения и затем его корректно обойти
gost 08.11.2020 23:19 # 0
Ну хуй знает, если они на уровне if then else, то давать такую калькуляторную задачку — это ж прямо требовать, чтобы они её решили неправильно, а это, ИМХО, говно. Примерно как потребовать просуммировать десять введённых чисел без использования циклов.
> а switch/case в их питон, видимо, пока ещё не завезли
В наш тоже. Гвидо не велит :-(.
defecate-plusplus 08.11.2020 23:27 # 0
bootcamp_dropout 08.11.2020 23:41 # 0
gost 08.11.2020 23:58 # 0
Saehrimnir 09.11.2020 00:23 # 0
guest6 08.11.2020 22:23 # 0
gost 08.11.2020 23:01 # 0
Проверь.
bormand 08.11.2020 23:09 # +1
З.Ы. Точку то разреши, я флоаты юзать хочу.
bormand 08.11.2020 23:17 # +1
И вот язык снова тьюринг полон и может делать рм -рф )))
bormand 08.11.2020 23:29 # 0
exp, ln, sqrt и acosh все остальные нужные буквы дают.
bormand 08.11.2020 23:13 # 0
if any(c not in "+-..." for c in str):
gost 08.11.2020 23:20 # 0
Это не в духе ТС-поста. Мы на Говнокоде или где?!
Ладно, ладно, эту строчку с проверкой на число я сгенерировал. В Питоне.
guest6 08.11.2020 23:18 # 0
ilyaclover000 08.11.2020 22:14 # 0