• python闭包的作用

    作用 1、共享变量时避免使用了不安全的全局变量 2、允许将函数与某些数据关联起来,类似于简化版面向对象编程 3、相同代码每次生成的闭包,其延伸的作用域都彼此独立 4、函数的一部分行为在编写时无法预知,需要动态实现,同时又想保持接口的一致性 5、较低的内存开销,类的生命周期远大于闭包 6、实现装饰器 实例 def print_msg():     # print_msg 是外围函数     msg = “zen of python”     def printer():         # pri…

    影音 2021年6月24日
  • python如何实现Stack

    说明 1、栈是线性数据结构,其特点是元素的增加和删除都是入栈和弹栈的形式(遵循先进后出或后进先出的原则。 2、stack可以使用python内置的list实现,因为list是属于线性数组,在末尾插入和删除一个元素所使用的时间都是O(1),这非常符合stack的要求。当然,也可以使用链表来实现。 实例 class Stack(object):     def __init__(self):         self.items = []       def is_empty(self):     …

    影音 2021年6月24日
  • Python中tail -f如何实现

    说明 1、tail-f默认先读取最后10行数据,然后从文件末尾读取实时数据。如果是小文件,可以先读取所有文件内容,输出最后10行。 2、读取全文后获取最后10行的性能并不高,后滚10行的边界条件也很复杂。先获取全文,再得到最后10行的实现。 实例 import time import sys   from typing import Callable, NoReturn     class Tail(object):     def __init__(             self,    …

    影音 2021年6月24日
  • python三种流程控制的语句

    1、顺序流程控制 按照代码顺序执行。 import math pi = 3.14 r = float(input(‘input r = ‘)) S = pi * r**2 C = 2 * pi * r print(f’半径为{r}cm的圆的周长为{C}, 面积为{S}’) 2、分支流程控制 if-elif-else语句: if 条件1:     action1 elif 条件2:     action2 else 条件3: action3 3、循环流程控制 while循环语句语法结构 while…

    影音 2021年6月24日
  • python异常的捕捉和补救

    1、捕捉特定异常 第一个符合条件的except语句会被执行,用于报告错误。如果仅仅是报告错误,程序依然会停止。 a = 0 try:     b = 5/a except ZeroDivisionError:     print(‘Error: a不能为0’) except ValueError:     print(‘Error: 传入参数无效’) 2、捕捉所有异常 except语句后面Exception表示捕获任何异常类型。 a = 0 try:     b = 5/a except Exc…

    影音 2021年6月24日
  • python如何输入数据类型检查

    说明 1、数据类型检测可以使用内置函数isinstance()来实现。 2、内置函数isinstance有两个参数,第一个参数是需要检测的对象,第二个参数是对象类型,可以是单一类型,也可以是元组,返回bool类型。 实例 def my_abs(x):      if not isinstance(x, (int, float)):         raise  TypeError(‘bad operand type’)      if x>=0:         return x     …

    影音 2021年6月24日
  • python coroutine的运行过程

    说明 1、先调用函数获取生成器对象,再调用next方法或send(None)方法打开coroutine。 2、打开后,函数执行到yield位置,返回yield后挂起,把控制流交回主线程。再调用send法时,可以传输数据并激活协程,继续执行到最后或下一个yield语句。 实例 “”” # BEGIN CORO_AVERAGER_TEST     >>> coro_avg = averager()  # <1>     >>> next(coro_av…

    影音 2021年6月24日
  • python Future的两种使用

    1、通过submit提交任务创建获得任务的future对象,通过as_completed等待future对象结束,获得结果。as_completed接收future对象的迭代器。 with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:     # Start the load operations and mark each future with its URL     future_to_url = {ex…

    影音 2021年6月24日
  • python else在循环语句执行的情况

    1、当循环体没有执行break的时候,即循环体正常结束。 print(“两次输入机会”) for i in range(2):     num = int(input(“请输入一个数字:”))     if 10 == num:         print(“10 == num,触发break,不会执行else子句”)         break else:     print(“循环体没有执行break语句,执行else子句”) print(“程序结束”) 当没有触发break时,执行else…

    影音 2021年6月24日
  • python爬虫采集遇到的问题及解决

     1、编码问题。 网站目前最多的两种编码:utf-8,或者gbk,当我们采集回来源网站编码和我们数据库存储的编码不一致时,比如http://163.com的编码使用的是gbk,而我们需要存储的是utf-8编码的数据,那么我们可以使用Python中提供的encode()和decode()方法进行转换,比如:content = content.decode(‘gbk’, ‘ignore’)   #将gbk编码转为unicode编码。 content = content.encode(‘utf-8’,…

    影音 2021年6月24日