Skip to content

Python 基础

约 545 个字 14 行代码 预计阅读时间 2 分钟

基础语法

Python 的语法比较简单,以至于被称作“可以运行的伪代码”,基础知识去菜鸟教程上看看就差不多了,实战中Python有大量且好用的第三方库,大约目前有六万多个,常用的当然没有这么多。使用Python一段时间之后,便可以根据已有知识,尝试正确地猜出新功能的作用。

输入输出

2种键盘输入的方式: 1. 运行时从键盘输入,最常用map(int,input().split()) 2. 运行时数据跟在程序名称后面(命令行参数),形如python.exe test.py 1 2

可以用eval对输入进行处理,这样可以一次性处理不同类型,因为eval可以执行任何代码,但是这么做的风险其实很大,终归是任意代码执行(

格式化字符串

Python输出格式控制:可以用sep指定分隔符,end指定换行符 * 旧式格式化,类似于C:print("%d %f" %(10,20.0)) * 格式化字符串:print('{0:*<10.2f} + {} = {}'.format(x,y,x+y)) * f-string(3.6+新语法):print(f'Name: {name:*^10}, Age: {age:.2f}')

一些知识点备忘

  • 反转列表、字符串等s[::-1],也可以用reverse
  • if __name__ == '__main__'用来判断当前文件是否被作为主程序运行。__name__是一个内置变量,用来表示当前模块的名字。当一个 Python 文件被直接运行时,__name__ 的值会被设为 __main__,而当这个文件被作为模块导入时,__name__ 的值则为模块名。
  • dir可以查看一个模块中有哪些功能,而help可以查看一个方法的功能

Python的风格

Note

首先就可以问个问题,为什么len不是方法

点击展开,回答仅供参考 首先要意识到 len 不是方法,理由是平时都是 len(x) ,而不是 x.len() 。 至于为什么,大概是因为它很常用,所以经过了特殊处理,已经可以算是Python内置的运算符了。

Python可以被视为一个框架,解释器会调用特殊的方法(即魔术方法)来执行基本对象操作,特殊方法两端都有下划线,也被称作魔术方法,这些方法是无法自己实现的,因为它们是给解释器用的,绝大部分时候特殊方法都是隐式调用的,比如for i in x:其实会调用iter(x),接着调用x.__getitem__,唯一的例外是__init__方法,它是用于类的初始化。特殊的方法可以用于类的实现,避免反复造轮子,并且标准库的实现显然比你的实现更高效,所以要优先选择标准库。

例如定义一个二维向量,非C++的可变长数组,就是单纯线性代数中的向量

import math
class Vector:
    def __init__(self,x=0,y=0):
        self.x=x
        self.y=y

    # 返回字符串形式,Python的习惯是前后加__
    def __repr__(self):
        return f'Vector({self.x!r},{self.y!r})'

    def __ads__(self):
        return math.hypot(self.x,self.y)

    def __bool__(self):
        return bool(abs(self))

    def __add__(self,other):
        x = self.x + other.x
        y = self.y + other.y
        return Vector(x,y)
    def __mul__(self,scalar):
        return Vector(self.x*scalar,self.y*scalar)