一、基础语法
1. 标识符
在 Python 中,标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。
以下划线开头的标识符是有特殊意义的:
- 单下划线开头
_xx :表示不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 导入。 - 双下划线开头
__xx :表示类的私有成员。 - 双下划线开头和结尾
__xx__ :表示Python中特殊方法专用的标识,如 __init__() :类的构造函数。
2. 保留字符
下表中是 Python 中的保留字。这些保留字不能用作常数或变数,或任何其他标识符名称。 所有 Python 的关键字只包含小写字母。
and | exec | not | assert | finally | or |
---|
break | for | pass | class | from | print | continue | global | raise | def | if | return | del | import | try | elif | in | while | else | is | with | except | lambda | yeild |
3. 行和缩进
Python语句中一般以新行作为语句的结束符,一行语句太长可用 \ 分为多行显示;显示多条语句,用 ; 分隔,
total = item_one + \
item_two + \
item_three
语句中包含 [] , {} 或 () 括号就不需要使用 \ 。
days = ['Monday', 'Tuesday',
'Wednesday',
'Thursday', 'Friday']
Python 最具特色的就是用缩进来写模块。Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断,缩进空白数量可变。
if True:
print ("True")
else:
print ("False")
4. 引号
Python 可以使用引号 ' 、双引号 " 、三引号 ''' 或 """ 来表示字符串。
word = 'word'
sentence = "这是一个句子。"
paragraph = """这是一个段落。
包含了多个语句"""
5. 注释
Python中单行注释采用 # 开头,多行注释使用三个单引号 ''' 或三个双引号 """ 。
print ("Hello, Python!")
'''
这是多行注释,使用单引号。
这是多行注释,使用单引号。
'''
"""
这是多行注释,使用双引号。
这是多行注释,使用双引号。
"""
6. 中文编码
Python 2.x中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错,解决方法:在文件开头加入 # -*- coding: UTF-8 -*- 或者 # coding=utf-8 即可。
Python3.X 源码文件默认使用 utf-8 编码,无需指定。
7. 数据类型
Python3 中有六个标准的数据类型:
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
Python3 的六个标准数据类型中:
- 不可变数据类型:Number(数字)、String(字符串)、Tuple(元组);
- 可变数据类型:List(列表)、Dictionary(字典)、Set(集合)。
8. 变量赋值
多个变量赋值的方式:
a = b = c = 1
a, b, c = 1, 2, "john"
9. 运算符
从最高到最低优先级的所有运算符:
运算符 | 描述 |
---|
** | 幂运算(最高优先级) | ~ + - | 取反,正号,负号 | * / % // | 乘,除,取模,取整除 | + - | 加法,减法 | >> << | 右移,左移 | & | 与 | ^ | | 异或、或 | <= < > >= | 比较运算符 | <> == != | 等于运算符 | = %= /= //= -= += *= **= | 赋值运算符 | is is not | 身份运算符 | in not in | 成员运算符 | not and or | 逻辑运算符 |
二、数字
1. 数值类型
Python中数字有四种类型:整数、布尔型、浮点数和复数。
- int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
- bool (布尔), 如 True。
- float (浮点数), 如 1.23、3E-2
- complex (复数), 如 1 + 2j、1.1 + 2.2j
2. 其他
① Python 中整形大小没有限制; ② 数字长度过大,可使用下划线作为分隔符
c = 123_456_789
③ 进制表示:
二进制 | 0b或0B开头 |
---|
八进制 | 0o或0O开头 | 十六进制 | 0x或0X开头 |
3. 类型转换
int(x [,base]) | 将x转换为一个整数 |
---|
float(x) | 将x转换到一个浮点数 | complex(real [,imag]) | 创建一个复数 | str(x) | 将对象 x 转换为字符串 | repr(x) | 将对象 x 转换为表达式字符串 | eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 | tuple(s) | 将序列 s 转换为一个元组 | list(s) | 将序列 s 转换为一个列表 | chr(x) | 将一个整数转换为一个字符 | unichr(x) | 将一个整数转换为Unicode字符 | ord(x) | 将一个字符转换为它的整数值 | hex(x) | 将一个整数转换为一个十六进制字符串 | oct(x) | 将一个整数转换为一个八进制字符串 |
4. 数学函数
Python 中数学运算常用的函数基本在 math 模块中。 要使用 math 函数必须先导入
import math
math.abs(-1)
Python math 模块中包含一下常用函数:
函数 | 返回值(描述) |
---|
factorial(x) | 返回 x 的阶乘 | cmp(x, y) | 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1 | abs(x) | 返回 x 的绝对值,如:abs(-10) 返回 10 | ceil(x) | 返回 x 的上入整数,如:math.ceil(4.1) 返回 5 | floor(x) | 返回 x 的下舍整数,如math.floor(4.9)返回 4 | exp(x) | 返回 e 的 x 次幂 | log(x) | 返回以 e 为底 x 的对数 | log10(x) | 返回以 10 为底 x 的对数 | pow(x, y) | 返回 x 的 y 次幂 | sqrt(x) | 返回 x 的平方根 | round(x [,n]) | 返回浮点数x 的四舍五入值,如给出n值,则代表舍入到小数点后的位数 |
5. 随机函数
Python random 模块中包含以下常用随机数函数:
函数 | 返回值(描述) |
---|
choice(seq) | 从序列的元素中随机挑选一个元素,比如:random.choice(range(10)) | randrange ([start,] stop [,step]) | 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1 | random() | 随机生成下一个实数,它在[0,1)范围内。 | seed([x]) | 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。 | shuffle(lst) | 将序列的所有元素随机排序 | uniform(x, y) | 随机生成下一个实数,它在[x,y]范围内。 |
三、字符串
通过单引号 ' 、双引号 " 、三引号 ''' 或 """ 来定义。
1. 访问字符串中的值
Python 访问子字符串,可以使用方括号来截取字符串:
str = 'Hello World!'
print(str[0])
print(str[2:5])
print(str[2:])
2. 运算符
下表实例变量 a 值为字符串 “Hello”,b 变量值为 “Python”:
操作符 | 描述 | 实例 |
---|
+ | 字符串连接 | >>> a + b ‘HelloPython’ | * | 重复输出字符串 | >>> a * 2 ‘HelloHello’ | [ ] | 通过索引获取字符串中字符 | >>> a[1] ‘e’ | [ : ] | 截取字符串中一部分 | >>> a[1:4] ‘ell’ | in | 成员运算符 - 若字符串中包含指定的字符返回 True | >>> “H” in a True | not in | 成员运算符 - 若字符串中不包含指定的字符返回 True | >>> “M” not in a True | r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用。 | >>> print r’\n’ \n >>> print R’\n’ \n |
3. 字符串格式化
将一个值插入到一个有字符串格式符 %s 的字符串中。Python 字符串格式化符号:
占位符 | 描述 |
---|
%s | 格式化字符串 | %d | 格式化整数 | %f | 格式化浮点数字,可指定小数点后的精度 |
如下实例:
print ("My name is %s and weight is %d kg!" % ('Zara', 21))
?? 更多格式化符号
格式化符号辅助指令:
符号 | 功能 |
---|
* | 定义宽度或者小数点精度 | - | 用做左对齐 | + | 在正数前面显示加号(+) | # | 在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’) | 0 | 显示的数字前面填充’0’而不是默认的空格 | m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
4. 三引号
Python 三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
典型的用例,使用一块HTML或者SQL。
errHTML = '''
<HTML>
<HEAD><TITLE>Friends CGI Demo</TITLE</HEAD>
<BODY><H3>ERROR</H3>
<B>%s</B><P>
<FORM><INPUT TYPE=button VALUE=Back
ONCLICK="window.history.back()"></FORM></BODY>
</HTML>
'''
cursor.execute('''
CREATE TABLE users (
login VARCHAR(8),
uid INTEGER,
prid INTEGER)
''')
5. f-string
f-string 是 python3.6 之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。之前我们习惯用百分号 (%):
name = "Tom"
s = "Hello, %s" % name
print(s)
f-string 格式化字符串以 f 开头,后面跟字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,实例如下:
name = "Jerry"
s = f"Hello, {name}"
print(s)
6. Python 的字符串内建函数
?? Python 的字符串常用内建函数
7. format 格式化函数
Python2.6 开始,新增了一种格式化字符串的函数 str.format() ,它增强了字符串格式化的功能。
基本语法是通过 {} 和 : 来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序。
>>> "{} {}".format("hello", "world")
'hello world'
>>> "{0} {1}".format("hello", "world")
'hello world'
>>> "{1} {0} {1}".format("hello", "world")
'world hello world'
也可以设置参数:
print("网站名:{name}, 地址 {url}".format(name="CSDN", url="www.csdn.net"))
site = {"name": "CSDN", "url": "www.csdn.net"}
print("网站名:{name}, 地址 {url}".format(**site))
my_list = ['CSDN', 'www.csdn.net']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))
?? 更多 format 函数用法
四、 基本语句
1. 条件语句
在进行逻辑判断需要用到条件语句,Python 提供了 if 、elif 、else 来进行逻辑判断。格式如下所示:
if 判断条件1:
代码块1
elif 判断条件2:
代码块2
else:
代码块3
2. 循环语句
Python 提供了 for 循环和 while 循环(在 Python 中没有 do…while 循环)。
2.1 for 循环
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串:
for letter in 'Python':
print("当前字母: %s" % letter)
fruits = ['banana', 'apple', 'mango']
for fruit in fruits:
print ('当前水果: %s' % fruit)
循环使用 else 语句 在 python 中,for … else 中 else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
for iterating_var in sequence:
代码块
else:
代码块
2.2 while 循环
while 循环,满足条件时进行循环,不满足条件时退出循环。如下所示:
count = 0
while (count < 9):
print ('The count is:', count)
count = count + 1
3 pass 语句
Python pass 是空语句,是为了保持程序结构的完整性。 pass 不做任何事情,一般用做占位语句。
if True:
pass
五、序列
Python 中的序列是一块可存放多个值的连续内存空间,所有值按一定顺序排列,每个值所在位置都有一个编号,称其为索引。
1. 分类
可变序列 (序列中的元素可以改变):列表(list) 字典(dict)
不可变序列 (序列中的元素不能改变):字符串(str) 元组(tuple)
2. 序列操作
2.1 索引
序列索引方式:
- 从左到右索引,默认0开始
- 从右到左索引,默认-1开始
2.2 切片
切片操作可以访问一定范围内的元素,
sname[start : end : step]
- sname:表示序列的名称;
- start:开始索引位置(包括),默认为 0;
- end:表示切片的结束索引位置(不包括),默认为序列的长度;
- step:步长。
str = 'Python'
print(str[:2])
print(str[2:])
print(str[::2])
2.3 相加
Python 支持序列使用 + 作相加操作
list = ['zhansan', 78.6 , 'lisi', 70.2]
tinylist = ['john', 72.5]
li = list + tinylist
print (li)
2.4 相乘
Python 支持序列使用 * 作相乘操作
tinylist = ['john', 72.5]
list = tinylist * 2
print (li)
2.5 检查成员
in / not in: 检查某元素是否为序列的成员
people = ['zhangsan', 'lisi', 'wangwu']
name = 'zhangsan'
print(name in people)
六. 列表、元组
2. 方法
Python包含以下方法:
方法 | 功能 |
---|
list.append(obj) | 在列表末尾添加新的对象 | list.count(obj) | 统计某个元素在列表中出现的次数 | list.extend(seq) | 在列表末尾一次性追加另一个序列 | list.index(obj) | 从列表中找出某个值第一个匹配项的索引位置 | list.insert(index, obj) | 将对象插入列表 | list.pop([index=-1]) | 移除列表中的一个元素(默认最后一个元素),并返回该元素的值 | list.remove(obj) | 移除列表中某个值的第一个匹配项 | list.reverse() | 反向列表中元素 | list.sort(cmp=None, key=None, reverse=False) | 对原列表进行排序 reverse:False:默认升序,True:降序 |
|