如何将字符串解析为变量/函数/浮点数/整数赋值/值?

CATboardBETA

我想编写一个求和函数,但无法弄清楚如何解析底部表达式和正确表达式。

def summation(count: float, bottom_var: str, espression: str):
    out = 0
    
    for char in bottom_var:
        pass # somehow parse
    for char in expression:
        pass # somehow parse

我希望您能够像正常sigma表示法一样使用输入,如bottom_varis 'n=13',not '13'

编辑:为澄清起见,我的意思是我希望某人能够在bottom_var下输入一个作业,然后该作业可在中使用expression,但无其他地方。

例:

summation(4, 'x=1', 'x+1')

(将返回14,因为2 + 3 + 4 + 5 = 14)

富美男

首先,解析bottom_var以获得符号和起始值:

var, value = bottom_var.split('=')
var = var.strip()
value = eval(value)

使用split我们很容易得到等号的两个部分。使用strip我们甚至可以允许任意数量的空格,例如x = 1

然后,我们要创建一个从起始值到的循环count

for i in range(value, count+1):
    ...

最后,我们想使用循环求和,expression每次用当前迭代值替换符号时。总而言之:

def summation(count: int, bottom_var: str, expression: str):
    var, value = bottom_var.split('=')
    var = var.strip()
    value = eval(value)
    res = 0
    for i in range(value, count+1):
        res += eval(expression.replace(var, str(i)))

    return res

例如:

>>> summation(4, 'x=1', 'x+1')
14

在此答案中提出代码,我觉得有必要请您阅读为什么使用'eval'是一种不好的做法?并请确保您的应用程序正常。请注意,根据使用代码的上下文,使用eval可能非常危险并导致不良结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将字符串解析为浮点数?

将字符串解析为浮点数

AngularJS:如何将JSON字符串解析为整数或浮点数以将其显示在表单编号字段中

将字符串转换为数字(根据输入的变量为浮点数或整数)

如何将字符串编码的浮点数组解组为浮点数组?

如何将字符串解析为以逗号作为小数点分隔符的浮点数

如何在函数中将字符串和分数存储为(整数或浮点数)

Vimscript:如何将变量/浮点数传递给字符串?

如何将字符串哈希为[0:1]中的浮点数?

如何将输入字符串打印为浮点数(1 到 1.0)python

熊猫如何将所有字符串值转换为浮点数

当可能的类型为浮点数或字符串时,如何将模板展开为字符串?

在熊猫中,如何将一系列浮点数或无浮点数转换为带整数的字符串

python:如何将整数显示为浮点数?

如何将整数解释为浮点数

如何识别浮点变量?获取 ValueError: 无法将字符串转换为浮点数:

解析浮点数的字符串

PHP - 将字符串浮点数转换为整数 - 错误值

Bash将字符串解析为浮点数数组

如何仅解析字符串中的浮点数?

从字符串解析为浮点数时如何修复 unity FormatException?

如何在 Rust 中将八进制字符串解析为浮点数?

如何仅将字符串数组的整数转换为numpy中的浮点数组?

如何将字符串的 ndarray 列表转换为浮点数

如何将字符串转换为浮点数?

如何将字符串数组转换为numpy中的浮点数组?

如何将字符串转换为浮点数

如何将逗号作为字符串的数字转换为Javascript中的浮点数

Ruby:如何将日期时间字符串转换为纪元时间的浮点数?