Python基础(自学Python系列笔记--1)(不定期更新)

l Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言

n 交互性:可以在python提示符,直接互动执行写程序

n 解释性语言,类似PHP和Perl

l 特点

n 易于学习、易于阅读、易于维护

n 广泛的标准库

n 互动模式:可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片段

n 可移植:基于开放源代码的特性

n 可扩展:用C/C++完成,之后再调用

n 数据库、GUI编程

n 可嵌入:将Python切入到C/C++程序,获得脚本化的能力

l Windows环境搭建

n 官网/download/

n 配置环境变量 #path %path%;F:\Python27

n 其他环境变量?

u pythonpath: python搜索路径,默认的import模块从其中寻找

u pythonstartup: python启动后执行此文件中指定的执行代码

u pythoncaseok: 加入该变量,会使导入模块时不区分大小写

u pythonhome: 另一种模块搜索路径,通常内嵌于pythonstartup或pythonpath目录中,从而两个模块库更容易切换

n 命令行参数

u python -V 大写V,输出版本,小写v会有怪异事件

u python file 直接执行file

l Python保留字符

n and assert break class continue def del elif else except exec finally for from global if import in is lambda not or pass print raise return try while with yield

l 行和缩进

n python代码块不使用{}来控制类,函数以及其他逻辑判断

n 缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行,都用tab或固定空格数目

l 多行语句

n 可以以斜杠\将一行语句分为多行显示

n 语句中包含[](){}可以不用多行连接符

l 引号

n 可以用单引号 双引号 三引号表示,其中三引号可以写段落,多用作注释

l 注释

n 单行的用 # 开头即可

n 多行的用 ‘’’ 段落 ‘’’

l 空行

n 函数或类的方法用空行分隔,表示一段新的代码的开始

n 类和函数入口之间也用一行空行分隔

n 空行与代码缩进不同,不插入也不会出错,但是为了日后代码维护和重构

l 同一行显示多条语句

n 在同一行中使用多条语句,语句之间使用;分隔

l 多个语句构成代码组

n 缩进相同的一组语句构成一个代码块

n if,while,def,class这样的复合语句,首行以关键字开始,以冒号:结束,该行之后一行或多行嗲吗构成代码组,将首行以及后面的代码组称为一个子句clause

l 变量类型

n 变量不需要声明,赋值操作即是声明与定义过程

n 变量赋值之后才会被创建

n 标准数据类型

u Numbers String List Tuple(元祖) Dictionary(字典)

n del a 表示删除这个引用,删除这个变量

n 数字类型

u int long float complex

n 字符串

u +字符串连接

u *字符串重复

n 列表

u 相当于Vector(java),内容可以不同

u 用[]

n 元组

u 用()

u 但是元组的内容不可变

u 即定义了之后,不能对里面的元素进行赋值了

n 元字典

u 列表是有序的对象集合,字典是无序的对象集合

u 字典中的元素是通过键来储存,而不是通过偏移

u 例:tinydict = {‘name’:’john’,’code’:6743,’dept’:’sales’}

n Python数据类型转换

u 用数据内置的类型进行转换

l 运算符

n 算术运算符

u +-*/

u a**b à a^b

u a//b -> 取整除,返回商的整数部分

n 比较运算符

u <> != 都是不等于

n 赋值运算符

u += -= 等与C无异

n 位运算符

u & |

u ^ 异或

u ~ 取反

u << >> 左移右移

n 逻辑运算符

u and or not 用括号来表示层级运算

n 成员运算符

u in 和 not in

u 在指定序列里找,序列可以是元组,列表

l 条件语句

n if elif else

n 注意else if 变成了 elif

n 不支持switch语句,多个条件判断,只能用elif实现

l 循环语句

n while (条件)

u while里,可以用break和continue

u while(): else:

l else中的语句会在循环正常执行完的情况下执行

l 正常执行完,即不是通过break跳出而中断的

n for

u 由于python希望每种做法都是唯一的,因此这里的for和C中的for不同

u 语句格式如下

l for iterating_var in sequence:

