首先,谢谢你看这个问题。我到处找遍了,想找到正确的语法,但我没主意了。在
用户输入一个字符串,然后保存:
strang = input( 'Enter message: ' )
strlen = len( strang )
strang1 = list( strang )
subs = input( 'Enter number between 1-26: ')
我创建了一个字典来定义字母表中的所有字母,这样我就可以将用户输入的字符串转换成数字。在
^{pr2}$我在strang2的末尾附加了一个疯狂的值,这样我就可以选择没有该值的整个列表:strang2[:-1]
strang2 = list(dic.get( n, n ) for n in strang1)
strang2.append( 999 )
我想将用户定义为“subs”的值添加到列表“strang2”的元素中,将它们转换回字母,然后打印新的字符串。 问题是在strang2的元素中添加sub,这是一种需要解决的数据类型差异。以下代码无法正常工作:
for iter in strang2:
sum = float( iter + subs )
print( sum )
我已经在google上搜索了一个星期,结果失败了,所以这只是我到目前为止做的最后一件事。再次感谢。在
编辑:有两个等号,删除了一个。代码返回此错误:
Traceback (most recent call last):
File "/home/user/User/Scripts!/crypto.py", line 38, in <module>
sum = float( iter + subs )
TypeError: unsupported operand type(s) for +: 'int' and 'str'
您正在使用
sum == float( iter + subs )
。使用double=
可以检查值。因此,如果使用sum = float( iter + subs )
,它应该可以工作。在必须将两个变量转换为浮点:
input()
函数返回str()
类型。您试图将int和string一起添加,但不能隐式地添加,因为Python是一种强类型语言。在您还使用
sum == float(iter + subs)
,它将尝试检查相等性,而不是将float(iter + subs)
分配给sum
。在要想做你想做的事情,你需要使用
sum = float(iter + int(subs))
-这将sub转换成int
类型,这允许你将它添加到iter(也是一个int
)。在我不认为你需要在你的
strang2
列表的末尾添加一个新的数字,你可以使用strang2[:]
来选择整个列表。在相关问题 更多 >
编程相关推荐