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

Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 143:
 
==Волшебная функция eval==
В Python есть функция ''eval'', которая в качестве аргумента принимает строку и воспроизводит ее как кодвыражение Python. Для того, чтобы показать что это значит:
 
В Python есть функция ''eval'', которая в качестве аргумента принимает строку и воспроизводит ее как код Python. Для того, чтобы показать что это значит:
 
 
Строка 234 ⟶ 233 :
 
 
Теперь это уже выглядит как настоящее волшебство программирования — мы не просто по ходу действия вводим какие-то числа, а целые формулы, и можем использовать всю внутреннюю функциональность Python:
 
 
Строка 241 ⟶ 240 :
Give x: 3.14<br>
2*sin(x)+1 for x=3.14 yields 1.00319<br></code>
 
 
==Волшебная функция exec==
Представив функцию ''eval'', превращающую строковые объекты в код Python, нам представляется удобный случай познакомиться и с ее старшей сестрой, функцией ''exec'', которая позволяет выполнять (''exec''ute) любой код на Python, не только выражения:
 
 
<source lang="python">
formula = raw_input('Write a formula involving x: ')
code = """
def f(x):
return %s
""" % formula
exec(code)</source>