簡體   English   中英

如何使用Python3使用用戶輸入變量來更改列表的內容

[英]How to change the contents of a list using a user input variable using Python3

首先,感謝您關注這個問題。 我一直在到處搜索以找到正確的語法,但我沒有主意。

用戶輸入一個字符串,然后將其保存:

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 )

我一直在使用Google搜索並且失敗了一個星期,所以這只是到目前為止我所做的最后一件事。 再次感謝。

編輯:有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'

您正在使用sum == float( iter + subs ) 如果使用double = ,則檢查值。 因此,如果使用sum = float( iter + subs )它應該可以工作。

input()函數返回str()類型。 您正在嘗試將一個int和一個字符串添加在一起,這是不能隱式完成的,因為Python是一種強類型語言。

您還使用sum == float(iter + subs) ,它將嘗試檢查是否相等,而不是將float(iter + subs)分配給sum

要執行您想要的操作,您需要使用sum = float(iter + int(subs)) -這會將subs轉換為int類型,這允許您將其添加到iter(也可以是int )。

我認為您也不需要在strang2列表的末尾添加新的數字,您可以使用strang2[:]選擇整個列表。

您必須將兩個變量都轉換為float:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM