如何使用Python3使用用户输入变量更改列表的内容

2024-06-10 12:11:46 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,谢谢你看这个问题。我到处找遍了,想找到正确的语法,但我没主意了。在

用户输入一个字符串,然后保存:

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'

Tags: 字符串用户inforinput定义字母list
3条回答

您正在使用sum == float( iter + subs )。使用double=可以检查值。因此,如果使用sum = float( iter + subs ),它应该可以工作。在

必须将两个变量转换为浮点:

sum = float( float(iter) + float(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[:]来选择整个列表。在

相关问题 更多 >