如何使用Python3

时间:2018-10-11 12:55:53

标签: python string list integer

首先,感谢您关注这个问题。我一直在到处搜索以找到正确的语法,但我没有主意。

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

strang = input( 'Enter message: ' )
strlen = len( strang )
strang1 = list( strang )
subs = input( 'Enter number between 1-26: ')

我创建了一个字典来定义字母表中的所有字母,以便可以将用户输入的字符串转换为数字。

dic = { 'a':1, 'b':2, 'c':3, 
'd':4, 'e':5, 'f':6,
'g':7, 'h':8, 'i':9,
'j':10, 'k':11, 'l':12,
'm':13, 'n':14, 'o':15,
'p':16, 'q':17, 'r':18,
's':19, 't':20, 'u':21,
'v':22, 'w':23, 'x':24,
'y':25, 'z':26 }

我在strang2的末尾附加了一个疯狂的值,因此我可以选择没有该值的整个列表:strang2 [:-1]

strang2 = list(dic.get( n, n ) for n in strang1)
strang2.append( 999 )

我想将用户定义为“ subs”的任何值添加到列表“ strang2”的元素中,将它们转换回字母,然后打印新字符串。 问题是将subs添加到strang2的元素中,这是需要解决的某种数据类型差异。下面的代码无法正常工作:

for iter in strang2:
sum = float( iter + subs )
print( sum )

我一直在搜索并且失败了一个星期,所以这只是到目前为止我所做的最后一件事。再次感谢。

编辑:有2个等号,已删除一个。代码返回此错误:

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'

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

input()函数返回str()类型。您正在尝试将一个int和一个字符串添加在一起,但是由于Python是一种强类型语言,所以您不能隐式地添加它。

您还使用sum == float(iter + subs)来尝试检查相等性,而不是将float(iter + subs)分配给sum

要执行您想做的事情,您需要使用sum = float(iter + int(subs))-这会将子项转换为int类型,这允许您将其添加到iter(也可以是{{1} }。

我认为您也不需要在int列表的末尾添加新的数字,您可以使用strang2选择整个列表。

答案 2 :(得分:0)

您必须将两个变量都转换为float:

sum = float( float(iter) + float(subs ))