python拼接字串和數字時會報錯, **如下
importosimportsys
str ='python學科的分數為:'score = 90
printstr + str(score) +'分'
執行結果:
traceback (most recent call last):file "c:/users/administrator/pycharmprojects/python_demo/filedemo.py", line 9, in print str + str(score) + '分'
typeerror: 'str' object is not callable
或者直接報:typeerror: cannot concatenate 'str' and 'int' objects
問題分析:
有兩種常見錯誤
1. 當一般內部函式被用作變數名後可能出現此錯誤。比如:range=1
for i in range(0,1):
這樣的錯會報在for行,但是時間引起的原因卻是在range=1這行,如果兩行相距較遠,怎很難被發現。所以要特別注意不要用內部已有的變數和函式名作自定義變數名。
2. 或者str被預先定義了
str=10for i in range(1,10):
print str(i)
解決方法:
只有提前把num轉換為字串型別,可以使用bytes函式把int型轉換為string型。
str ='python學科的分數為:'score = 90printstr + bytes(score) +'分'
如果將字串加u轉換為unicode字元後,會報另外乙個錯誤
**如下:
importosimportsys
result =u'python學科的分數為:'score = 90
printresult + bytes(score) +'分'
執行結果:traceback (most recent call last):
file "c:/users/administrator/pycharmprojects/python_demo/filedemo.py", line 8, in
print result + bytes(score) + '分'
unicodedecodeerror: 'ascii' codec can't decode byte 0xe5 in position 0: ordinal not in range(128)
問題分析:
原因就是python的str預設是ascii編碼,和unicode編碼衝突,就會報這個標題錯誤
解決方法:
importosimportsys
reload(sys)
sys.setdefaultencoding('utf-8')
result =u'python學科的分數為:'score = 90
printresult + bytes(score) +'分'
對需要 str->unicode 的**,可以在前邊寫上import sys
reload(sys)
sys.setdefaultencoding('utf8')
把 str 編碼由 ascii 改為 utf8 (或 gb18030)
python實現字串和數字拼接
如下所示 將i前面加str i 就可以了 補充拓展 python 連線字串和數字 python 連線字串和數字的問題 首先要說的是,python是強型別的語言,如果你把乙個字串和數字直接做連線的操作的話,會報錯 typeerror must程式設計客棧 be stwww.cppcns.comr,no...
MySQL中字串和數字拼接
select from qa employ where employ group 2 原先僱傭表中所有僱傭姓名全部是 張三 希望將雇用姓名變得不一樣,比如張三 id sqlserver中直接用 update qa employ set employ name employ name employ i...
C 字串和數字拼接
string str1 str1 9 string str2 str2 9.tostring 我們先看第一行 的il 我直接截圖 可以看出 第一行 的 str1 9在執行是 會完成一次裝箱行為 il 中的box 我們再看第二行 的il 而第二行 種的9.tostring 並沒有發生裝箱行為 它實際呼...