2015-02-08 79 views
-2

因此,這是我的代碼,它旨在測試汽車註冊牌,開始時間和結束時間(在完整的代碼中,它將打印在底部)。''str'對象不支持項目分配'python 2

data = str(list) 
sdata = str(list) 
edata = str(list) 
current = 0 
repeats = input ('How many cars do you want to measure?') 

def main(): 
    global current 
    print (current) 
    print '' 
    print '' 
    print '---------------------------------------' 
    print '---------------------------------------' 
    print 'Enter the registration number.' 
    data[current] = raw_input(' ') 
    print 'Enter the time it passed Camera 1. In this form HH:MM:SS' 
    sdata[current] = raw_input(' ') 
    print 'Enter the time it passed Camera 2. In this form HH:MM:SS' 
    edata[current] = raw_input (' ') 
    print '---------------------------------------' 
    print'' 
    print'' 
    print'' 
    print 'The Registration Number is :' 
    print data[current] 
    print'' 
    print 'The Start Time Is:' 
    print sdata[current] 
    print'' 
    print 'The End Time Is:' 
    print edata[current] 
    print'' 
    print'' 
    raw_input('Press enter to confirm.') 
    print'---------------------------------------' 
    d = d + 1 
    s = s + 1 
    a = a + 1 
    current = current = 1 

while current < repeats: 
    main() 

當我運行它,它得到:

data[current] = raw_input(' ') 

我得到錯誤信息「類型錯誤:‘海峽’對象不支持的項目分配」 預先感謝您的幫助。 :D

回答

0

錯誤很明顯。 str object does not support item assignment

python中的字符串是不可變的。你已轉換的數據爲字符串,當你做

data = str(list) 

因此,通過

data["current"] = raw_input() 

您要分配一些值的字符串,這是不是在Python的支持。

如果你希望數據是一個列表,

data = list() 

data = [] 

會有所幫助,從而防止錯誤

0

分配過程中不使用STR

data = str(list) 
sdata = str(list) 
edata = str(list) 

改爲使用

data = [] 
sdata = [] 
edata = [] 

後來在打印過程中使用STR如果u想

print str(data[current]) 

爲aswin表示,其不可改變的,所以不要複雜的IT

相關問題