l     statements(s)

u 例:

l for letter in ‘Python’:

l     print letter

l 最后输出 字符串Python中的各个字母

u 例:

l fruits = [‘banana’, ‘apple’, ‘mango’]

l for fruit in fruits:

l     print fruit

l 最后输出fruits里的每个元素了

u 例:

l for num in range(10,20): //range函数,返回一个序列,包括10没有20

l   for i in range(2,num):

l     if num%i == 0:

l       j=num/i

l       print ‘%d = %d * %d’ % (num,i,j) //注意格式化输出

l       break

l   else:

l     print num, ‘is a prime’

n 循环嵌套

u 与C无异

n break语句

u 与C无异,终止最深层的循环

n continue语句

u 与C无异

n pass语句

u 空语句,为了保持程序的完整性

u 就是用作占位语句

l python数学函数

n abs(x) 绝对值

n cmp(x) 比较,小于返回-1,等于返回0,大于返回1

n exp(x) 指数

n fabs(x) float的绝对值

n log(a,b) log以b为底a的对数

n pow(x,y) x^y x**y

n sqrt(x) 返回平方根

l python随机函数

n choice(seq) 如random.choice(range(10)) 从0到9中随机挑选一个整数

n random() 随机生成一个实数,在[0,1)范围内

n seed可以设置种子,python会自动选择种子

n shuffle(lst) 将序列的所有元素随机排序

n uniform(x.y) 随机生成一个实数,在[x,y]范围内

l python字符串

n 注意转义字符\,与C差别不大

n 字符串运算符

u + 连接

u * 重复

u [] 通过索引获取字符

u [:] 截取其中一部分

u in not in 看字符串里是否有指定字符

n 格式化字符串

u %的和C区别不大

u 其他的辅助格式

l python列表

n 用[]

n 可以用del list1[2]来删除其中的一个元素

l python元组

n 用()

n 元组只包含一个元素时,在后面加逗号tup1 = (50,)

l python函数

n 规则

u 代码块以def开头,后接函数标识符名和圆括号()

u 函数内容以冒号起始,并且缩进

u return[表达式]

n 所有参数在python里都是按引用传递的,如果在函数里修改了参数,那么在调用这个函数的函数里,参数的值也被改变了//其实是符合面向对象的思想的

n python里关键字参数顺序并不重要,即使用关键字参数允许函数调用时参数的顺序与声明时不一致,python解释器会用参数名匹配参数值

l python包

n 包是一个分层次的文件目录结构,定义了一个由模块及子包,和子包下的子包组成的python应用环境

n 有包phone,phone下有pots.py isdn.py G3.py

n 在包里创建 __init__.py

n 在这个文件里

u from pots import ports

u from isdn import isdn

u from G3 import G3

n 之后在其他py文件里,import phone,那么包里的类就都可以用了

l I/O函数

n raw_input 读取一行,返回一个字符串,无换行符

l python中传值或者传引用

n 传递参数的时候,python不允许程序员选择采用传值还是传引用,python参数传递采用的肯定是“传对象引用”的方式,实际上,这种方式相当于传值和传引用的一种综合。

n 如果函数收到的是一个可变对象的引用,就可以修改其原始值,那么就相当于传引用来传递对象

n 如果收到不可变对象(数字、字符或者元组)的引用,那么不能直接修改原始对象,相当于通过传值来传递对象

n a=b的话,a和b的地址是相同的,如果只是想拷贝,那么就用a=b[:]

时间: 08-01

Python基础(自学Python系列笔记--1)(不定期更新)的相关文章

Python系统编程(自学Python系列笔记-3)(不定期更新)

l if __name__ == ‘__main__’ : #当作为脚本运行时 n __name__检测只有当文件被运行时才是ture,被载入时是false,当作为顶级脚本被运行时,会判定ture n 被运行:命令行,单击文件图标,使用IDLE GUI n Python的每个模块都有一个内置的__name__变量,当且仅当文件作为程序运行时,而不是作为库导入是,Python会将这个变量设置为__main__字符串 l 命令行参数 n 例 u import sys u print sys.argv

