Программирование и научные вычисления на языке Python/§5: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
Строка 379:
 
=== Option–value pairs===
Передача аргументов командной строке похожа на передачу аргументов функции — значения должны идти в строго определенном порядке, о котором приходится помнить. Было бы неплохо и для командной строки иметь что-то вроде keyword arguments для функций. Эта возможность представляется как пары <tt>-option value</tt>, где под <tt>option</tt> понимается имя аргумента.
 
Чтобы показать как это работает, какпо обычно,обыкновению возьмем школьный пример о нахождении координаты тела, движущегося из начальной координаты ''s<sub>0</sub>'' с начальной скоростью ''v<sub>0</sub>'' и постоянным ускорением ''a'': <math>s(t) = s_0 + v_0t + \frac{1}{2}at^2</math>. Эта формула принимает четыре параметра: ''s<sub>0</sub>'', ''v<sub>0</sub>'', ''a'' и ''t''. Мы можем написать программу <tt>location.py</tt>, которая принимает эти параметры и их значения из командной строки:
 
 
<code>location.py --t 3 --s0 1 --v0 1 --a 0.5</code>
 
 
Все эти параметры могут обладать заранее заданными значениями, так чтобы можно было изменять лишь нужные. Например, если задано, что ''s<sub>0</sub>'' = 0, ''v<sub>0</sub>'' = 0, ''a'' = 1 и ''t'' = 1 и мы хотим изменить только ''t'', то запуск программы выглядит так:
 
 
<code>location.py --t 3</code>
 
 
В Python для этих пар можно использовать стандартный модуль ''getopt''. Рецепт его конкретного использования таков:
 
 
<source lang="python">
# устанавливаем значения по умолчанию:
s0 = v0 = 0; a = t = 1
import getopt, sys
options, args = getopt.getopt(sys.argv[1:], '', [’t=', 's0=', 'v0=', 'a='])</source>
 
Чтобы показать как это работает, как обычно, возьмем школьный пример о нахождении координаты тела, движущегося из начальной координаты ''s<sub>0</sub>'' с начальной скоростью ''v<sub>0</sub>'' и постоянным ускорением ''a'': <math>s(t) = s_0 + v_0t + \frac{1}{2}at^2</math>.