自学Python编程的第九天(希望有大牛帮我看看我第一个代码是否有弊端,感谢您

系统 1810 0

自学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元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论