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)