最最最基础的输出
#use/bin/python
print("hao ye!")
#!/usr/bin/python
——脚本语言的第一行,只对 Linux/Unix 用户适用,用来指定脚本用什么解释器来执行,加上执行权限后,可以直接用 ./ 执行,不然会出错,因为找不到 python 解释器\#!/usr/bin/python
是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释器#!/usr/bin/env python
这种用法是为了防止操作系统用户没有将 python 装在默认的 /usr/bin 路径里,当系统看到这一行的时候,首先会到 env 设置里查找 python 的安装路径,再调用对应路径下的解释器程序完成操作- Python中默认的编码格式是 ASCII 格式,在没修改编码格式时,读取中文可能会报错,可在文件开头加入
# -\*- coding: UTF-8 -\*-
或者# coding=utf-8
- print 默认输出是换行的,如果要实现不换行需要在变量末尾加上
,
Python 标识符
- 和C语言有点像:由数字、字母、下划线构成,且数字不能开头,区分大小写
- 以下划线开头的标识符具有特殊意义:以单下划线开头
_foo
的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用from xxx import *
导入 - 以双下划线开头的
__foo
代表类的私有成员,以双下划线开头和结尾的__foo__
代表 Python 里特殊方法专用的标识,如__init__()
代表类的构造函数 - Python 可以同一行显示多条语句,方法是用分号
;
分开
Python 行和缩进
- Python 的代码块不使用大括号
{}
来控制类,函数以及其他逻辑判断,python 最具特色的就是用==缩进==来写模块 - 缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行
- Python语句中一般以新行作为语句的结束符,但是可以使用斜杠
\
将一行的语句分为多行显示 - 语句中包含
[]、{}、()
不需要使用多行连接符
两个关于缩进的报错:
- IndentationError: unindent does not match any outer indentation level——表明使用的缩进方式不一致,有的是 tab 键缩进,有的是空格缩进,改为一致即可
- IndentationError: unexpected indent——可能是tab和空格没对齐的问题
Python 引号和注释
- Python 可以使用引号
'
、双引号"
、三引号'''或"""
来表示字符串,引号的开始与结束必须是相同类型的 - 三引号可以由多行组成,是编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释
- python中单行注释使用
#
开头,多行注释使用三引号'''或"""
Python 变量
- 变量赋值不需要声明类型,变量在使用前都必须赋值,变量赋值以后才会被创建
- 可以多个变量赋值:
a=b=c=9
——创建一个整型对象,值为9,三个变量被分配到相同的内存空间上a,b,c=1,2,"hahaha"
- Python有五个标准的数据类型:
- Numbers(数字)—— Python支持四种不同的数字类型:
- int(有符号整型,如:11)
- long(长整型,也可以代表八进制和十六进制,如:11L)—— long 类型只存在于 Python2.X 版本中,在 2.2 以后的版本中,int 类型数据溢出后会自动转为long类型。在 Python3.X 版本中 long 类型被移除,使用 int 替代
- float(浮点型,如:11.11f)
- complex(复数,由实数部分和虚数部分构成,可以用
a + bj
,或者complex(a,b)
表示, 复数的实部和虚部都是浮点型,如:9.322e-36j)
- String(字符串)
- python的字串列表有2种取值顺序:从左到右索引默认0开始的,最大范围是字符串长度少1;从右到左索引默认-1开始的,最大范围是字符串开头
- 使用
[头下标:尾下标]
来截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾, [头下标:尾下标]
获取的子字符串包含头下标的字符,但不包含尾下标的字符+
是字符串连接运算符,星号*
是重复操作- Python 列表截取可以接收第三个参数,为截取的步长,如:设置为步长为 2 ,即间隔一个位置来截取字符串
- List(列表)
- List(列表) 是 Python 中使用最频繁的数据类型,是有序的对象集合
- 列表可以完成大多数集合类的数据结构实现,它支持字符,数字,字符串甚至可以包含列表(即嵌套)
- 列表用
[]
标识,是 python 最通用的复合数据类型 - 列表中值的切割也可以用到变量
[头下标:尾下标]
,就可以截取相应的列表
- Tuple(元组)
- 元组是另一个数据类型,类似于 List(列表)
- 元组用
()
标识,内部元素用逗号隔开,但是元组不能二次赋值,相当于只读列表 - 依然可以使用
[头下标:尾下标]
来截取
- Dictionary(字典)
- 字典是无序的对象集合,字典当中的元素是通过键来存取的,而不是通过偏移存取
- 字典用
{ }
标识,字典由索引(key)和它对应的值value组成
- Numbers(数字)—— Python支持四种不同的数字类型:
- python数据类型的转换,将数据类型作为函数名即可
Python 运算符
这里只有一些以前没有见过的运算符——
**
——幂运算//
——取整除运算- 成员运算符:
in
——如果在指定的序列中找到值返回 True,否则返回 Falsenot in
如果在指定的序列中没有找到值返回 True,否则返回 False
- 身份运算符:
is
——是判断两个标识符是不是引用自一个对象is not
——是判断两个标识符是不是引用自不同对象is
与==
区别——is
用于判断两个变量引用对象是否为同一个(同一块内存空间),==
用于判断引用变量的值是否相等- 我理解的就是——
is
的判断更严格,变量的值和类型都要相等,比如:a=1, b=1.0,此时 a is b返回false
Python 逻辑和循环语句
if语句:
if x == 1: print("1") elif x == 2: print("2") else: print("false")
while语句:
while a != 10: a += 1 print(a)
for语句:
for i in 'lalala': print("%s" % i) # 另一种:通过序列索引迭代 for i in range(len(a)): print(a[i])
break和continue的用法和C语言差不多,pass——空白语句,一般用做占位
Python 自定义函数
使用
def
声明,后接函数名称和参数任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
函数的第一行语句可以使用文档字符串—用于存放函数说明
函数内容以冒号起始,并且缩进
return [表达式]
,返回一个值给调用方,不写return相当于返回 Nonedef test(a,b): "输出a + b的值" print(a + b) return a + b test(1, 2)
Python 模块
- Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和 Python 语句
- 模块能定义函数,类和变量,也能包含可执行的代码
- 模块定义好后,可以使用 import 语句来引入模块,如:
import math
,调用模块中的函数时:模块名.函数名
from…import
语句可以从模块中导入一个指定的部分到当前命名空间中:from 模块名 import 函数名
from…import *
把一个模块的所有内容全都导入到当前的命名空间
Python 包
- 包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境
- 包就是文件夹,但该文件夹下必须存在
__init__.py
文件, 该文件的内容可以为空,__init__.py
用于标识当前文件夹是一个包 - 导入格式:
import 包名.模块名
或者from 包名.模块名 import 函数名
其它的一点零碎的东西
- 变量是拥有匹配对象的名字(标识符),命名空间是一个包含了变量名称(键)和它们各自相应的对象(值)的字典
- 一个 Python 表达式可以访问局部命名空间和全局命名空间里的变量,如果局部变量和全局变量重名,则局部变量会覆盖全局变量
- Python会把所有函数里赋值的变量都当做局部变量,可以在变量名前 +
global
给函数内的全局变量赋值 - dir() 函数:一个排好序的字符串列表,内容是一个模块里定义过的名字
- globals()函数:返回全局命名空间里的名字
- locals()函数:返回所有能在该函数里访问的命名,两个函数的返回类型都是字典
- reload()函数:Python中的import语句可以导入module文件,但是import语句只是第一次导入的时候会执行module文件中的代码,然后就会把导入的模块文件存入到内存,当再次导入的时候,Python是直接从内存里面取出module文件,而不会执行module文件的内容了,而reload函数强制Python重新导入并执行module文件