Python Basic day07

1,理解文件的作用 (文件是连续的字节序列)

保存数据

2,掌握文件的打开和关闭

F = Open(“文件路径、名”, “r”, encoding=”utf-8”)
F.close()

3,掌握向文件中写入数据的方式

F.write(“[20, 30]”)

4,掌握从文件中读取数据的方式

F.read(3)
F.readline()
F.readlines()

5,文件的操作

文件是连续的字节序列
文件的作用:保存数据

文件操作流程:
    1、打开文件
    2、操作文件
    3、关闭文件

文件操作权限:
    r   读权限   以r权限打开文件,如果没有这个文件,会报错,如果有这个文件则打开,不会清空数据
    r+   以可读可写的方式打开文件
    rb   以二进制方式打开文件,只读
    rb+  以二进制方式打开文件,可读可写

    w   写权限   以w权限打开文件,如果没有这个文件,会自动创建文件,如果有这个文件会清空文件的原有的数据
    w+   以可读可写的方式打开文件
    wb   以二进制方式打开文件,只写
    wb+  以二进制方式打开文件,可读可写

    a   追加权限  以a权限打开文件,如果没有这个文件,会自动创建文件,如果有这个文件则打开,不会清空数据
    a+   以可读可追加的方式打开文件
    ab  以二进制方式打开文件,只追加
    ab+  以二进制方式打开文件,可读可追加

关于read的几个函数
    f.read()   # 可以传入一个数字,指定读取多少位
    f.readline()   # 读取一行数据
    f.readlines()  # 返回一个列表,每一行的数据就是列表中的每一个元素

6,掌握使用os模块完成对文件的重命名

Import os
Os.rename(旧文件名,新文件名)

7,掌握使用os模块删除一个文件

Os.remove(文件名)

8,掌握使用os模块完成创建文件夹

Os.mkdir(“文件夹名”)

9,文件和文件夹的操作

import os

os.path.exists("hello02.txt")  # 判断目录下是否存在 hello02.txt这个文件
os.rename("hello.txt", "hello2.txt")   # 重命名
os.remove("sound_backup.mp3")   # 删除某个文件

print(os.getcwd())   # 获取当前 的操作目录
os.chdir("../")   # 改变 当前的操作目录,为上一级

os.mkdir("test")   # 创建文件夹
os.rmdir("test")    # 删除空的文件夹

print(os.listdir())  # 返回一个列表,列表里面每一个元素是目录下所有的文件名和文件夹名

10,lambda表达式(匿名函数)

lambda 本质是一个函数
定义:  lambda 形参: 返回值

调用的格式1:
fn = lambda a: a+2
fn(实参)

调用的格式2:
(lambda a: a+2)(实参)

# 用lambda表达式求两个数的和
# fn = lambda a, b: a+b
# print(fn(10, 20))
# print((lambda a, b: a+b)(20, 30))

# 求a和b中的最大值(了解)
# print((lambda a, b: a if a > b else b)(50, 30))

# 不定长参数的写法(了解)
# print((lambda *args: args)(10, 20, 30, "abc"))
  # (10, 20, 30, '123')  以元组的形式输出。
#print((lambda *args, **kwargs: (args, kwargs))(10, 20, 30, "abc", name="python", age=27))
  # ((10, 20, 30), {'name': 'python', 'age': 27})

11,(重点)列表推导式

列表推导式(列表生成式)
[返回值 for i in range(1, 6)]

[返回值 for i in range(1, 6) if 条件]
返回值的类型和格式,决定了,将来列表中每一个元素的类型格式

# lst = [i for i in range(1, 11)]   # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 整形—>整形
# lst = [i+2 for i in range(1, 11)]   # [3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
# lst = [str(i) for i in range(1, 11)]   # ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
# print(lst)
# lst = [i for i in range(1, 21) if i % 2 == 0]  # [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

12,集合

特点:
    1、元素没有顺序之分(无序性) 不能通过下标来获取(字典也无序)
    2、没有重复出现的数据

作用:
    lst = [10, 20, 30, 50, 10]
    tup = (10, 20, 30, 50, 10)

    # print(list(set(lst)))   # 集合的应用: 去重
    # print(tuple(set(tup)))   # 集合的应用: 去重

13,其他

 a +=1与a = a+1 区别
 a +=1与a = a+1等效但不等价
结果相等,但两个a所指向的地址空间已经发生了变化。
a = [10, 20]
# print(id(a))
# a += [30]   # 等效于 a = a + 10
# print(id(a))  # 两个id一致,a的指向没有发生变化

a = [10, 20]
print(id(a))
a = a + [30]
print(id(a))  # 两个id不一致,a的指向发生变化了
补充知识点:求两个数的最大值
def fn(a, b):
    # if a > b:
    #     return a
    # else:
    #     return b
    return a if a > b else b  可以用此代替上面4行
print(fn(10, 20))
相对路径:
../   上一级的符号
/  下一级  (windows)
./  当前
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容