年度归档: 2024 年

1107 篇文章

026、变量作用域
变量作用域 函数外部定义的变量可以在函数里面使用、修改和重新赋值,这涉及到Python中变量作用域的问题。 变量作用域(Variable Scope)是指变量的有效生存空间。 在函数中,Python会按照以下顺序,在各个作用域的命名空间中寻找变量: 函数局部作用域(Local Function Scope)。 闭包作用域(Enclosing Scope)。 全局作用域(Global Scope)。…
025、上下文管理器
上下文管理器 读写文件时,如果一个文件被打开,且未被正常关闭,可能会出现一些意想不到的结果。 Python提供了上下文管理器的机制来解决这个问题,它通常与关键字with一起使用。对于上面的例子,用with语句调用的方式为: with <expression>: <statements> with open('my_file', 'w'…
024、装饰器
装饰器 基础用法 以函数作为参数,并且返回一个新函数的函数是一个装饰器: def dec(f): print(f'I am decorating function {f.__name__}') return f dec(len) I am decorating function len 装饰器可以在函数定义时用@调用: @dec def add(x, y): return x …
023、迭代器与生成器
迭代器与生成器 迭代器 可迭代对象可以在 for 循环中使用: x = [2, 4, 6] for n in x: print(n) 2 4 6 之所以可以被for循环迭代,是因为这些对象拥有一个迭代器,可以用.__iter__()方法获得: x.__iter__() 一个迭代器需要满足两个条件: .__iter__()方法返回自身 .__next__()方法返回下一个迭代值,当迭代完成后,抛出一…
022、函数进阶
函数进阶 函数的参数传递 Python的函数采用了引用传递的方法,即传递参数时,并不复制一份参数的内容,而是将参数的引用传递给函数。 例如: def f(x): return id(x) a = 1.2 id(a) 4485901776 f(a) 4485901776 函数f(a)的返回值与a的内存地址是一致的。这表示,当函数f()被调用时,Python并没有将a的值复制一份传给参数x,而是让参数…
021、常用内置函数
常用内置函数 数值相关 绝对值abs(): abs(-1.2) 1.2 abs(3 + 4j) 5.0 商和余数的计算divmod()函数: divmod(12, 5) (2, 2) divmod(2.3, 0.5) (4.0, 0.2999999999999998) 幂的计算pow()函数: pow(2, 50) 1125899906842624 还可以给定第三个参数,计算幂次模第三个参数的结果…
020、异常与警告
异常与警告 异常 写代码的时候,出现错误必不可免。 看下面这段代码: import math while True: text = input('> ') if text[0] == 'q': break x = float(text) y = math.log10(x) print(f"log10({x}) = {y}") 这段代…
019、文件读写
文件读写 写入测试文件: %%writefile test.txt this is a test file. hello world! python is good! today is a good day. Writing test.txt 读文件 使用 open() 函数来读文件,使用文件名的字符串作为输入参数: f = open('test.txt') 可以使用 .rea…
018、模块和包
模块和包 模块 Python会将所有 .py 结尾的文件认定为Python代码文件。 考虑这样一个脚本文件 ex1.py: %%writefile ex1.py PI = 3.1416 def sum(lst): tot = lst[0] for value in lst[1:]: tot = tot + value return tot w = [0, 1, 2, 3] print(sum(w)…
017、函数
函数 定义函数 函数,通常接受输入参数,并有返回值。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。 def add(x, y): """Add two numbers""" a = x + y return a 函数通常有一下几个特征: 使用 def 关键词来定义一个函数。 def 后面是函数的名称,括号中是函数的参数,不…