O que significa 'sys.argv'?

Estou aprendendo com o código e fico confuso com uma de suas linhas, que é:

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

Procurei on-line e tentei entender o quesys.arg significa, e aqui está o meu entendimento:

Entãosys.argv[0] é o nome do arquivo esys.argv[1:] é o restante dos parâmetros que devem ser dados pelos usuários. Não sei se entendi direito e, se estiver, não entendo por que não pode ser assim:

Omega_a = input() 
Omega_b = input()
etc...

Qual é a diferença entre essas duas maneiras de fornecer parâmetros?

Além disso, se eu executar o código (pressione F5), o shell Python me deu um erro como:

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

Nem sequer tive a chance de fornecer parâmetros sys.argv[1:]) antes de me dar um erro. Então eu procurei online. Parece que eu preciso executar esse código no cmd, o que me confundiu mais, por que deveria e como devo colocar o cmd para executá-lo?

questionAnswers(8)

yourAnswerToTheQuestion