概述
Python 是一种易于学习又功能强大的编程语言。它提供了高效的高级数据结构,还有简单有效的面向对象编程。Python 优雅的语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言。
Python 解释器及丰富的标准库以源码或机器码的形式提供,可以到 Python 官网 https://www.python.org/ 免费获取适用于各个主要系统平台的版本,并可自由地分发。这个网站还包含许多免费第三方 Python 模块、程序和工具以及附加文档的发布页面或链接。
为什么要学习python
如果你是专业的软件开发人员,你可能需要编写一些C/C++/Java库,但总觉得通常的开发的流程(编写、编译、测试、再次编译等)太慢了。可能给这样的库写一组测试,就是很麻烦的工作了。或许你写了个软件,可以支持插件扩展语言,但你不想为了自己这一个应用,专门设计和实现一种新语言了,那么,Python正好能满足你的需要。
Python很容易使用,但它是一种真正的编程语言,提供了很多数据结构,也支持大型程序,远超shell脚本或批处理文件的功能。Python还提供比C语言更多的错误检查,而且作为一种“超高级语言”,它有高级的内置数据类型,比如灵活的数组和字典。正因为这些更加通用的数据类型,Python能够应付更多的问题,超过Awk甚至Perl,而且很多东西在Python中至少和那些语言同样简单。
Python程序的书写是紧凑而易读的。Python代码通常比同样功能的C,C++,Java代码要短很多,需要注意的是缩进就是python的命根子span>,下面我们进入正题吧。
变量
局部变量和全局变量
一般来说,函数内部的变量都是局部变量,其它都是全局变量。全局变量有时候需要特别声明使用global关键字。
命名规则
- 变量名只能包含字母、数字和下划线。变量名可以以字母或下划线开头,但不能以数字开头。例如,变量可以为length_1,但不能将其命名为1_length
- 变量名不能包含空格,但可以使用下划线来分隔其中的单词。
- 不要将Python关键字和函数名作用变量名。
- 变量名应既简洁又具有描述性。例如:name比n好,name_length比length_of_persons_name好。
变量类型
- 变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。
- 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。
- 因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数,字符串,列表,元组或字典。
变量赋值
- 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。
- 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
- 等号(=)用来给变量赋值。
- 等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。
数据类型
- 数字 (Numbers)。包含int(有符号整型),float(浮点型)和complex(复数)。
- 字符串(String)。Python大部分时候不区分字符和字符串,并且’c’和’hello’都可以使用单引号的。
- 列表(List)。列表是由一系列按特定顺序排列的同种数据类型的元素组成,元素可以是字符,数,或字符串等。
- 元组(tuple)。 Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
- 字典(Dictionary)。这个是稍微高级的数据结构,字典是一系列键-值 (key-value)对。每一个键都与一个值相关联。字典用放在大括号{}中一系列键-值对表示,如:dict1 = {‘no1’: ‘诗仙’, ‘no2’: ‘杜甫’, ‘no3’: ‘李商隐’}
数字(Numbers)
除了 int 和 float,Python也支持其他类型的数字,例如 Decimal 或者 Fraction。Python 也内置对 复数 的支持,使用后缀 j 或者 J 就可以表示虚数部分(例如 3+5j)。
字符串(String)
字符串有多种形式,可以使用单引号(’……’),双引号("……")都可以获得同样的结果。
- 字符串可以用 + 进行连接(粘到一起),也可以用 * 进行重复。
- 字符串是可以被索引(下标访问)的,第一个字符索引是 0。单个字符并没有特殊的类型,只是一个长度为一的字符串。
- 索引也可以用负数,这种会从右边开始数。
- 除了索引,字符串还支持切片。索引可以得到单个字符,而切片可以获取子字符串:[start: end)
- 切片的索引有默认值;省略开始索引时默认为0,省略结束索引时默认为到字符串的结束:
- 内建函数 len() 返回一个字符串的长度:
列表(List)
List(列表) 是 Python 中使用最频繁的数据类型,列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套),列表用 [ ] 标识,是 Python 最通用的复合数据类型,一个 列表 可以包含不同类型的元素,但通常使用时各个元素类型相同。
- 和字符串及各种内建的 sequence 类型一样,列表也支持索引和切片;
- 所有的切片操作都返回一个新列表,这个新列表包含所需要的元素。就是说,如下的切片会返回列表的一个新的(浅)拷贝;
- 列表同样支持拼接操作;
- 与 immutable 的字符串不同, 列表是一个 mutable 类型,就是说,它自己的内容可以改变;
- 你也可以在列表结尾,通过 append() 方法 添加新元素 ;
- 给切片赋值也是可以的,这样甚至可以改变列表大小,或者把列表整个清空;
- 内置函数 len() 也可以作用到列表上;
- 也可以嵌套列表 (创建包含其他列表的列表)。
元组(tuple)
元组是另一个数据类型,类似于List(列表),元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
字典(Dictionary)
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合,两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取,字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
控制语句
条件语句
if分支
Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
if 条件:
code1
elif
code2
else:
code3
# 相信对大多数人来说都是小意思
# if语句还可以这样写
值1 if 表达式 else 值2
# 看上去是不是强迫症好了不少了呢
循环语句
for循环
for each in iterableObj:
code
# 经常使用
for i in range(start, stop, step):
code
while 循环
while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:
while 条件:
code
# 可以使用continue,break 来跳过循环,continue 用于跳过该次循环。
# break 则是用于退出循环。
# 此外"判断条件"还可以是个常值,表示循环必定成立,
其他
注释
python可以使用单引号#或者""" “”"来进行单行或多行注释
# 我是单行注释
"""
我是多行注释0
我是多行注释1
我是多行注释2
"""
引入库
可以使用关键字import
# 展示下面几个小栗子
import sys
import sys as s
from sys import argv, path
类
值得注意的是python中类是多继承的
# 使用class关键字来定义
class A(类名1, 类名2):
# 构造方法
__init__(self):
code
函数
def 函数名(参数列表):
函数体