一.Python 简介
1.1. python解释器:
编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件 下载安装Python就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。CPython是使用最广的Python解释器,Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。
1.2.编译过程:
python.py——>python解释器——>字节码文件——>python解释器——>二进制文件——>内存——>打印
1.3.编码格式:
编码回顾:Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。解决方法为只要在文件开头加入# -*- coding: UTF-8 -*-或者#coding=utf-8就行了
1.3.1:ASCII编码:
最早只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码
1.3.2.Unicode编码:
Unicode把所有语言都统一到一套编码里,解决多种语言的编码问题
1.3.3.UTF-8编码:
编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,
只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间
1.4.语法基础(以下所有demo都是基于python 3.6编写)
Python与其他语言最大的区别就是,Python的代码块不使用大括号({})来控制类,函数以及其他逻辑判断。python最具特色的就是用缩进来写模块。
IndentationError: unexpected indent错误是python编译器是在告诉你,你的文件里格式不对了,可能是tab和空格没对齐的问题",所有python对格式要求非常严格。
python中单行注释采用 # 开头。多行注释使用三个单引号(''')或三个双引号(""")。
eclipse中安装python
:help->install new software->add->pydev \n
http://pydev.org/updates
在新建工程中创建一个python.py文件,即可开始编写(eclipse还是非常强大,模糊输入、编译错误提醒、很大的提高编写效率 )
Python可以在同一行中使用多条语句,语句之间使用分号(;)分割,像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束
附上一段程序代码:
二.变量类型
2.1 变量赋值
Python 中的变量赋值不需要类型声明,用 = 来给变量赋值。变量在使用前都必须赋值,变量赋值以后该变量才会被创建
2.2 标准数据类型
Python有五个标准的数据类型,用于存储各种类型的数据。
2.2.1 Numbers(数字)支持四种不同的数字类型:
int(有符号整型)
long(长整型[也可以代表八进制和十六进制])
float(浮点型)
complex(复数)
2.2.2 String(字符串):示例代码
2.2.3 List(列表)
List(列表) 是 Python 中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。列表用[ ]标识。是python最通用的复合数据类型。
1.Python 提供列表处理的方法
1.1.cmp(list1,list2) 比较两个列表的元素
1.2 .len(list) 列表元素个数
1.3.max(list) 返回列表元素最大值
1.4.min(list) 返回列表元素最小值
1.5.list(seq) 将元组转换为列表
2.list 列表函数&方法
2.1. list.append(obj) 在列表末尾添加新的对象
2.2. list.count(obj) 统计某个元素在列表中出现的次数
2.3. list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
2.4. list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
2.5. list.insert(index, obj) 将对象插入列表
2.6 list.pop(obj=list[-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
2.7 list.remove(obj) 移除列表中某个值的第一个匹配项
2.8 list.reverse() 反向列表中元素
2.9 list.sort([func]) 对原列表进行排序
2.2.4 Tuple(元组)
元组是另一个数据类型,类似于List(列表)。元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
元组内置函数
Python元组包含了以下内置函数
1.1 cmp(tuple1, tuple2) 比较两个元组元素。
1.2 len(tuple) 计算元组元素个数。
1.3 max(tuple) 返回元组中元素最大值。
1.4 min(tuple) 返回元组中元素最小值。
1.5 tuple(seq) 将列表转换为元组。
2.2.5 Dictionary(字典)
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
Python字典内置函数&方法
1.1. cmp(dict1, dict2) 比较两个字典元素。
1.2 len(dict) 计算字典元素个数,即键的总数。
1.3 str(dict) 输出字典可打印的字符串表示。
1.4 type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。
Python字典包含了以下内置方法:
2.1 radiansdict.clear() 删除字典内所有元素
2.2 radiansdict.copy() 返回一个字典的浅复制
2.3 radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
2.4 radiansdict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值
2.5 radiansdict.has_key(key) 如果键在字典dict里返回true,否则返回false
2.6 radiansdict.items() 以列表返回可遍历的(键, 值) 元组数组
2.7 radiansdict.keys() 以列表返回一个字典所有的键
2.8 radiansdict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
2.9 radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里
2.10 radiansdict.values() 以列表返回字典中的所有值
dirct 通过特定key来查找数据,如果key 不存在,直接打印是会报错的,有两种方法判断
1>.通过in判断key是否存在:如果不存在,返回False
2>.通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:
注意,dict内部存放的顺序和key放入的顺序是没有关系的。和list比较,dict有以下几个特点:查找和插入的速度极快,不会随着key的增加而变慢;需要占用大量的内存,内存浪费多。而list相反:查找和插入的时间随着元素的增加而增加;占用空间小,浪费内存很少。所以,dict是用空间来换取时间的一种方法。
2.3 运算
2.3.1 布尔值:
布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值布尔值可以用and(与运算)、or(或运算)和not(非运算)运算
2.3.2 空值:
空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值
2.3.3 变量:
变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。
2.3.4. 除法运算
1>:一种除法是 "/" :两数相除取浮点数
2>:另一种是"//" :两数相除取整
注意:Python的整数没有大小限制,而某些语言的整数根据其存储长度是有大小限制的,例如Java对32位整数的范围限制在-2147483648-2147483647。Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。
三.循环
Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来,另一种是while循环
3.1 for x in .... 循环
3.2 while循环
要特别注意,不要滥用break和continue语句。break和continue会造成代码执行逻辑分叉过多,容易出错