Форум сайта python.su
0
Решил оптимизировать свой говнокод. Было:
first = raw_input() second = raw_input() if first== "a" and second =="1": z=1 x=1 Y = x+z if first== "a" and second =="2": z=1 x=2 Y = x+z if first== "a" and second =="3": z=1 x=3 Y = x+z if first== "a" and second =="4": z=1 x=4 Y = x+z if first== "b" and second =="1": z=2 x=1 Y = x-z if first== "b" and second =="2": z=2 x=2 Y = x-z if first== "b" and second =="3": z=2 x=3 Y = x-z if first== "b" and second =="4": z=2 x=4 Y = x-z if first== "c" and second =="1": z=3 x=1 Y = z-x if first== "c" and second =="2": z=3 x=2 Y = z-x if first== "c" and second =="3": z=3 x=3 Y = z-x if first== "c" and second =="4": z=3 x=4 Y = z-x W = Y*5 print (W)
first = raw_input() second = raw_input() if first== "a": if second =="1": z=1 x=1 if second =="2": z=1 x=2 if second =="3": z=1 x=3 if second =="4": z=1 x=4 Y = x+z if first== "b": if second =="1": z=2 x=1 if second =="2": z=2 x=2 if second =="3": z=2 x=3 if second =="4": z=2 x=4 Y = x-z if first== "c": if second =="1": z=3 x=1 if second =="2": z=3 x=2 if second =="3": z=3 x=3 if second =="4": z=3 x=4 Y = z-x W = Y*5 print (W)
NameError: global name 'Y' is not defined
Офлайн
221
Ну как видите ваша “оптимизация” так себе. Насколкьо я вижу из кода задача состоит в точ тчо на основе входных данных произвести несколько мат.операций. Первый параметр это буква латиницы которая трансформируется последовательный номер ее в алфавите. Второй параметр это число.
Демо код для питона 3
import string first = input() second = input() z = string.ascii_lowercase.index(first.lower()) + 1 x = int(second) Y = z - x W = Y*5 print(W)
Офлайн
0
Код удалил.
Отредактировано zefir (Июль 5, 2018 17:34:29)
Офлайн
294
zefir
#ЗДЕСЬ и начинается херня
... if c == "ISO-KF" : # Ладно условие... ..... global P # Глобальная переменная внутри класса уже хреновая идея, но ладно, иногда(ОЧЕНЬ РЕДКО!!!) это оправдано и действительно нужно, но у вас они на каждом шагу, это явный перебор . И сама переменная нигде кроме как внутри метода не используется. ..... shapeobj.Shape = P # А что если c != "ISO-KF" , тогда переменная P не будет создана вот оно вам и говорит что нет такой глобальной переменной. ...
zefirэто не оптимизация, это тот же говнокод но по другому записан.
оптимизировать свой говнокод. Было:
zefirid имя встроеной функции, использовать ее для переменной плохая идея.
id = 108
######... def flange(self,selectedText): global k k = selectedText print (k) #####...
[code python][/code]
Отредактировано PEHDOM (Июль 5, 2018 17:08:51)
Офлайн
0
Эм…
PEHDOM, я хотел уменьшить число строк, поэтому назвал “оптимизация”.
PEHDOMТестирую именно с ISO-KF
# А что если c != “ISO-KF” , тогда переменная P не будет создана вот оно вам и говорит что нет такой глобальной переменной.
Офлайн
0
PEHDOM!!! Дружище, спасибо, я идиот. ISOKF нужно было.
Офлайн
294
zefirобічно в таких случах использут списки, словари, классы в конце концов вместо туевой хучи if-ов…
, я хотел уменьшить число строк, поэтому назвал “оптимизация”
[code python][/code]
Офлайн
0
PEHDOMЯ не программист… Я даже не учусь, так приходится работать.
обічно в таких случах использут списки, словари, классы в конце концов вместо туевой хучи if-ов…
Офлайн