zoukankan      html  css  js  c++  java
  • 自学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<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)
    #上面代码是自己敲的,好像没错,但是看视频说下面的方法比较适合,有点不懂.因为我觉得下面的代码我容易忘把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<len(lst)-1:
    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<len(lst)-1:
            if lst[i]>lst[i+1]:
                lst[i],lst[i+1]=lst[i+1],lst[i]
            i=i+1
    print(lst)
  • 相关阅读:
    SPOJ 694 (后缀数组) Distinct Substrings
    POJ 2774 (后缀数组 最长公共字串) Long Long Message
    POJ 3693 (后缀数组) Maximum repetition substring
    POJ 3261 (后缀数组 二分) Milk Patterns
    UVa 1149 (贪心) Bin Packing
    UVa 12206 (字符串哈希) Stammering Aliens
    UVa 11210 (DFS) Chinese Mahjong
    UVa (BFS) The Monocycle
    UVa 11624 (BFS) Fire!
    HDU 3032 (Nim博弈变形) Nim or not Nim?
  • 原文地址:https://www.cnblogs.com/hpcz190911/p/11553003.html
Copyright © 2011-2022 走看看