Python基础

Python是一种解释型脚本语言,简单来讲就是不需要编译

  • You: 编译是什么意思?
  • Me: 编译就是把源代码(人看的)转化为机器能理解的语言
  • You: 那Python不编译,机器怎么理解
  • Me: 所以叫解释型语言啊,简单来讲就是需要一个解释器(Interpreter)翻译给机器看
  • You: 还有…
  • Me: 打住,这里我只想给自己做个笔记,方便自己翻阅,并没有想写教程,另外,文章内容针对Python3

基本语法

  • 使用缩进来划分语句块,注意缩进空格数
  • 多行语句通过反斜杠实现(\), 括号内的多行语句不需要反斜杠
  • 复合赋值,a, b = b, a+b
  • Python中没有 switch...case 语句
  • Python中没有 do...while 循环
  • Python中有 while...else
  • pass 是空语句
  • 基本数据类型
    • 数字: int, bool, float, complex
    • 字符串:str
      • 单引号和双引号完全相同, 三引号可以实现多行字符串
      • 反斜杠(\)为转义符,使用r可以让反斜杠不发生转义。如:r"\" == “\\”
      • +可以直接连接,*实现重复
      • 负索引 a[-1] 即最后一个元素
      • 字符串不能改变
      • 没有单独的字符类型
      • 字符串截取 str[start:end:step],注意是 <end 而不是 <=end,左闭右开原则
      • 字符串格式化:print("I %s you %d times!" % ('love', 3000)) 或者 print('I {} you {} times!'.format('love', 3000))
    • 列表:list
      • 列表中元素类型可以不同
      • [] 之间,, 隔开(和Matlab不同,不能是空格或者 ;
      • 可负索引,+代表连接,*实现重复,可被截取
      • 列表元素可更改
      • 列表推导式:从序列创建列表,将一些操作应用于某个序列的每个元素,用其获得的结果作为生成新列表的元素 new = [3*x for x in vec] or new = [3*x for x in vec if x > 3]
    • 元祖:tuple
      • 与列表类似,但元祖元素在小括号()内,,隔开,元素不可更改
      • 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用,tup = (1,)
    • 字典:dict
      • 元素在{}之间,是键 (key): 值 (value) 的集合
      • 通过键来存取
      • 键必须唯一且不可变
    • 集合:set
      • 无序的不重复元素序列,可以使用大括号 { } 或者 set() 函数创建集合
      • 创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典的
  • 数据类型转换
    • 以数据类型为函数名, 如 int(3.14)
  • 遍历
    • 字典:使用 item() 可以同时解读关键字和对应的值 for k, v in knights.items():
    • 序列:使用 enumerate() 可以同时索引位置和对应的值 for i, v in enumerate(['tic', 'tac', 'toe']):
    • 同时遍历两个或更多的序列,可以使用 zip() 组合 for q, a in zip(questions, answers):

运算

  • 除法:/ 返回浮点数, // 返回整数
  • % 取模,除法余数
  • ** 幂运算,如 2**3 即2的3次方
  • 混合运算,整型会转换为浮点型
  • 逻辑运算符:and, or, not
  • 成员运算符:in, not in
  • 身份运算符:is, is not

常用数学函数

函数描述
abs(x)返回绝对值
ceil(x)向上取整
floor(x)向下取整
round(x)四舍五入
exp(x)求e的x次幂
log(x)求x的自然对数
pow(x, y)x的y次方
sqrt(x)求x的平方根
max(lst)最大值
min(lst)最小值
random()生成[0, 1)范围内的一个实数
uniform(x, y)生成[x, y]范围内的一个实数
seed([x])改变随机数生成器的种子seed
shuffle(lst)将序列的所有元素随机排序

常用内建函数

数据类型函数或方法
字符串 strlen()
split()
joint()
列表 listlen()
max()
min()
list.append()
list.insert()
list.pop()
list.remove()
元组 tuplelen()
字典 dictlen()
集合 setlen()
s.add()
s.remove()
s.discard()

迭代器与生成器

迭代是Python最强大的功能之一,是访问集合元素的一种方式。
迭代器是一个可以记住遍历的位置的对象,从集合的第一个元素开始访问,直到所有的元素被访问完结束。
迭代器有两个基本的方法:iter()next()

把自定义的类作为迭代器使用需要在类中实现两个方法:__iter()____next()__
StopIteration 异常用于标识迭代的完成,防止出现无限循环的情况

使用了 yield 的函数被称为生成器(generator),生成器是一个返回迭代器的函数,只能用于迭代操作。
在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行

函数

  • 参数传递:python中一切都是对象,所以严格来讲,没有传值或者引用调用,通常说传可变对象不可变对象。可变对象:list, dict等。不可变对象:string, tuple, number等
  • Python 中只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域

模块

**模块(module)**就是一个python文件(.py),模块可被导入,可被直接运行,通过__name()__属性来区分,其值为'__main__'时,表示模块自身运行,否则为被引入。

包(package): 管理 Python 模块。是一个目录,必须包含__init__.py文件

错误和异常

try...except
try...except...else

面向对象

类和对象
成员变量和方法
继承和方法重写
公有和私有

Python标准库

os模块提供与操作系统相关联的函数
shutil模块提供针对日常的文件和目录管理任务

glob模块提供了一个函数用于从目录通配符搜索中生成文件列表

sys模块

re模块为高级字符串处理提供了正则表达式工具
math模块为浮点运算提供了对底层C函数库的访问
random提供了生成随机数的工具

urllib.request 用于处理从 urls 接收的数据
smtplib 用于发送电子邮件

datetime模块为日期和时间处理同时提供了简单和复杂的方法

未完待续…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值