博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python学习手册
阅读量:4358 次
发布时间:2019-06-07

本文共 2140 字,大约阅读时间需要 7 分钟。

基础

概念

  • 源码编译为字节码,解释器解释字节码
  • CPython是python标准实现方式,Jython将源码编译为java字节码,运行在JVM上
  • 优点:快速开发,灵活的核心数据类型,优美的缩进语法,垃圾回收
  • 应用领域:测试框架,人工智能神经网络,自然语言分析,系统编成,图形界面

导入模块

  • 模块文件名(.py)是python最小命名空间
  • import
    1. import mymodule
    2. import模块的属性作用域属于模块
    3. 相同导入只运行一次,不支持热加载
  • from import
    1. from mymodule import title
    2. 把属性/函数从mymodule模块复制到当前模块,会覆盖当前同名属性,在我看来这提供了OOP的继承概念
    3. 相同导入只运行一次,不支持热加载
  • reload函数
    1. from imp import reload
    2. reload(mymodule)
    3. 每次都回重新导入模块,实现热加载
    4. reload不可传递,被重新导入的模块中导入的模块不会被重新导入
    5. reload不是那么优美,我们有更优美的选项(IDLE,系统命令行)来实现热加载和热部署
  • exec
    1. exec(open('mymodule.py').read())
    2. 可以理解为将代码嵌入到当前,会覆盖同名属性
    3. 执行模块最新版本
    4. 太丑陋了,建议舍弃这种方式

IDLE

语法

数据类型

  • python不会在表达式中转换数据类型,需要手动转换
  • 数字,字符串和元组不可变
  • 集合可以去重复
  • 十进制数(固定精度浮点数),分数可用于解决浮点数的精度问题
  • 序列操作
    1. S = 'Spam'
    2. S[0] : 'S'
    3. S[-1] : 'm'
    4. S[len(S)-1] : 'm'
    5. S[0:3] : 'Spa'
    6. S[:] : 'Spam'
    7. S*2 : 'SpamSpam'
  • 列表解析表达式
    1. M = [[1,2,3],[4,5,6],[7,8,9]]
    2. [row[1] + 1 for row in M if row[1]%2 == 0] : [3,9]
    3. 解析表达式还可以用于创建列表,生成器,集合,字典这些对象,in成员关系测试,if测试
    4. 任何列表解析表达式都可以用for/if等代替,然而在python中请首先考虑更优美的列表解析表达式
  • 可作用于多种类型的通用操作都是以内置函数或者表达式的形式出现
  • python支持任何数据类型的嵌套组合
  • 操作符
    1. X & Y : 交集
    2. X | Y : 并集
    3. X - Y : 差集
  • 注意*号的使用

优美的缩进语法

  • 终止行就是终止语句,;是特殊情况的第二选择
  • 复合语句/代码块用:和缩进,缩进的结束就是代码块的结束
  • 复合语句可以写在:后面作为一行。单行语句通过各种括号可以在多行书写

内置函数/模块函数/对象函数

常用

  • print(s,b,a)
  • dir(s)和 help(str.replace) : --help
  • input('s')
  • rang(3) : [0,1,2] 常与for循环合用
  • zip(list1,list1)/zip() : 常与for循环合用,也可与dist合用构建字典
  • enumerate(str) : 在循环中获取index
  • next(collection)
  • ite = iter(list) : 获取迭代器, ite.next()
  • sorted(d)
  • filter()
  • reduce()
  • join()
  • tuple()
  • yield
  • zip,range,map,filter,字典的keys/values等都返回的是迭代器(3.0),而不是列表(2.6),这样节约了内存
  • 像range对象这样需要用iter函数生成迭代器,支持多个迭代器同时使用,而其他直接可以迭代的对象不支持多个迭代器

数字/字符串操作

  • math : 数字模块
  • random :随机数模块
  • re : 模式匹配/正则
  • str(s)
  • int(s)
  • len(s)
  • ord('\n\r\0') : ASCII码
  • str.find('pa')
  • str.replace('pa','xy')
  • str.split(',')
  • str.upper()
  • str.isalpha()
  • str.isdigit()
  • str.rstrip()
  • '%s, eggs %s' % ('a','b') 或者 '{0}, eggs {1}'.format('a','b')

列表/字典/元组/集合

  • list(keys)
  • list.append('a')
  • list.pop(2) / del list[2] : 删除
  • list.sort() : 排序
  • list.reverse() : 反转
  • dist.keys
  • dist.get('a',0) : 默认0
  • t.index('a')
  • t.count('a')
  • set('a')
  • dist(zip(keys,values))

文件

  • 模式: w/r
  • f = open(path, 'w')
  • f.write(s)
  • f.close()
  • text = f.read()
  • f.readline()
  • f.seek()

转载于:https://www.cnblogs.com/judesheng/p/10622366.html

你可能感兴趣的文章
Xmind?
查看>>
spring+quartz 实现定时任务三
查看>>
day2-三级菜单
查看>>
linux下升级4.5.1版本gcc
查看>>
Beanutils
查看>>
FastJson
查看>>
excel4j
查看>>
Thread
查看>>
char * 与char []探究理解
查看>>
QT窗体显示在屏幕中间位置
查看>>
emmet使用技巧
查看>>
RPC-Thrift(二)
查看>>
MSSQL for Linux 安装指南
查看>>
【Golang 接口自动化08】使用标准库httptest完成HTTP请求的Mock测试
查看>>
前端必读:浏览器内部工作原理
查看>>
Uri、URL和URN三者的区别
查看>>
数据字典的转换
查看>>
二维数组按照指定的字段排序的函数
查看>>
linux安装Mac的默认Monaco字体
查看>>
java语言的特点
查看>>