当前位置:   article > 正文

python字符串内的替换之SyntaxError: cannot assign to literal

syntaxerror: cannot assign to literal

问题描述:
当想替换字符串内的部分习惯表述时报错,源码如下:

num1 = int(input("请输入起始序数n1:"))
num2 = int(input("请输入结束序数n2:"))
fuc = input("请输入以n为变量的通项公式(eg:2*n+1):")
list_fuc = []

if "^" in fuc:
    "^" = "**"   #问题处

for n in range(num1,num2+1):
     list_fuc.append(eval(fuc))
print("该数列的和为:"+str(sum(list_fuc)))

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

报错:

  File "C:\Users\28654\Desktop\sub可擦除脚本.py", line 7
    "^" = "**"
    ^
SyntaxError: cannot assign to literal
[Finished in 0.2s]
  • 1
  • 2
  • 3
  • 4
  • 5

赋值语句不能直接替换字符串中的旧字符串,而应当使用replace()函数

str.replace(old,new[,max])
  • 1

其中max是最高替换次数,可不填写则为全部替换

改写后:

num1 = int(input("请输入起始序数n1:"))
num2 = int(input("请输入结束序数n2:"))
get_fuc = input("请输入以n为变量的通项公式(eg:2*n+1):")
list_fuc = []

if "^" in get_fuc:
    fuc = get_fuc.replace("^","**")  

for n in range(num1,num2+1):
     list_fuc.append(eval(fuc))
print("该数列的和为:"+str(sum(list_fuc)))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

注意replace()函数返回新字符串但不改变原字符串,故需要将结果赋给新变量名fuc
eg:计算通项(n^3+n)/(n+1)在(1,10)的和:

请输入起始序数n1:1
请输入结束序数n2:10
请输入以n为变量的通项公式(eg:2*n+1)(n^3+n)/(n+1)
该数列的和为:345.9602453102453
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/685993
推荐阅读
相关标签
  

闽ICP备14008679号