2014-04-17 54 views
-1

我已經創建了一段代碼,當過我運行程序我收到此錯誤由我的代碼生成的一些數據,但保存到一個txt文件在我的電腦,問題與保存到一個txt在Python 3.3.2

Traceback (most recent call last): 
    File "E:\CA2 solution.py", line 14, in <module> 
    char1[1]="Strength now " +strh1 
TypeError: Can't convert 'int' object to str implicitly 

林不知道該怎麼做,需要一些幫助,計算出來,這是我的代碼;

import random 

char1=str(input('Please enter a name for character 1: ')) 
strh1=((random.randrange(1,4))//(random.randrange(1,12))+10) 
skl1=((random.randrange(1,4))//(random.randrange(1,12))+10) 
print ('%s has a strength value of %s and a skill value of %s)'%(char1,strh1,skl1)) 


char2=str(input('Please enter a name for character 2: ')) 
strh2=((random.randrange(1,4))//(random.randrange(1,12))+10) 
skl2=((random.randrange(1,4))//(random.randrange(1,12))+10) 
print('%s has a strength value of %s and a skill value of %s'%(char1,strh1,skl1)) 

char1[1]="Strength now " +strh1 

char1[2]="Skill now " +skl1 

char2[1]="Strength now " +strh2 
print() 

char2[2]="Skill now " +skl1 
print() 

myFile=open('CharAttValues.txt','wt') 
for i in Char1: 
    myFile.write (i) 
    myFile.write ('\n') 


for i in Char2: 
    myFile.write (i) 
    myFile.write('\n') 
myFile.close() 

我知道它的東西做的「STR」的定義,但我一直在用它擺弄像現在30分鐘(是的,我是一個新的程序員},仍然無濟於事,所以如果有人能爲我提供一些幫助,將是巨大的,非常感謝

回答

2

首先,我假設import語句不atually出凹陷,就像該樣本。

錯誤TypeError: Can't convert 'int' object to str implicitly基本上意味着它不能A添加到B,或在這種情況下,一個整數,字符串,我們可以避開這個問題通過使

char1[1]="Strength now " + strh1 

到:

char1[1]="Strength now " + str(strh1) 

這只是說「把strh1成一個字符串添加它。但在此之後,我注意到一個新的錯誤:

TypeError: 'str' object does not support item assignment

這是因爲,至少在這種情況下,你在治療字符串作爲數組,字典語法混合(通過它的外觀)。我不知道你是用線

char1[1]="Strength now " + strh1 

做什麼,因爲它在我看來,你試圖將項目添加到字典中是不存在的,所以我只能儘量解釋什麼出錯了。

還值得注意的是,當你把一個輸入作爲一個字符串時,沒有必要把它作爲foo = str(input("Bar: ")),默認情況下python將輸入作爲字符串。這意味着你會從foo = input("Bars: ")得到同樣的結果。