問題原因:python和c的語法不同,對空列表不能直接進行指定位置的賦值。
舉例:編寫乙個函式返回最大值和最小值
對list列表進行檔案操作,open與write檔案輸入輸出問題def function2():
list1 =
while true:
a = int(input('請輸入整數 按0結束'))
if a == 0:
break
else:
#c的方式是以下,會出現報錯,原因是空列表不能直接指定位置
#n=0
#list1[n] = a
#n += 1
print('max is %d' %max(list1))
print('min is %d' %min(list1))
function2()
寫入檔案使用的是write函式,如果直接把write後面加list列表,系統會提示write的引數必須是str:
typeerror: write() argument must be str, not list採用強制轉換的策略,看一下輸出結果:
file3 = open('test_file.txt', 'w')
list3 = ['\n , this is a test list ']
file3.write(str(list3))
file3.close()
寫到file3的檔案內容是:
['\n , this is a test list ']很顯然,這不是我們想要的結果,因為轉義字元\n被原樣輸出了,因此這樣的方式其實是保留了列表原樣的顯示方式。
所以換一種顯示方法,用for迴圈輸出寫入檔案
file3 = open('test_file.txt', 'w')
list3 = ['\n , this is a test list ']
if len(list3) == 1:
file3.write(list3[0])
else:
for i in range(0, len(list3)-1):
file3.write(list3[i])
file3.close()
寫到file3的檔案內容是:
這是正常顯示內容。, this is a test list
初學Python的問題記錄1
學習定義函式的時候,教程有個自定義的求絕對值的my abs函式,我在notepad 裡面定義好函式 如圖一所示 然後再在python環境裡面執行,就會有如圖二的報錯 經過排查是因為在 notepad 裡面,if那行已經手動空格了,return那行就自動也空出那麼多位置,但是自動空出來的位置不是空格而...
python問題記錄
今天才python群裡看到乙個問題 python2.7 l x for x in hello print lprint x python3.4 l x for x in hello print l print x 兩者都可以列印出 l h e l l o 但是只有python2.7可以列印出變數x的...
刷題記錄12
某條街被劃為 n 條路段,這 n 條路段依次編號為1 dots n1 n。每個路段最多可以種一棵樹。現在居民們給出了 h 組建議,每組建議包含三個整數 b,e,t,表示居民希望在路段 b 到 e 之間至少要種t棵樹。這些建議所給路段的區間可以交叉。請問 如果要滿足所有居民的建議,至少要種多少棵樹。i...