簡體   English   中英

誰能幫我解決我在Python 2.7中不斷遇到的TypeError問題?

[英]Can anyone help me with this TypeError I keep getting in Python 2.7?

我正在嘗試制作一個程序,該程序使用用戶存儲在字典中的值將用戶鍵入的5個字母的字符串轉換為浮點數,以轉換每個字母。 這是我的代碼:

    kvalues = {"a":1.01, "b":1.02, "c":1.03, "d":1.04, "e":1.05, "f":1.06, "g":1.07, "h":1.08, "i":1.09, "j":1.10, "k":1.11, "l":1.12, "m":1.13, "n":1.14, "o":1.15, "p":1.16, "q":1.17, "r":1.18, "s":1.19, "t":1.20, "u":1.21, "v":1.22, "w":1.23, "x":1.24, "y":1.25, "z":1.26}
    def convert_key(key):
        #converts the key into a float using the values stored in kvalues
        k1 = float(kvalues.get(key[0]))
        k2 = float(kvalues.get(key[1]))
        k3 = float(kvalues.get(key[2]))
        k4 = float(kvalues.get(key[3]))
        k5 = float(kvalues.get(key[4]))
        print k1 + k2 + k3 + k4 + k5
    convert_key(raw_input (Please enter a key:))

當我運行程序時,出現以下錯誤:“ TypeError:'builtin_function_or_method'對象沒有屬性' getitem '”。 真正令人困惑的部分是當我像這樣通過空閑外殼運行代碼時:

    key = "koala"
    kvalues = {"a":1.01, "b":1.02, "c":1.03, "d":1.04, "e":1.05, "f":1.06, "g":1.07, "h":1.08, "i":1.09, "j":1.10, "k":1.11, "l":1.12, "m":1.13, "n":1.14, "o":1.15, "p":1.16, "q":1.17, "r":1.18, "s":1.19, "t":1.20, "u":1.21, "v":1.22, "w":1.23, "x":1.24, "y":1.25, "z":1.26}
    k1 = float(kvalues.get(key[0]))
    print k1

它完美地工作! 有誰知道這里的問題是什么? 我是Python的新手,對這種語言的細微差別不太熟悉。

這是完整的回溯:

Traceback (most recent call last): 
File "K:\Projects\koala.py", line 73, in <module> menu() 
File "K:\Projects\koala.py", line 10, in menu encrypt() 
File "K:\Projects\koala.py", line 28, in encrypt e_key = convert_key(e_key) 
File "K:\Projects\koala.py", line 67, in convert_key k1 = float(kvalues.get(key[0]))
TypeError: 'builtin_function_or_method' object has no attribute 'getitem' 

將打印添加到該功能的開始時:

    <built-in method lower of str object at 0x0000000002AC7E40>

問題在於您正在執行此操作:

e_key = mystring.lower

當您打算這樣做時:

e_key = mystring.lower()

.lower是一種方法 ,意味着需要像函數一樣調用它,因此需要括號。 在第一種方法中,您只需將方法重新分配給e_key變量。

暫無
暫無

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

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