made a simple code with the conditions, but it turns out that a lot of input and output data, because of this the code in python is very long, poorly readable and difficult to edit
Please tell me, is it possible to write down the condition if/else in python as easy as possible (in order not to create conditions for each case x and y), or how can it be otherwise that the data is written in the condition to be list?
Or maybe something different can all this be done?
Yeah I think we can make some improvements here. Firstly though can you set out the logic you are trying to create? From a quick glance through, it seems to be if y=48 then l=85 and m=16 and as x increases, a increases. It then progresses with certain variables changes as the inputs do. Without digging through all 300 lines of your code and deciphering this for myself, can you set out the logic in a few lines on here?
Matt_Harwood, thank you very much for the answer
the logic is simple. Now let us assume the first condition: if x = 100 and y = 48 then a = 25 m = 16 d = 85
and so we sort through all possible pairs of x and y values, and their corresponding a, m, l.
I can put pairs of values of x and y and the corresponding a, m, l into a list of data. but I don’t know how to register it later in python? or through function or expression?
That is the logic behind one single operation, what I’m asking is what is the logic behind the entire operation? It can be deduced from the script, but at 300 lines that asking quite a lot of someone!
You could use a python dictionary as follows (here i have split it over multiple lines separated by commas:
aml_by_xy = {(100,48): (25,16,85),
(120,48): (36,16,85),
}
x = 100
y = 48
a, m, l = aml_by_xy[(x,y)]
print a
print m
print l
25
16
85
This is easier to write, read and edit and will execute much more quickly. I am using tuple unpacking to get the a, m and l values out of the tuple (25, 16, 85)
There’s a lot for you to learn, but hopefully you can make sense of the attached. It gets the full function done around 30 lines as opposed to 300. I’ve tried to keep the logic simple, so have flattened the trees into lists, and only used lists/tuples.
Matt_Harwood
Thank you very much rays of gratitude !!! I don’t know how to thank you !!!
Yes, you all correctly understood the logic !!!
Yes, I learn python in small steps !!!