python基础及经验总结

1、字典、集合等

1、字典中的键必须不可变且唯一不重复
字典中的键是不可变的,所以可以使用数字、字符串或者元组,但不能使用列表。值可以是任意类型。
2、通过映射函数创建字典:

list1=['a','b','c']
list2 = [1,2,3]
my_dict = dict(zip(list1,list2))  # {'a': 1, 'b': 2, 'c': 3}
my_list = list(zip(list1,list2))  # [('a', 1), ('b', 2), ('c', 3)]
my_tuple = tuple(zip(list1,list2))# (('a', 1), ('b', 2), ('c', 3))
"""
参数说明:
zip()函数,用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。
如果list1和list2长度不同,返回值和最短的长度一致。
"""

3、通过列表创建空字典

list1=['a','b','c']
my_dict = dict.fromkeys(list1) # {'a': None, 'b': None, 'c': None}

4、my_dict.clear 清空字典 del my_dict 直接删除整个字典
5、pop和popitem

my_dict={'a': 1, 'b': 2, 'c': 3}
result = my_dict.popitem() # ('c', 3)
result = my_dict.pop('b')  # 2

6、使用中括号取值,如果键不存在则报错,使用get取值,如果不存在有默认值返回默认值,没有默认值返回None
7、集合的交集、并集和差集

"""
&取交集,|取并集,-取差集
"""
my_set1 = {'a','b','c','d'}
my_set2 = {'a','b','e','f'}
result = my_set1&my_set2  # {'a', 'b'}
result = my_set1|my_set2  # {'d', 'a', 'f', 'c', 'b', 'e'}
result = my_set1-my_set2  # {'d', 'c'}
result = my_set1.union(my_set2) # {'d', 'a', 'f', 'c', 'b', 'e'}

8、判断变量类型

# 判断参数my_var是不是列表。
if isinstance(my_var,list):
    result = my_var
else:
    result=list(my_var)

9、判断是否为空集
不要通过检测长度的方法(如if len(my_list)==0)来判断my_list是否为[]或''等空值,
而是应该采用if not my_list这种方法,他会假定:空值将自动评估为False。

my_list=[]
if not my_list:
    print('空')
else:
    print('非空')
2、文件操作

1、文件读取

with open('message.txt','r') as file:
    file.seek(14)
    string = file.read(8)
    print(string)
"""
如果message.txt文件内容为:Python的强大,强大到你无法想象!!!
在代码执行后显示:强大到你无法想象
"""

file.read([size]) 
"""
读取指定字符。==英文汉字每个都算做一个字符。==
size是可选参数,用于指定要读取的字符个数,如果省略则一次性读取所有内容。
要使用read()方法,必须使用 r(只读) 或者 r+(读写),否则报错。
"""
file.seek(offset[,whence])
"""
seek()方法将文件的指针移动到新位置。==在使用seek()方法时,offset的值按一个汉字占两个字符,英文和数字点占一个字符计算的。==
offset:用于指定移动的字符个数,其具体位置与whence有关。
whence:用于指定从什么位置开始计算。0表示从文件头开始计算,1表示从当前位置开始计算,2表示从文件尾开始计算,默认为0。
        如果打开文件时,没有使用b模式(即rb),那么只允许从文件头开始计算相对位置,从文件尾计算时就会引发异常(报错)。
"""

2、文件操作
os.remove():删除文件时,如果文件不存在则报错
os.mkdir(path):创建一级目录时,如果目录已经存在则报错
os.rmdir(path):删除目录时,如果目录不存在,则报错
os.rename(src,dst):重命名时,如果目录或文件不存在,则报错
在使用这几个方法之前,需要先判断文件或者目录存不存在,在进行操作。

# 先判断文件存不存在
import os
path = 'mrsoft.txt'
if os.path.exists(path):
    os.remove(path)

os.rename(src,dst)
"""
src旧名字,dst新名字。rename()方法重命名目录时,只能修改最后一级的目录名称,否则抛出异常。
"""

os.rmdir(path) # 删除空目录
os.rmdir("C:\\demo\\test\\dir\\mr") #执行后,将删除C:\demo\test\dir目录下的mr目录。
import shutil
shutil.rmtree("C:\\demo\\test") # 删除C:\demo目录下的test子目录及其内容。
"""
rmdir()函数只能删除空目录,如果想要删除非空目录,则需要使用shutil模块的rmtree函数。
"""
os.mkdir(path,mode=0o777) # 创建一级目录  mode:用于指定数值模式,默认值为0777,该参数在非Unix系统上无效或者被忽略。
os.makedirs(path,mode=0o777)# 创建多级目录
os.makedirs("C:\\demo\\test\\dir\\mr")

