\ usepackage {python}
\ begin {python}
from math import sin
a = sin (5)
c = sin (9)
b = max (a, c)
print b
\ end {python} \ newcommand {\ python} [1] {%
\ immediate \ write18 {python # 1> ./py.out 2> ./py.err}
\ immediate \ input "py.out"}
\ newcommand {\ ptn} [1] {%
\ python {./ path_to_your_scripts / script_name.py # 1}}
\ newcommand {\ peval} [1] {%
\ python {-c "print # 1" | ./path_to_your_scripts/sedder}}
\ newcommand {\ comments} [1] {} #! / bin / sh sed -e 's /\./,/' # Make it executable.
import sys
from re import sub
from __future__ import division
def toStr (num, digitsAfter = 2):
"" "Num to string with zero stripping" ""
frmt = '%.' + str (digitsAfter) + 'f'
num = (frmt% num)
num = num.strip ('0')
if num [0] == '.':
num = '0' + num
if num [-1] == '.':
num = num.strip ('.')
return num
def tenpower (num, maximum = 1e3, minimum = 1e-2, base = 1):
"" "converts num to (num1, num2) where num1 * 10 ** num2 = num
converts when not minimum <num <maximum.
converts until base <num1 <2 * base "" "
pwr = 0
while abs (num)> maximum or (abs (num)> 2 * base and pwr> 0):
pwr + = 1
num = num / 10
while abs (num) <minimum or (abs (num) <base and pwr <0):
pwr - = 1
num = num * 10
return num, pwr
def latexize (num, power = False, delim = ','):
if power:
return ('% s \\ cdot 10 ^ {% d}'% (num, power)). replace ('.', delim)
else:
return str (num) .replace ('.', delim)
if __name__ == "__main__":
#try:
argc = len (sys.argv)
var = 'Ooopsy-doopsy!'
digitsAfter = 2
typ = 10
if argc> 1:
var = sub ('[{} \.]', '', sys.argv [1])
comment = '\\ comments {% s}'% sys.argv [1]
var = globals () [var]
else:
raise ValueError
if argc> 2:
try:
digitsAfter = int (sys.argv [2])
except:
typ = sys.argv [2]
if argc> 3:
typ = sys.argv [2]
digitsAfter = int (sys.argv [3])
mini = 1/10 ** digitsAfter
if typ in ('int', 'i'):
print comment, int (var)
elif typ in ['float', 'f', 'nomath']:
print comment + latexize (toStr (var, digitsAfter))
else:
strings = tenpower (var, minimum = mini)
print comment + latexize (toStr (strings [0], digitsAfter), strings [1])
#except Exception:
# pass Source: https://habr.com/ru/post/59782/
All Articles