自學Python編程的第九天(希望有大牛幫我看看我第一個代碼是否有弊端,感謝您們)----------來自苦逼的轉行人
2019-09-19-22:11:33
今天是自學Python的第九天
學的內容是有關文件操作的,如:r、w、a、rb、wb、ab、r+、w+、a+等
有大牛幫我看一下我的代碼第一個有沒有什么弊端嗎?我感覺好像沒有,但是看視頻時,說不建議這樣做
一.重要知識點
文件操作:
1. r
讀取完的文件句柄?定要關閉.f.close()
2. w
寫的時候注意.如果沒有文件.則會創建文件,如果文件存在.則將原件中原來的內容刪除,再寫入新內容
寫入是從光標處開始寫入
3. a
此模式下,寫入的內容會追加到文件末尾
4. r+
讀寫模式.必須先讀后寫
需要移動光標進行反復讀寫
注意:在r+模式下.如果讀取了內容.不論讀取內容多少.光標顯示的是多少.
再寫入或者操作文件的時候都是在結尾進行的操作.
5. w+(很少用)
6. a+(此模式下不管是先讀還是后讀都無法讀取內容)
7. b bytes 讀寫操作的是字節. 用在非文本上
8. seek() 移動光標到xx位置,移動的單位是byte
開頭: seek(0), 末尾: seek(0,2)
9. 文件修改
創建新文件. 把修改后的內容寫入新文件. 刪除老文件. 重命名新文件
import os
os.remove("")刪除文件
os.rename("源文件", "新文件名") 重命名文件
for line in f:
line 一行數據
with open("文件名") as f:
不需要關閉文件句柄,會自動關閉
二.錯誤總結
1.for循環和while循環嵌套問題
lst=[5,2,8,11,9,10,21,3,13]
i=0
while i
for el in range(len(lst)-1):
if lst[el]>lst[el+1]:
lst[el],lst[el+1]=lst[el+1],lst[el]
i=i+1
print(lst)
#上面代碼是自己敲的,好像沒錯,但是看視頻說下面的方法比較適合,有點不懂.因為我覺得下面的代碼我容易忘把i=0放進for循環下
lst=[5,2,8,11,9,10,21,3,13]
i=0 #沒考慮到要把i=0放進for循環中去
for el in range(len(lst)):
while i
if lst[i]>lst[i+1]:
lst[i],lst[i+1]=lst[i+1],lst[i]
i=i+1
print(lst)
#不同循環還是沒有考慮到嵌套之間的關系
解決方法:要再了解不同循環的用法,然后總結它們之間的聯系.
lst=[5,2,8,11,9,10,21,3,13 ] i = 0 while i< len(lst): for el in range(len(lst)-1 ): if lst[el]>lst[el+1 ]: lst[el],lst[el +1]=lst[el+1 ],lst[el] i =i+1 print (lst) lst =[5,2,8,11,9,10,21,3,13 ] for el in range(len(lst)): i = 0 while i: if lst[i]>lst[i+1 ]: lst[i],lst[i +1]=lst[i+1 ],lst[i] i =i+1 print (lst)
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
