python中的SQLite,在屏幕上打印,python 3.2.4我有這個(gè)代碼cur.execute("SELECT * FROM Player")while True: row = cur.fetchone() print(row) print("why {0}".format(cur.fetchone())) if row == None: break我收到以下輸出:從數(shù)據(jù)庫加載 (1, 'Damian', 1, 15, 18, 100, 100) why None None why None((((((1,'Damian',1,15,18,100,100))))<-這是在我的數(shù)據(jù)庫中。為什么當(dāng)我嘗試以另一種打印方式打印不起作用時(shí)?或者當(dāng)我嘗試像這樣打印:print(row [0])它顯示錯(cuò)誤,例如= print(row [0])TypeError:'NoneType'對象不可下標(biāo)
1 回答

30秒到達(dá)戰(zhàn)場
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊
您的問題是您fetchone()
在循環(huán)內(nèi)調(diào)用了兩次。while
與行相對應(yīng)的循環(huán)沒有什么神奇的。相反,它是調(diào)用的副作用,該副作用fetchone()
前進(jìn)到下一個(gè)結(jié)果行。
第一print
輸出第一行;第二行輸出第一行。第二行(帶有"why"
)將打印第二行(如果存在)。
添加回答
舉報(bào)
0/150
提交
取消