Python面向对象(自学Python系列笔记-2)(不定期更新)

l 直接用=进行实例化操作,如p=people() l 对于属性,前面加两个下划线__表示私有的属性 l 定义方法用def关键字,在类中定义方法至少有一个参数,如果用self作为参数,就必须是第一个参数,对于self,与c++或java中的this相似,再用某个对象调用该方法时,就将该对象最为第一个参数传递给self l 类中的内置方法 n 构造方法__init__(self,….)生成对象时进行的初始化操作,不需要显式调用 n 析构方法__delf__(self_)释放对象时调用,支持重载 l

Node.js系列笔记-5(不定期更新)

Node.js文件系统 Node.js提供一组类似UNIX标准的文件操作API,导入的语法如下: 1 var fs = require("fs"); 异步和同步 文件系统fs模块中都有异步和同步的版本 其中异步的方法函数的最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error) 打开文件 获取文件信息 写入文件 读取文件 关闭文件 截取文件 删除文件 创建目录 读取目录 删除目录 文件模块方法参考手册 链接:http://www.runoob.com/nodejs/no

python基础教程_学习笔记23:图形用户界面

图形用户界面 丰富的平台 在编写Python GUI程序前,需要决定使用哪个GUI平台. 简单来说,平台是图形组件的一个特定集合,可以通过叫做GUI工具包的给定Python模块进行访问. 工具包 描述 Tkinter 使用Tk平台.很容易得到.半标准. wxpython 基于wxWindows.跨平台越来越流行. PythonWin 只能在Windows上使用.使用了本机的Windows GUI功能. JavaSwing 只能用于Jython.使用本机的Java GUI. PyGTK 使用GTK

python基础教程_学习笔记3:元组

元组 元组不能修改:(可能你已经注意到了:字符串也不能修改.) 创建元组的语法很简单:如果用逗号分隔了一些值,那么你就自动创建了元组. >>> 1,3,'ab' (1, 3, 'ab') 元组也是(大部分时候是)通过圆括号括起来的. >>> (1,3,'13') (1, 3, '13') 空元组可以用没有内容的两个圆括号来表示. 如何实现包括一个值的元组呢? >>> (5) 5 >>> ('ab') 'ab' >>>

python基础教程_学习笔记9:抽象

抽象 懒惰即美德. 抽象和结构 抽象可以节省大量工作,实际上它的作用还要更大,它是使得计算机程序可以让人读懂的关键. 创建函数 函数可以调用(可能包含参数,也就是放在圆括号中的值),它执行某种行为并且返回一个值.一般来说,内建的callable函数可以用来判断函数是否可调用: >>> import math >>> y=1 >>> x=math.sqrt >>> callable(x) True >>> callab

python基础教程_学习笔记10:异常

异常 什么是异常 Python用异常对象来表示异常情况.遇到错误后,会引发异常.如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行: >>> 1/0 Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> 1/0 ZeroDivisionError: integer division or modulo by

python基础教程_学习笔记6:字典

字典 映射(mapping),一种可通过名字引用值得数据结构. 字典是python中唯一内建的映射类型. 字典中的值没有特殊的顺序,但都存储在一个特定的键(key)里.键可以是数字.字符串甚至是元组. 字典的使用 某些情况下,字典比列表更加适用,比如: 表征游戏棋盘的状态,每个键都是由坐标值组成的元组: 存储文件修改数,用文件名作为键: 数字电话/地址簿: 假如有一个人名列表如下: >>>names=['Alice','Beth','Cecil','Dee-Dee','Earl'] 如果

python基础教程_学习笔记5:字符串

字符串 基本字符串操作 字符串也是序列,因此序列的基本操作(索引.分片.连接.乘法.长度.求最大值和最小值.成员资格)对字符串同样适用: 索引 >>> 'a_string'[0] 'a' 长度 >>> len('a_string') 8 求最大值 >>> max('a_string') 't' 求最小值 >>> min('a_string') '_' 乘法 >>> 'a_string'*2 'a_stringa_st