Python简单教程
- 1. Python综述
- 1.1 python是什么
- 1.2 python的发展
- 1.3 python的特点
- 2.Python3安装
- 2.1 python3 和 python2的区别
- 2.2 python3环境的安装(以windows为例)
- 2.3 Anaconda 安装(可选)
- 3. Python基本语法
- 3.1 编码
- 3.2 标识符
- 3.3 注释
- 3.4 关键子和保留字
- 简介:
- 3.5 行和缩进
- 3.6 多行语句
- 3.7 python的引号
- 3.8 Python空行
- 3.9 等待用户输入
- 3.10 同一行显示多条语句
- 3.11 多个语句构成代码组
- 3.12 Print 输出
- 3.13 import 与 from...import
- 3.14 命令行参数
- 4. 基本数据类型
- 4.1 变量赋值
- 4.2 多变量赋值
- 4.3 标准数据类型
- 4.4 Number
- 4.1.1 函数
- 4.1.2 进制
- 4.1.3 数学函数
- 4.5 String
- 4.6 List
- 4.7 Tuple
- 4.8 Set
- 4.9 Dictionary(字典)
- 4.10 python类型转换
1. Python综述
1.1 python是什么
1.2 python的发展
-
Python 是由 Guido van Rossum(龟叔) 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。
-
Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。现在 Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。
1.3 python的特点
易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
易于阅读:Python代码定义的更清晰。
易于维护:Python的成功在于它的源代码是相当容易维护的。
一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
数据库:Python提供所有主要的商业数据库的接口。
GUI编程:Python支持GUI可以创建和移植到许多系统调用。
可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。
2.Python3安装
2.1 python3 和 python2的区别
Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。
为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下相容。
许多针对早期Python版本设计的程式都无法在Python 3.0上正常执行。
为了照顾现有程式,Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,允许使用部分Python 3.0的语法与函数。
新的Python程式建议使用Python 3.0版本的语法。
除非执行环境无法安装Python 3.0或者程式本身使用了不支援Python 3.0的第三方库。目前不支援Python 3.0的第三方库有Twisted, py2exe, PIL等。
Python 3.0 在 print函数、Unicode编码、除法运算、数据类型和异常等方面都与2.X版本有所变化。
2.2 python3环境的安装(以windows为例)
2.3 Anaconda 安装(可选)
3. Python基本语法
3.1 编码
3.2 标识符
3.3 注释
3.4 关键子和保留字
简介:
1.and:表示逻辑‘与’
2.del:用于list列表操作,删除一个或者连续几个元素。
3.from:导入相应的模块,用import或者from...import
4.not:表示逻辑‘非’
5.while:while循环,允许重复执行一块语句,一般无限循环的情况下用它
6.as:as单独没有意思,是这样使用:with....as用来代替传统的try...finally语法的。
7.elif:和if配合使用的,if语句中的一个分支用elif表示。
8.global :定义全局变量
例如:
name = 10
age = 20
def test():
global name
age = 30
name = 'aa'
#print(name)
test()
print(name) # 'aa'
print(age) # 20
9.or:表示逻辑“或”
10.with:和as一起用,使用的方法请看as,见with
11.assert:表示断言(断言一个条件就是真的,如果断言出错则抛出异常)用于声明某个条件为真,如果该条件不是真的,则抛出异常:AssertionError
v1 = 10
v2 = 20
assert(v1 > v2)
12.else:参考下面if的解释
13.if:if语句用于选择分支,依据条件选择执行那个语句块。(if语句中最好不要嵌套if语句,建议把嵌套的if语句写在另一个函数中)
14.pass:pass的意思就是什么都不做
15.yield:用起来和return很像,但它返回的是一个生成器
16.break:作用是终止循环,程序走到break的地方就是循环结束的时候。
17.except:和try一起使用,用来捕获异常。
18.import:用来导入模块,有时这样用from....import
19.class:定义类
20.in:查找列表中是否包含某个元素,或者字符串a是否包含字符串b。
21.raise:raise可以显示地引发异常。一旦执行raise语句,后面的代码就不执行了
22.continue:跳过continue后面循环块中的语句,继续进行下一轮循环。
23.finally:看到finally语句,必然执行finally语句的代码块。
24.is:Python中的对象包含三要素:id、type、value,用来判断对象是否相等
25.return:用于跳出函数,也可以在跳出的同时返回一个值。
26.def:用于定义方法
27.for:for....in 一起使用:它在一序列的对象上递归,就是遍历队列中的每个项目
28.lambda:即匿名函数
29.try:出现在异常处理中,使用格式为:try...except,try中放想要执行的语句,except捕获异常
30.nonlocal:nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量
例如:
def make_counter():
count = 0
def counter():
nonlocal count
count += 1
return count
return counter
def make_counter_test():
mc = make_counter()
print(mc())
print(mc())
print(mc())
make_counter_test()
3.5 行和缩进
-
学习 Python 与其他语言最大的区别就是,Python的代码块不使用大括号{}来控制类,函数以及其他逻辑判断。
-
python 最具特色的就是用缩进来写模块。
-
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。
例如:
if True:
print "True"
else:
print "False"
3.6 多行语句
Python语句中一般以新行作为语句的结束符。但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:
total = item_one + \
item_two + \
item_three
print('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\
aaaaaaaaaaaaaaaaaaaa')
语句中包含 [], {} 或 () 括号就不需要使用多行连接符。如下实例:
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
3.7 python的引号
Python 可以使用引号( ’ )、双引号( " )、三引号( ‘’’ 或 “”" )表示字符串,引号的开始与结束必须的相同类型的。
- 其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。
word = 'word'
sentence = "这是一个句子。"
paragraph = """这是一个段落。
包含了多个语句"""
3.8 Python空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
记住:空行也是程序代码的一部分。
3.9 等待用户输入
执行下面的程序在按回车键后就会等待用户输入:
input(“\n\n按下 enter 键后退出。”)
3.10 同一行显示多条语句
Python可以在同一行中使用多条语句,语句之间使用分号(;)分割,以下是一个简单的实例:
x = ‘runoob’;print(x + ‘\n’)
3.11 多个语句构成代码组
缩进相同的一组语句构成一个代码块,我们称之代码组。像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。
我们将首行及后面的代码组称为一个子句(clause)。
例如:
if expression :
suite
elif expression :
suite
else :
suite
3.12 Print 输出
3.13 import 与 from…import
3.14 命令行参数
4. 基本数据类型
4.1 变量赋值
4.2 多变量赋值
4.3 标准数据类型
4.4 Number
4.1.1 函数
type(a) # 判断数据类型
isinstance(a,int) # 判断数据是否属于某类型
del var1,var2 # 手动GC
区别:
(1) type()不会认为子类是一种父类类型
(2) isinstance()会认为子类是一种父类类型
例如:
class A:
pass
class B(A):
pass
print(type(A()) == A)
print(type(B()) == A)
print(isinstance(B(),A))
print(isinstance(B(),A))
4.1.2 进制
4.1.3 数学函数
(2) 随机数函数
随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。
(3) 三角函数
(4) 数学常量
4.5 String
Python中的字符串用单引号 ’ 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。下标从0开始。
加号 + 是字符串的连接符, 星号 * 表示复制当前字符串,紧跟的数字为复制的次数。
(1)字符串截取
(2)字符串打印
Python 使用反斜杠()转义特殊字符,
如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串:
print('Ru\noob')
Ru
oob
print(r'Ru\noob')
Ru\noob
(3)字符串获取
print(str[0])
注意:
1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
2、字符串可以用+运算符连接在一起,用*运算符重复。
3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
4、Python中的字符串不能改变。
str = 'abcdef'
str[0] = 's' # 报错
5、Python 没有单独的字符类型,一个字符就是长度为1的字符串。
4.6 List
List(列表)是Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。
列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表是写在方括号[]之间、用逗号分隔开的元素列表。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
定义:
list = [0,1,2,3,'c']
list[0] # 0
len(list) # 长度5
list[0:3] # [0,1,2]
注意:
1、List写在方括号之间,元素用逗号隔开。
2、和字符串一样,list可以被索引和切片。
3、List可以使用+操作符进行拼接。
4、List中的元素是可以改变的。
5、不支持与或非运算
4.7 Tuple
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
定义:
t = (0,1,2,3,'c')
t[0] # 0
len(list) # 长度5
t[0:3] # (0,1,2)
t[0] = 2 # 报错
注意:
1、与字符串一样,元组的元素不能修改。虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
list = [0,2,1,3]
t = (0,1,2,3,list)
t[0] = 1 # 报错
t[4][0] = 1
print(t[4]) # ok
2、元组也可以被索引和切片,方法一样。
3、注意构造包含0或1个元素的元组的特殊语法规则。
- tup1 = () # 空元组
- tup2 = (20,) # 一个元素,需要在元素后添加逗号
4、元组也可以使用 + 或 * 操作符进行拼接。
4.8 Set
集合(set)是由一个。合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合,
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:
parame = {value01,value02,...} 或者 set(value)
s = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
print(s) # {'Mary', 'Jack', 'Rose', 'Tom', 'Jim'}
s = set('1b1b2b3b2b') # {'2', '3', '1', 'b'}
set操作:
# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')
print(a)
>>> {'b', 'a', 'c', 'r', 'd'}
print(a - b) # a和b的差集
>>> {'b', 'd', 'r'}
print(a | b) # a和b的并集
>>> {'l', 'r', 'a', 'c', 'z', 'm', 'b', 'd'}
print(a & b) # a和b的交集
>>> {'a', 'c'}
print(a ^ b) # a和b中不同时存在的元素
>>> {'l', 'r', 'z', 'm', 'b', 'd'}
4.9 Dictionary(字典)
字典(dictionary)是Python中另一个非常有用的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。
字典创建:
(1) d = {"a":1,"b":2,"c":3}
(2) d = dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])
(3) d = {x:x**2 for x in (2, 4, 6)}
(4) d = dict(Runoob=1, Google=2, Taobao=3)
字典操作:
tinydict = {'name': 'guigu','code':1, 'site': 'www.atguigu.com'}
print (dict['name']) # 输出键为 'name' 的值
print (dict['code']) # 输出键为 'code' 的值
print (tinydict) # 输出完整的字典
print (tinydict.keys()) # 输出所有键 dict_keys(['name', 'code', 'site'])
print (tinydict.values()) # 输出所有值 dict_values(['guigu', 1, 'www.atguigu.com'])