看板 Python 關於我們 聯絡資訊
正在學習python,想要做一個串列的比較,即下列變數user的名字忽略大小寫後,有無出現在login中,目前執行到line2時,顯示AttributeError: 'list' object has no attribute 'lower',請問要如何將串列中的大小寫忽略呢? 程式碼如下 login=['Kevin','DORA','donna','amenda']login=login.lower()user=['Kevin','Dora','chris','Amedna','MARY']user=user.lower() for user in login: if user == 'amenda': print('welcom bank.') elif user not in login: print('welcom! tourist.') else: print('please register your account')謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.10.58.80 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1632138513.A.163.html
LongboardDC: login是一個list, 沒有.lower() method 09/20 20:13
LongboardDC: 你可以使用list comprehension: 09/20 20:14
LongboardDC: login_lower = [x.lower() for x in login] 09/20 20:14
LongboardDC: 同樣的方法可以得到user_lower 09/20 21:05
LongboardDC: 你後面的for loop有logical error 09/20 21:05
LongboardDC: 我假設你的目的是要檢查user_lower裡的每個名字, 09/20 21:06
LongboardDC: if名字是amanda, 印出Welcome back. 09/20 21:06
LongboardDC: elif名字在login_lower裡, 印出Welcome, tourist. 09/20 21:06
LongboardDC: else印出Please register your account. 09/20 21:06
LongboardDC: for loop應修正為: 09/20 21:07
LongboardDC: for i in user_lower: 09/20 21:07
LongboardDC: (………內部交給你修改) 09/20 21:07
LongboardDC: 這樣第一次: i 為 ‘kevin’ 09/20 21:08
LongboardDC: 第二次: i為’dora’ 09/20 21:08
LongboardDC: 第三次: i為’chris’ 09/20 21:08
LongboardDC: 第四次: i為’amanda’ 09/20 21:08
LongboardDC: 第五次: i 為’mary’ 09/20 21:08
yiche: list 物件沒有 lower() 這個方法,只是這樣而已,嘗試看看s 09/20 22:27
yiche: tr這個物件有沒有lower() 09/20 22:27
GTR12534: 串列不會有大小寫,字串才有 09/21 13:36
doris15: 謝謝說明!找了一整天,結果在這裡一下就得到解答了! 09/21 22:17
pmove: 一天其實不算找多久 XD 09/22 14:37