上下文管理器 读写文件时,如果一个文件被打开,且未被正常关闭,可能会出现一些意想不到的结果。 Python提供了上下文管理器的机制来解决这个问题,它通常与关键字with一起使用。对于上面的例子,用with语句调用的方式为: with <expression>: <statements> with open('my_file', 'w'…
装饰器 基础用法 以函数作为参数,并且返回一个新函数的函数是一个装饰器: 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 …
迭代器与生成器 迭代器 可迭代对象可以在 for 循环中使用: x = [2, 4, 6] for n in x: print(n) 2 4 6 之所以可以被for循环迭代,是因为这些对象拥有一个迭代器,可以用.__iter__()方法获得: x.__iter__() 一个迭代器需要满足两个条件: .__iter__()方法返回自身 .__next__()方法返回下一个迭代值,当迭代完成后,抛出一…
异常与警告 异常 写代码的时候,出现错误必不可免。 看下面这段代码: import math while True: text = input('> ') if text[0] == 'q': break x = float(text) y = math.log10(x) print(f"log10({x}) = {y}") 这段代…
文件读写 写入测试文件: %%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…
模块和包 模块 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)…
函数 定义函数 函数,通常接受输入参数,并有返回值。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。 def add(x, y): """Add two numbers""" a = x + y return a 函数通常有一下几个特征: 使用 def 关键词来定义一个函数。 def 后面是函数的名称,括号中是函数的参数,不…