曹阳的博客 仅用于学习和分享

章鱼-Python基础

1998-01-13

1.1 Python入门

Python简介

  1. 什么是Python Python是一门跨平台、开源、免费的的解释型高级动态编程语言。
    胶水语言、命令式、函数式、支持面向对象程序设计、有大量扩展库。

  2. 重要网站

Python官网

Python官方文档

问题列表

使互联网更安全

堆栈溢出

  1. Python开发环境 IDLE、Eclipse+PyDev、PyCharm、IPython、PythonWin、Anaconda3、zwPython

Python的安装和简单使用

  1. 下载python源码包并解压
     view plain copy
     cd ~  
     wget http://192.168.1.100:60000/allfiles/python_tools/Python-3.6.4.tgz  
     tar -zxf Python-3.6.4.tgz
    
  2. 下载zlib1g-dev依赖包并安装
     view plain copy
     wget http://192.168.1.100:60000/allfiles/python_tools/zlib1g-dev_1.2.8.dfsg-2ubuntu4.1_amd64.deb  
     sudo dpkg -i zlib1g-dev_1.2.8.dfsg-2ubuntu4.1_amd64.deb
    
  3. 下载zlibc依赖包并安装
     view plain copy
     wget http://192.168.1.100:60000/allfiles/python_tools/zlibc_0.9k-4.1_amd64.deb  
     sudo dpkg -i zlibc_0.9k-4.1_amd64.deb
    
  4. 创建python存放目录
     view plain copy
     sudo mkdir /usr/local/python3
    
  5. 配置
     view plain copy
     cd Python-3.6.4  
     ./configure --prefix=/usr/local/python3
    
  6. 编译
     view plain copy
     sudo make
    
  7. 安装
     view plain copy
     sudo make install
    
  8. 测试解释器
     view plain copy
     /usr/local/python3/bin/python3
    

Python代码规范

  1. 缩进:类定义、函数定义、选择结构、循环结构,行尾的冒号表示缩进的开始,4个空格为基本缩进单位
  2. 注释:#"""..."""'''...'''
  3. 每个import语句只导入一个模块
  4. 如果一行语句太长,可以在行尾加上续行符\来换行分成多行,但是更建议使用括号来包含多行内容
  5. 必要的空格和换行:
    运算符两侧,逗号后面建议加一个空格
    不通过功能的代码块之间、不同函数定义之间建议增加一个空行以增加可读性
  6. 适当使用异常处理结构进行容错
  7. 软件应具有较强的可测试性,测试与开发齐头并进

Python文件后缀名

  1. .py:Python源文件,由Python解释器负责解释执行
  2. .pyw:Python源文件,常用于图形界面程序文件
  3. .pyc:Python字节码文件,可用于隐藏Python源代码和提高运行速度

Python脚本的”name“属性

  1. 每个Python脚本在运行时都有一个__name__属性
    如果脚本作为模块被导入,则其属性值被自动设置为模块名
    如果脚本独立运行,则其属性值被自动设置为__main__
  2. 利用__name__属性可控制Python程序的运行方式
    例如:编写一个包含大量可被其他程序利用的函数模块,而不希望改模块直接运行,可以在程序中添加
     if __name__ == '__main__':
         print('Please use me as a module')
    

1.2 变量和数据类型

Python变量

  1. Java和C中的变量是内存中分配的一个区域,用于存储特定类型的数据,Python中的变量只是一个变量名,不分配内存区域,也没有指定类型,赋值时,只是将变量名指向了目标对象
  2. 不需要事先声明变量名及其类型
  3. 强类型编程语言、动态类型语言
  4. Python采用的是基于值的内存管理方式,如果为不同变量赋值为相同值,这个值在内存中只有一份,多个变量指向同一块内存地址
  5. Python中的变量并不直接存储值,而是存储值的内存地址或者引用,这也是说变量类型可以随时改变的原因
  6. Python具有自动内存管理功能,对于没有任何变量指向的值,Python自动将其删除
  7. 可以使用del命令显式删除不需要的值或不再需要访问的资源
    Python在线编辑器

变量命名规则

  1. 必须以字母或下划线开头
  2. 变量名中不能有空格及标点符号
  3. 大小写敏感
  4. 不建议采用系统模块、类型、函数名命名
  5. 不能使用关键字
     import keyword
     print(keyword.kelist)
    

基本数据类型

  1. 数字
    整数int:十进制、十六进制0x、八进制0o、二进制0b
    浮点数float
    布尔值boolean
    复数complex
     a=3+4j
     a.real  #查看复数实部
     a.imag  #查看复数虚部
     a.conjugate  #返回共轭复数
    
  2. 字符串
    转义字符

    input()函数返回的结果是字符串

  3. 列表
  4. 元组
  5. 集合
  6. 字典

Python迭代器和生成器

Python生成器

  1. 在Python中,一边循环一边计算的机制,称为生成器:generator
  2. 生成器推导式的结果是一个生成器对象。使用生成器对象的元素时,可以根据需要将其转化为列表或元组,也可以使用生成器对象__next__()方法或内置函数next()进行遍历,或直接将其作为迭代器对象来使用
  3. 使用for循环直接迭代生成器对象中的元素
  4. 生成器对象具有惰性求值的特点,节约资源
  5. 不管用哪种方法访问生成器对象,都无法再次访问已访问过的元素
  6. 在运行中产生值,且不会被保存,生成器不能重复使用,只能再定义一个生成器
  7. 生成器是一种特殊的迭代器,可“凭空造数据”
  8. 生成器不支持索引和切片操作
  9. 在 Python 中,使用了 yield 的函数被称为生成器(generator),生成器是一个返回迭代器的函数,只能用于迭代操作。

迭代

  1. 如果给定一个list或tuple,我们可以通过for循环来遍历,这种遍历我们称为迭代(Iteration),在Python中,迭代是通过for...in来完成的
  2. 只要是可迭代对象,无论有无下标都可以迭代
    比如dict就可以迭代:默认情况下迭代key
    迭代value:for value in d.values()
    迭代key和value:for k,v in d.items()
  3. 判断一个对象是否可以迭代
     from collection import Iterable
     isinstance('abc',Iterable)  # str是否可以迭代
    

迭代器

  1. 可直接作用于for循环的数据类型
    集合数据类型,如list,tuple,dict,set,str
    generator,包括生成器和带yield的generator function
  2. yield的作用就是把一个函数变成一个generator,带有yield的函数不再是一个普通函数,Python解释器会将其视为一个generator
  3. 生成器不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值,直到最后抛出StopIteration错误表示无法继续返回下一个值
  4. 可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator
  5. 可直接作用于for循环的对象统称为可迭代对象:Iterable
  6. 生成器都是Iterator对象,list,dict,str等是Iterable不是Iterator
  7. 把Iterable变成Iterator可使用iter()函数
  8. Python的for循环本质上就是通过不断调用next()函数实现的

Similar Posts

上一篇 Python基础自测

Content