蜗牛一步一步地往上爬的Python学习记录

前言

第一,绝对不断更;
第二,绝对认真写;
第三,绝对撰写的公正漂亮,记录机器人小蜓蜻队长前来觐见!
这场回顾知识时战,由我来做裁判~

简介

1、简介

  • 解释型语言
    • 运行速度慢(相较于编译型语言而言,解释型语言在执行时会先翻译为机器码)
  • 定位:优雅、明确、简单
    • 尽量写少、容易看懂的代码
  • 目前有2个版本,2.x和3.x,他们不兼容哦(貌似2.x已经停止更新迭代了,建议直接从3.x入手学习~)

2、优点

  • 高级编程语言,入门so easy~
  • Python提供了非常完善的基础库
  • 除了内置库,还有大量的第三方库(即他人开发)

3、使用场景

  • 网站(如YouTube、豆瓣)
  • 脚本
  • 游戏
  • 自动化测试🥳
  • …再补充

基础知识

❗️基础知识 仅适合有编程基础的人看,建议想快速学习的人 直接找相关视频看(由于语法知识太多啦,笔者只想简写一下,一是为了现在重新回顾学习,二是为了日后长时间没有接触Python时能有一个笔记回顾 快速记忆~

  • 注释#
  • 大小写敏感
  • 严格缩进
  • pass语句->占位符
  • a, b = b, a

类型变量

  • 整数
    • 相较于Java,Python对整数的存储长度没有大小限制✅
  • 浮点数
    • 也没有大小限制,但是超出计算机可以表示的浮点数的最大范围就表示为inf(无限大)
    • -inf < 任何数 < +inf✅
  • 字符串
    • ‘aaa’、"aaa"皆可
    • 和Java一样,是不可变对象~✅
  • 布尔值
    • True、False
  • 空值
    • None;注意0并不是控制哟✅
  • 列表list
    • 有序集合
    • 里面的元素类型允许不同✅
    • x = [‘aa’, True]
      • len(x)
      • x[0]取出第一个值
      • x[-1]取出最后一个值
      • x.append(‘ccc’)
      • x.pop()删除末尾元素
      • x[0] = 'aaa’直接替换列表中的所有元素
      • [‘aa’, ['ccc]]就可以看为二维数组~
  • 字典dict
    • 在Java中被称为Map;无序
    • key - value形式存储
    • y = {‘k1’ : v1, ‘kk’ : v2}
    • 查询快(利用索引)✅
    • key唯一
    • 取值y.get(‘k1’)
    • 删除y.pop(‘k1’)
  • 元组tuple
    • z = (‘aa’, ‘bbb’)
    • 有序列表,但是一旦初始化变不可以修改,因为不可变所有代码更安全;但是若z = (‘aa’, x),x是上面列表,它里面的值是可以变的噢
  • 集合set
    • s = set([‘aaa’,‘bbb’,‘bbb’]),入参必须提供list,出参为{‘aaa’,‘bbb’}
    • 对内部元素去重处理
    • s.add(key)增
    • s.remove(key)删
    • 两个集合可以做交集、并集~✅

高级特性

  • 切片
    • Python没有针对字符串的截取函数,只需要切片就搞定啦
    • 针对list和tuple
      • l[:2]、l[10:20]、l[:10:2]、l[::2]、l[:]、
  • 迭代
    • for循环遍历
  • 列表生成式
    • 简单而强大的创建list
    • 譬如:[x * x for x in range(1,10) if x%3 == 0] 、[m + n for m in ‘abc’ for n in ‘xyz’]
    • 列出目录下所有的文件和目录名:[d for d in os.listdir(’.’)]
  • 生成器generator
    • 一遍循环一遍计算的机制
    • 创建一个generator方法
      • 将一个列表生成式的[]转为()
      • 与函数一步之遥,函数遇到return语句结束,而generator遇到yield语句结束
    • 基本不用next()取值,而是for循环取值
  • 迭代器iterator
    • 可以被next()调用,并不断返回下一个值的对象,称为iterator
    • 可用于for循环的都是可迭代对象Iterable;如list、dist、str
    • 可用于next()的对象都是iterator;
    • 但是Iterable可通过iter()获得一个iterator;iter(‘aa’)

函数式编程

  • 函数参数类型错误 - Python解释器无法检查出来
  • 支持返回多个值,实际上是一个tuple
  • 函数本身也可以赋值给变量f = abs

高阶函数

  • 一个函数可以接收另一个函数作为参数,该函数被称为高阶函数。
    • map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回;
      • 如map(func名,[Iterable是入参函数的参数])
    • reduce(f,[l1,l2,l3])把结果继续和下一个元素做累计运算;
      • 即f(f(l1,l2),l3)
    • filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素;
      • 如list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])) => 结果: [1, 5, 9, 15]
    • sorted()函数就可以对list进行排序;
      • 如sorted([36, 5, -12, 9, -21], key=abs)

偏函数

  • 当函数的参数个数太多,需要简化时,使用functools.partial可以创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用时更简单。
    • import functools
    • int2 = functools.partial(int, base=2)
    • int2(‘1000000’) => 64

装饰器decorator

  • 在代码运行期间动态增加功能的方法
@xxx函数名
def test_func():
	pass

匿名函数

  • 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果
  • 关键字lambda表示匿名函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值