Python &引用;Can';t分配给函数调用";错误
我的函数应该以字符串参数作为输入,并返回输入字符串的rot-13编码Python &引用;Can';t分配给函数调用";错误,python,function,variable-assignment,Python,Function,Variable Assignment,我的函数应该以字符串参数作为输入,并返回输入字符串的rot-13编码 def str_rot_13(string): c = list(string) for num in c: if ord(num) >= ord('a') and ord('z'): if ord(num) >=('m'): ord(num) -=13 else: ord(num) +=1
def str_rot_13(string):
c = list(string)
for num in c:
if ord(num) >= ord('a') and ord('z'):
if ord(num) >=('m'):
ord(num) -=13
else:
ord(num) +=13
elif ord(num) >= ord('A') and ord('Z'):
if ord(num) >=('M'):
ord(num) -=13
else:
ord(num) +=13
z += chr(ord(num))
return z
它给了我一个“不能分配给函数调用”的错误。我不确定我做错了什么
编辑:终于开始工作了!谢谢
解决方案:
if ord(num) >= ord('a') and ord('z'):
if ord(num) >=('m'):
k+= chr(ord(num)-13)
else:
k+= chr(ord(num)+13)
elif ord(num) >= ord('A') and ord('Z'):
if ord(num) >=('M'):
k+= chr(ord(num)-13)
else:
k+= chr(ord(num)+13)
return k
问题在于这样的线路:
ord(num) -=13
ord
是一个内置函数。可以使用函数返回的值,但不能为函数赋值
你可以做的是:
num = chr(ord(num) - 13)
这可能无法解决您的问题,因为您还有其他错误,比如您试图添加变量z
,而不在某处声明它。您应该在for循环之前声明它:
z = ''
for num in c:
...
并将该行缩进
z += chr(ord(num))
所以它在for循环中。您还可以:
z += num
因为chr和ord是反向函数。你做错了的是,你正在分配一个函数调用!例如:
ord(num) -=13
您正在为函数调用赋值ord(num)
——但您不能这样做
你实际上想做的大概是:
num = chr(ord(num) - 13)
等等
当然,除非您在选择不显示的代码部分中定义了z
,否则在添加到z
时仍然会遇到问题。当然,很难帮助调试您选择对我们隐藏的代码