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[:]

posted @ 2016-08-02 20:03  寒汀暮雨钓孤舟  阅读(217)  评论(0)    收藏  举报