\ 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