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

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

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

解释性语言,类似PHPPerl

特点

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

广泛的标准库

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

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

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

数据库、GUI编程

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

Windows环境搭建

官网/download/

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

其他环境变量?

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

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

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

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

命令行参数

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

python file 直接执行file

Python保留字符

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

行和缩进

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

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

多行语句

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

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

引号

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

注释

单行的用 # 开头即可

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

空行

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

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

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

同一行显示多条语句

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

多个语句构成代码组

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

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

变量类型

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

变量赋值之后才会被创建

标准数据类型

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

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

数字类型

int long float complex

字符串

+字符串连接

*字符串重复

列表

相当于Vectorjava),内容可以不同

[]

元组

()

但是元组的内容不可变

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

元字典

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

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

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

Python数据类型转换

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

运算符

算术运算符

+-*/

a**b à a^b

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

比较运算符

<> != 都是不等于

赋值运算符

+= -= 等与C无异

位运算符

& |

^ 异或

~ 取反

<< >> 左移右移

逻辑运算符

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

成员运算符

in not in

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

条件语句

if elif else

注意else if 变成了 elif

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

循环语句

while (条件)

while里,可以用breakcontinue

while(): else:

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

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

for

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

语句格式如下

for iterating_var in sequence:

    statements(s)

例:

for letter in ‘Python’:

    print letter

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

例:

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

for fruit in fruits:

    print fruit

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

例:

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

  for i in range(2,num):

    if num%i == 0:

      j=num/i

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

      break

  else:

    print num, ‘is a prime’

循环嵌套

C无异

break语句

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

continue语句

C无异

pass语句

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

就是用作占位语句

python数学函数

abs(x) 绝对值

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

exp(x) 指数

fabs(x) float的绝对值

log(a,b) logb为底a的对数

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

sqrt(x) 返回平方根

python随机函数

choice(seq) random.choice(range(10)) 09中随机挑选一个整数

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

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

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

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

python字符串

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

字符串运算符

+ 连接

* 重复

[] 通过索引获取字符

[:] 截取其中一部分

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

格式化字符串

%的和C区别不大

其他的辅助格式

python列表

[]

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

python元组

()

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

python函数

规则

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

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

return[表达式]

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

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

python

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

有包phonephone下有pots.py isdn.py G3.py

在包里创建 __init__.py

在这个文件里

from pots import ports

from isdn import isdn

from G3 import G3

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

I/O函数

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

 

 

 

 

 

python中传值或者传引用

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

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

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

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

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