python字符串内的替换之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)))

报错:

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

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

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

其中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)))

注意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
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值