将数学表达式转换为python表达式?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将数学表达式转换为python表达式?相关的知识,希望对你有一定的参考价值。

如果使用QTConsole的话,可以自定义一个_repr_latex_方法改变输出。

class Latex_print():

self.t=text

def _repr_latex_(self):

text=Latex_print('\\sum_i=0^ni^2')

text #或者异端地直接当函数用:Latex_print('\\sum_i=0^ni^2')

Python

是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。

参考技术A from math import sin, sqrt, ln

# 第一个
(a*b*c*d)/(e*f*g*h)
# 第二个
sin(45)+(e**10+ln(10))/sqrt(x)
# 第三个
(((3*x+y)-z)**1/2)/(x*y)**4

python 将CIDR表示法转换为正则表达式

#!/usr/bin/python
''' Not my script, found on the Internet, and rediscovered on my hard drive
'''
import sys

def cidr_to_regex(cidr):
    ip, prefix = cidr.split('/')

    base = 0
    for val in map(int, ip.split('.')):
        base = (base << 8) | val

    shift = 32 - int(prefix)
    start = base >> shift << shift
    end = start | (1 << shift) - 1

    def regex(lower, upper):
        if lower == upper:
            return str(lower)

        from math import log10
        exp = int(log10(upper - lower))
        delta = 10 ** exp

        if lower == 0 and upper == 255:
            return "\d+"

        if delta == 1:
            val = ""
            for a, b in zip(str(lower), str(upper)):
                if a == b:
                    val += str(a)
                elif (a, b) == ("0", "9"):
                    val += '\d'
                elif int(b) - int(a) == 1:
                    val += '[%s%s]' % (a, b)
                else:
                    val += '[%s-%s]' % (a, b)
            return val

        def gen_classes():
            floor_ = lambda x: int(round(x / delta, 0) * delta)

            xs = range(floor_(upper) - delta, floor_(lower), -delta)
            for x in map(str, xs):
                yield '%s%s' % (x[:-exp], r'\d' * exp)

            yield regex(lower, floor_(lower) + (delta - 1))
            yield regex(floor_(upper), upper)

        return '|'.join(gen_classes())

    def get_parts():
        for x in range(24, -1, -8):
            yield regex(start >> x & 255, end >> x & 255)

    return '^%s$' % r'\.'.join(get_parts())

for line in sys.stdin.readlines():
	print cidr_to_regex( line )
	print

以上是关于将数学表达式转换为python表达式?的主要内容,如果未能解决你的问题,请参考以下文章

使用向量将给定表达式转换为波兰符号时的运行时错误

将中缀表达式转换为后缀表达式

python 将CIDR表示法转换为正则表达式

使用 django 将 Python 正则表达式转换为路径时遇到问题

使用正则表达式将python中的字符串中的布尔真转换为真[重复]

Python基本数据类型之数字int