Python3基础知识: 基本数据
Python3基础知识: 基本数据
镇长学习新的语言最好的资料是官方文档。由于笔者有其他语言基础,这里只整理区别和理解不清的地方。文档介绍Python语言及系统的诸多特性,开始是简单的语法、数据类型和表达式。接着介绍函数和模块,最后涉及异常和自定义类等高级内容。
文档地址:官方文档
Python解释器
Python是一门解释型语言,因为不需要编译和链接,可以在程序开发中节约宝贵的时间。
Python解释器
在设备上安装好Python后就可以启动解释器了。打开终端,输入
python3
。ps: 因为Mac默认安装Python2,所以需要使用
Python3
命令来启动。交互模式
>>>
:主提示符号
...
: 从属提示符号解析器打印欢迎信息、版本号和授权提示。
1
2
3
4➜ ~ python3
Python 3.6.2 (default, Jul 27 2017, 13:31:44)
[GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.关于交互模式的更多信息请查看:交互模式
源程序编码
默认情况下,Python源文件是UTF-8编码。也可以指定不同的字符编码。
# -*- coding: encoding -*-
Python简介
基本数据
数字
//
:floor除法
: 得到整数结果丢掉小数部分。**
: 计算幂乘方字符串
可以用单引号和双引号标识。
\
用来转义。字符串文本分成多行。使用:
"""..."""
或'''...'''
。字符串可以被检索。索引值可以是整数也可以是负数。整数从左向右检索,负数从右向左检索。
除了检索还是
切片
。内置的len()返回字符串长度。
列表
列表类似于数组,但是列表元素不必是同一类型
列表支持切片操作
列表可以修改元素值
内置
len()
返回列表长度使用
append()
末尾添加元素
其他内容后面深入讲解。
流程控制
if
和
elif
配合使用,elif
可以是零个或多个,else
是可选的。for
Python的for语句依据任意序列中国的子项,按它们的序列中的顺序来进行迭代。注意迭代过程中修改迭代序列不安全。
range(a, b, c)
生成数值序列。
a
:起始值;b
:终点不包含;c
:步长。break & continue
和C语言相似。
pass
什么都不做,用于那些语法上需要的情况。
函数
函数定义
关键字
def
引入函数定义。例如:1
2
3
4
5
6
7
8
9>>> def fib(n):
... """Print a Fibonacci series up to n."""
... a, b = 0, 1
... while a < n:
... print(a)
... a, b = b, a + b
... print()
...
>>> fib(20)缩进很重要,Python通过缩进来判断语句的。
docstring
: 文档注释。可以使用工具自动生成文档。希望形成注释的习惯。Lambda 函数
使用lambda关键字,可以创建短小的匿名函数。
函数参数
Python中参数类型:必要参数、可选参数和关键字参数
数据结构
列表方法
在基本数据中提到列表,这里补充其他的方法:
方法 | 说明 |
---|---|
list.append(x) | 把元素添加到列表末尾 |
list.extend(L) | 将给定的列表L所有元素都添加到另一个列表中 |
list.insert(i, x) | 在第i个元素前插入元素x |
list.remove(x) | 移除值为x的元素 |
list.pop([i]) | 从指定位置删除元素,并返回 |
list.clear() | 删除所有元素 |
list.index(x) | 返回第一个值为x的元素索引 |
list.count(x) | 返回x在列表中出现的次数 |
list.sort() | 对元素排序 |
list.reverse() | 翻转列表 |
list.copy() | 返回列表的一个拷贝 |
列表可以当做栈和队列使用
列表推导式
列表推导式由包含一个表达式的括号组成,表达式后面跟随一个 for 子句,之后可以有零或多个 for 或 if 子句
例如:
1 | squares = [x ** 2 for x in range(10)] |
del语句
从列表中删除给定的索引项,他不同于有返回值的pop()。del还可以从列表中删除切片或清空整个列表。
1 | >>> a = [1, 2, 3, 4, 5, 6] |
元组和序列
前面字符串和列表都是序列类型。下面另一个标准序列类型:元组。一个元组有数个逗号分隔值组成。
🌰:
1 | >>>t = 123, 5432, 'Hello!' |
注意: 元组是可以嵌套的,元组不可变,但是元组可以包含可变对象。
集合
Python还包含了一个数据类型:set(集合)。集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。支持 union, intersetction, difference sysmmetric difference等数学运算。
注意:创建空集合使用set(),而不是{}。因为{}用来创建空字典。
字典
字典是以关键字为索引,关键字是任意不可变类型,通常用字符串或数值。
使用用del来删除键。
使用In关键字来检查字典中是否存在某个关键字。
1 | >>> tel = {'jack': 123, 'sape': 321} # 定义一个字典 |
dic()构造函数可以从键值对中创建字典。
1 | >>> dict([('sape', 123), ('guido', 321), ('jack', 543)]) |
字典推导式可以从任意的键值表达式中创建字典。
1 | >>> {x: x ** 2 for x in (2, 3, 6)} |
循环技巧
字典循环中使用items()将键和值同时读取出来。
1 | # items() 获取键和值 |
序列循环时,索引位置和对应值可以使用enumerate()
函数同时得到。
1 | # i 代表索引 |
同时循环两个或更多序列,可以使用zip()整体打包
1 | >>> question = ['name', 'quest', 'favorite color'] |
需要逆向循环序列,先正向定位序列,在调用reversed()函数
要按排序后的顺序循环序列,使用sorted()函数,不会改动原序列,而是生成新的。
若要在循环内部修改正在遍历的序列,需要首先创建副本。切片表示法尤为方便。
小结
本节学习了Python3基础知识,如果有其他语言编程基础的小伙伴,简单了解下不同点就可以学会。