可能的原因是 f 的值在某个时刻被赋值为了一个整数。在调用 subs 方法之前,你需要确保 f 是一个 sympy 表达式。
给你个例子
import sympy as sp
x = sp.symbols('x')
f = x**2 + 2*x + 1 # f is a sympy expression
value = f.subs('x', 2) # replace 'x' with 2 in the expression
print(value) # prints 9
在你的情况下,你需要确定 f 是一个 sympy 表达式。如果 f 是一个整数或者其他的类型,你需要转换它为 sympy 表达式,或者检查代码以防止错误的赋值。
如果有帮助,请点击一下采纳该答案~谢谢
这代码你从谁那里抄来的就去问谁
要不然就放完整代码
否则鬼知道subs是个什么东西
假设有这样的一项需求,将下列一段摘自网页的HTML文本中的所有标签、空格等全部替换,仅留下文字:
<div class=“job-detail”>
<p>岗位职责:</p>
<p>1、负责公司业务群的SDL安全规划,并提出安全需求标准;</p>
<p>2、负责各类系统的安全评审,并与其他团队一起改进研发安全质量;
</p>
<p>3、推动安全测试自动化平台的建设,比如自动化安全测试平台</p>
<p>4、参与SDL的安全开发指南、安全编码规范等制定、评审和推动落地。</p>
<p>任职要求:</p>
<p>1、3年以上相关安全经验,评审经验(web和移动APP方向均可)(有互联网公司SDL规划工作经验者优先);</p>
<p>2、精通常见应用系统的代码漏洞测试和验证,并能指导开发人员进行修复;</p>
<p>3、熟悉常见业务逻辑漏洞的测试和验证,并能指导开发人员进行修复(熟悉大型web系统架构者优先);</p>
<p>4、熟悉安全代码测试流程和方法,并能熟练运用各种代码测试工具;</p>
<p>5、对业界安全动态保持较高的敏感度,能**时间获取到漏洞信息并对公司相关系统进行对应的响应处理;</p>
<p>6、熟练掌握一门开发语言(如Java、Python、C++等);</p>
<p>7、快速的学习能力、良好的沟通能力和团队协作能力。</p>
<p>此岗位为科大讯飞集团统一招聘岗位,人员通过简历筛选、笔试、初试、复试、终审等环节后录用</p>
</div>
为实现上述需求,可以使用正则表达式:re.sub(r"<[^>]+>| | |\n", “”, str),其中str为上述待处理字符串。
运行后可得:
‘岗位职责:1、负责公司业务群的SDL安全规划,并提出安全需求标准;2、负责各类系统的安全评审,并与其他团队一起改进研发安全质量;3、推动安全测试自动化平台的建设,比如自动化安全测试平台4、参与SDL的安全开发指南、安全编码规范等制定、评审和推动落地。任职要求:1、3年以上相关安全经验,评审经验(web和移动APP方向均可)(有互联网公司SDL规划工作经验者优先);2、精通常见应用系统的代码漏洞测试和验证,并能指导开发人员进行修复;3、熟悉常见业务逻辑漏洞的测试和验证,并能指导开发人员进行修复(熟悉大型web系统架构者优先);4、熟悉安全代码测试流程和方法,并能熟练运用各种代码测试工具;5、对业界安全动态保持较高的敏感度,能**时间获取到漏洞信息并对公司相关系统进行对应的响应处理;6、熟练掌握一门开发语言(如Java、Python、C++等);7、快速的学习能力、良好的沟通能力和团队协作能力。此岗位为科大讯飞集团统一招聘岗位,人员通过简历筛选、笔试、初试、复试、终审等环节后录用’
要想理解上述正则表达式<[^>]+>| | |\n的含义,需求先明确实现上述需求的思路,即上述原始字符串中,待替换为空的字符包括HTML开始标签<标签名>、结束标签</标签名>、空格、换行。
于是<[^>]+>(此处^表示取反之意)可用于匹配出所有的HTML标签, 可匹配出所有的空格,\n可匹配出所有的换行,而|用于以或的方式连接前面三个规则。
根据参考资料中的段落1和段落2信息,推断出可能出错的代码可以是类似以下形式的代码:
import re
def add(temp): f = 'test' num = int(f) + 1 return str(num)
ret = re.sub(r"\d+", add, "python = 997") print(ret)
推断出错的原因是在add函数中定义的变量f的类型为字符串,无法转化为int类型,因此在执行int(f)时出现错误。解决方案可以将f的类型改为可以转化为int类型的类型,例如整数或浮点数。
修改后的代码如下:
import re
def add(temp): f = 1 num = int(f) + 1 return str(num)
ret = re.sub(r"\d+", add, "python = 997") print(ret)
如果还存在其他错误,可能需要进一步排查代码中的问题。