我目前正在學習python并且在語法上有很多麻煩。我目前正在處理的問題是要求我使簡單的密碼/輸入更復雜。到目前為止,我正在嘗試使用 for 回圈遍歷所有字母并查看它們是否需要更改,如 m -> M。我希望每個回圈都將結果字符添加到新變數(new_pass)和基本上把這些字符放在一起來制作新密碼。反正就是這么想的。我正在處理的示例輸入是單詞“mypassword”,它又應該輸出“Myp@$$word!” 根據下面的 if/elif 陳述句。目前我在第 6 行“無效語法”出現錯誤。如果您能幫助我,請提前致謝!
word = input()
password = ''
new_pass = ''
for letter in word:
if letter == i
letter = 1
elif letter == a:
letter = @
elif letter == m:
letter = M
elif letter == B:
letter = 8
elif letter == s:
letter = $
else:
new_pass = new_pass letter
print(new_pass)
uj5u.com熱心網友回復:
首先,您必須在字串周圍加上引號。例如letter = @
,您必須代替letter = '@'
.
其次,使用替換字母字典并遍歷串列檢查替換是一種更好的方法。您可以這樣做:
word = input()
replacements = {'i': '1', 'a': '@', 'm': 'M', 'B': '8', 's': '$'}
new_pass = ''
for letter in word:
if letter in replacements:
new_pass = replacements[letter]
else:
new_pass = letter
print(new_pass)
如果您愿意,也可以使用串列推導來執行此操作:
word = input()
replacements = {'i': '1', 'a': '@', 'm': 'M', 'B': '8', 's': '$'}
new_pass = ''.join([replacements[l] if l in replacements else l for l in word])
print(new_pass)
uj5u.com熱心網友回復:
關于語法錯誤:
要定義 if 或回圈的新范圍(內部),請:
在最后使用并縮進下面的代碼。
您還想將字串與另一個字串進行比較,如下所示:
if letter == 'i':
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/523808.html
上一篇:如果資料陣列回圈