1. 迭代器和生成器的区别?
生成器是一种特殊的迭代器。它使用更简洁的语法定义,并且在需要时按需生成数据,具有惰性求值的特点。
迭代器是一种通用的遍历对象的方式,可以通过手动实现__iter__()
和__next__()
方法来创建。
2. 什么是生成器?
在Python编程语言中,生成器是一种特殊的迭代器。它是一种使用函数来创建迭代器的方式,使用yield关键字来定义生成器函数
生成器和普通函数不同之处 生成器函数不会一次性返回所有的结果,而是在每次迭代时生成一个值。这样可以大大节省内存空间,特别适用于处理大型数据集或无限序列
3. 什么是迭代器?
在 Python 中,迭代器是一种用于遍历可迭代对象(Iterable)的对象。迭代器是一种特定的对象,它具有__iter__()
和__next__()
方法。
4. 自定义上下文输出
class M:
# 初始化方法
def __init__(self, name):
self.name = name
# __enter__(self) 和 __exit__(self, exc_type, exc_value, traceback):
# 用于创建上下文管理器的魔法方法。它们允许你在使用 with 语句时定义对象的进入和退出行为,通常用于资源管理和异常处理。
def __enter__(self):
self.abc = open(self.name, "w")
return self.abc
def __exit__(self, exc_type, exc_val, exc_tb):
if self.abc:
self.abc.close()
# 使用自定义的上下文
with M("hello.txt") as f:
f.write("hello, word!!!")
5. 自定义异常
# 这段代码定义了一个自定义异常类CustomException,并在函数a()中抛出该异常。然后通过try-except语句捕获并处理该异常。
class CustomException(Exception):
def __init__(self, message):
self.message = message
def __str__(self):
return f"Custom Exception: {self.message}"
def a():
raise CustomException("Something went wrong.")
try:
a()
except CustomException as e:
print(e)
6. 上下文作用?
在 Python 中,上下文指的是一段代码的执行环境,它可以提供一些额外的功能和控制,用于管理资源的获取和释放。上下文通常使用with
语句来创建,并依赖于上下文管理器对象的支持。
作用:资源管理:上下文可以用于自动管理资源的获取和释放
7. python魔法方法使用
class MyClass:
# 1. __init__(self, ...): 初始化方法,在创建对象时调用。
def __init__(self, name):
self.name = name
self.index = 0
# 2. __iter__(self): 返回对象的迭代器
def __iter__(self):
return self
# 3. __str__(self): 返回对象的字符串表示。
def __str__(self):
return f"MyClass object: {self.name}"
# 4. __len__(self): 返回对象的长度。
def __len__(self):
return len(self.name)
# 5. __getitem__(self, key): 获取对象的索引或键对应的值。
def __getitem__(self, index):
return self.name[index]
# 6. __setitem__(self, key, value): 设置对象的索引或键对应的值。
def __setitem__(self, index, value):
self.name[index] = value
# 7. __delitem__(self, key): 删除对象的索引或键对应的值。
def __delitem__(self, index):
del self.name[index]
# 8. __next__(self): 迭代器的下一个元素
def __next__(self):
if self.index >= len(self.name):
raise StopIteration
else:
a = self.name[self.index]
self.index += 1
return a
# 9. __call__(self, ...): 将对象作为函数调用。
def __call__(self, a, b):
return a + b
obj = MyClass([1, 2, 3, 4, 5])
print(obj)
print(len(obj))
print(obj[3])
obj[2] = 10
print(obj.name)
del obj[1]
print(obj)
for i in obj:
print(i)
print(obj(9, 10))
8. 内置方法使用
len: 返回对象的长度或元素个数
max:找最大值
min:找最小值
type: 返回对象的类型
print: 将对象输出到控制台
sum:求和
abs:求绝对值
str: 将对象转换为字符串形式
9. 使用windows操作系统自带的字体
在文件夹搜索:C:/Windows/Fonts/
然后选择你想使用的字体
10. 用python对excl文件操作
import pandas as pd # 导入pandas库 pip install pandas下载
ff = pd.read_excel("123.xlsx")
for i, j in ff.iterrows():
print(j[0], j[1]) # 所有姓名,成绩