```**------------恢复内容开始------------**
#####1、字典、集合等
1、字典中的键必须不可变且唯一不重复
字典中的键是不可变的,所以可以使用数字、字符串或者元组,但不能使用列表。值可以是任意类型。
2、通过映射函数创建字典:
```Python
list1=['a','b','c']
list2 = [1,2,3]
my_dict = dict(zip(list1,list2))  # {'a': 1, 'b': 2, 'c': 3}
my_list = list(zip(list1,list2))  # [('a', 1), ('b', 2), ('c', 3)]
my_tuple = tuple(zip(list1,list2))# (('a', 1), ('b', 2), ('c', 3))
"""
参数说明:
zip()函数,用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。
如果list1和list2长度不同,返回值和最短的长度一致。
"""

3、通过列表创建空字典

list1=['a','b','c']
my_dict = dict.fromkeys(list1) # {'a': None, 'b': None, 'c': None}

4、my_dict.clear 清空字典 del my_dict 直接删除整个字典
5、pop和popitem

my_dict={'a': 1, 'b': 2, 'c': 3}
result = my_dict.popitem() # ('c', 3)
result = my_dict.pop('b')  # 2

6、使用中括号取值,如果键不存在则报错,使用get取值,如果不存在有默认值返回默认值,没有默认值返回None
7、集合的交集、并集和差集

"""
&取交集,|取并集,-取差集
"""
my_set1 = {'a','b','c','d'}
my_set2 = {'a','b','e','f'}
result = my_set1&my_set2  # {'a', 'b'}
result = my_set1|my_set2  # {'d', 'a', 'f', 'c', 'b', 'e'}
result = my_set1-my_set2  # {'d', 'c'}
result = my_set1.union(my_set2) # {'d', 'a', 'f', 'c', 'b', 'e'}

8、判断变量类型

# 判断参数my_var是不是列表。
if isinstance(my_var,list):
    result = my_var
else:
    result=list(my_var)

9、判断是否为空集
不要通过检测长度的方法(如if len(my_list)==0)来判断my_list是否为[]或''等空值,
而是应该采用if not my_list这种方法,他会假定:空值将自动评估为False。

my_list=[]
if not my_list:
    print('空')
else:
    print('非空')
2、文件操作

1、文件读取

with open('message.txt','r') as file:
    file.seek(14)
    string = file.read(8)
    print(string)
"""
如果message.txt文件内容为:Python的强大,强大到你无法想象!!!
在代码执行后显示:强大到你无法想象
"""

file.read([size]) 
"""
读取指定字符。==英文汉字每个都算做一个字符。==
size是可选参数,用于指定要读取的字符个数,如果省略则一次性读取所有内容。
要使用read()方法,必须使用 r(只读) 或者 r+(读写),否则报错。
"""
file.seek(offset[,whence])
"""
seek()方法将文件的指针移动到新位置。==在使用seek()方法时,offset的值按一个汉字占两个字符,英文和数字点占一个字符计算的。==
offset:用于指定移动的字符个数,其具体位置与whence有关。
whence:用于指定从什么位置开始计算。0表示从文件头开始计算,1表示从当前位置开始计算,2表示从文件尾开始计算,默认为0。
        如果打开文件时,没有使用b模式(即rb),那么只允许从文件头开始计算相对位置,从文件尾计算时就会引发异常(报错)。
"""

2、文件操作
os.remove():删除文件时,如果文件不存在则报错
os.mkdir(path):创建一级目录时,如果目录已经存在则报错
os.rmdir(path):删除目录时,如果目录不存在,则报错
os.rename(src,dst):重命名时,如果目录或文件不存在,则报错
在使用这几个方法之前,需要先判断文件或者目录存不存在,在进行操作。

# 先判断文件存不存在
import os
path = 'mrsoft.txt'
if os.path.exists(path):
    os.remove(path)

os.rename(src,dst)
"""
src旧名字,dst新名字。rename()方法重命名目录时,只能修改最后一级的目录名称,否则抛出异常。
"""

os.rmdir(path) # 删除空目录
os.rmdir("C:\\demo\\test\\dir\\mr") #执行后,将删除C:\demo\test\dir目录下的mr目录。
import shutil
shutil.rmtree("C:\\demo\\test") # 删除C:\demo目录下的test子目录及其内容。
"""
rmdir()函数只能删除空目录,如果想要删除非空目录,则需要使用shutil模块的rmtree函数。
"""
os.mkdir(path,mode=0o777) # 创建一级目录  mode:用于指定数值模式,默认值为0777,该参数在非Unix系统上无效或者被忽略。
os.makedirs(path,mode=0o777)# 创建多级目录
os.makedirs("C:\\demo\\test\\dir\\mr")

经验总结

# 判断列表a是否为空最好的方法就是
if a:
    print('非空')
else:
    print('空')
# 1、数字0:false 其他:true
# 2、[]:false, 非空:True 
posted @ 2021-09-19 15:01  kopok  阅读(84)  评论(0编辑  收藏  举报