I am learning from code, and I am get confused by one of its lines which is:
things = [float(arg) for arg in sys.argv[1:]]
Omega_a, Omega_b, Delta_a, Delta_b, \
init_pop_a, init_pop_b, tstep, tfinal = things
I have searched online and tried to understand what sys.arg
means, and here is my understanding:
So sys.argv[0]
is the file name, and sys.argv[1:]
is the rest of the parameters which should given by users. I am not sure am I understood it right, and if it is, then I don't understand why cant it be like:
Omega_a = input()
Omega_b = input()
etc...
What's the difference between these two ways of giving parameters?
Also, if I run the code (press F5), the Python shell give me an error like:
Traceback (most recent call last):
File "C:\Users\testcode.py", line 55, in <module>
init_pop_a, init_pop_b, tstep, tfinal = things
ValueError: need more than 0 values to unpack
I wasn't even given a chance to give parameters (sys.argv[1:]
) before it gave me an error. So I searched online. It looks like I need to run this code in cmd which confused me more, why should it and how should I put into cmd in order to run it?