Python学习笔记(综述)

1.首先这个人在工作的时候觉得现有的语言编写东西很麻烦,于是就发明了python

贵铎·范·罗萨姆(Guido van Rossum)于 1989 年底始创了 Python,荷兰人。到目前已经有接近30年的历史了。

2.其次python的特点。

Python是一门简洁的高级语言,意味着它能帮助人们节省很多的开发时间。同时兼具shell的脚本语言特性,也兼具面向对象的特性,虽然人们实际开发中经常使用的是前者。简单的shell脚本语言可以用来处理简单的任务,但是功能是会有穷尽的,因此重用度和可升级性都很差。而相比之下python可以自行添加喜欢的元素和模块,因此开发人员很少会看到一个很长很复杂的python程序。

Python强调简洁的重要性,因此python在开发的过程中一直非常就强调易维护易开发的重要性 。另外他还兼具易维护和高健壮性的特点。

Python被人们称为胶水语言,是因为它的可拓展的特性。 它可以随时将标准库和你自己创建的任何语言的模块工具用同样的界面进行拓展和复用。能够灵活附加或定制工具,缩短开发周期。另外python拥有的一些插件也允许它可以进行混合语言的编程。

另外Python是由c语言编写的,自然也拥有c语言的可移植性,适用于各种操作系统和各种不同的架构。它比c语言要好的一点是将内存管理的任务交给了python解释器来负责,因此程序员在进行python开发的时候就会能更加专注的进行编程工作。python是一门解释性的语言,所以它没有编译的环节,运行也比通常的解释性语言运行的要慢,另外,python是字节编译的,生成一种近似于机器语言的中间形式。

采用引用计数器来实现对象的垃圾回收机制

3.python的使用以及工具

对于python来说,最重要的一门工具就是IDLE,可以在百度上搜索python,进入官网,下载python2.7或者3.6的版本,安装完毕之后就会找到相应的工具。另外可以在cmddos环境中敲击python。如果两个版本都下载了的话为了选择想用的版本,可以通过绝对路径来执行python.exe这个文件。

下面是常用的python命令的help。可以通过 python --help命令查看英文版

-d 提供调试输出

-O 生成优化的字节码(生成 .pyo 文件)

-S 不导入 site 模块以在启动时查找 Python 路径

-v 冗余输出(导入语句详细追踪)

-m mod 将一个模块以脚本形式运行

-Q opt 除法选项(参阅文档)

-c cmd 运行以命令行字符串形式提交的 Python 脚本

file 从给定的文件运行 Python 脚本(参阅后文)

如果在离线情况下想查阅相关的帮助手册,可以在安装目录下的doc目录下找到一个你所在版本的.chm文件。

python 的文件后缀为.py

4.推荐阅读的书籍

Python核心编程

简明python教程

利用python进行数据分析

推荐想要进一步熟悉的人看一些PEP(Python增强提案)类的文章,PEP的索引网址为:http://python.org/dev/peps.

5.常用语法

>>>

Python提示符

如果接触过命令行工具的一定不会感到陌生类似的形式。

 

#

注释

 

允许多个语句在同一行中书写,但是不推荐使用

 

\

继续上一行

 

.

属性标识法,ep object.method()

 

_

最后一个表达式的值

 

tab键(缩进)

代替了其他语言中的花括号,简洁,可读性高

但是在一些书籍中推荐使用四个空格键来进行缩进而不是tab键,因为tab键在不同的文本编辑器中代表的空白宽度不一,跨平台应用会不太顺手

 

help([obj])

显示文档字符串或者是交互式帮助(obj为空时)

 

dir([obj])

显示对象的属性,没有参数显示全局变量的名字

 

type(obj)

返回一个对象的类型,返回值是一个type对象

 

print()

打印输出

3.6版本中一定要输入()

字符串

print('hello word')

变量

print (var)

字符串格式运算符

print (%s age is %d %("python",30))

输出多内容(逗号处会被替换为空格)

print('im','zxd','opportunity')

如果一行写不完,使用 \ 可以从下一行继续写

raw_input()

输入

 

a = raw_input('plea input a:')

3.6版本里面更新为input()


if-else

条件判断语句

可以判断bool类型 0与非0

if expression:

if_suite

elseif expression:

elseif_suite

else:

else_suite

注:无switch-case语句

另外,有的同学在命令行中运行,可能会遇到不会在IDLE中执行语句的情况,这时候仅仅需要把光标调整到与while同一列然后回车就可以执行了

while

循环语句

while expression:

while_suite

 

for

循环语句

类似于shell中的foreach

可接受序列和迭代器对象

for varName in something:

doSomething

something 可以是 元组,列表,字符串

ep:简单的递增计数器

for num in [0,1,2,3]:

print num

range([start,]stop[,step])

递增计数器,产生一个从start到end的步长为step的列表

ep:效果同上例

for num in range(4):

print num

 

len()

计算字符串的长度

 

enumerate()

用于字符串,可同时循环索引(类如len())和元素(类如直接用字符串)

ep:

str='abc'

for num,ch in enumerate(str):

print(ch,'-->%d' % (num))

 

open()

打开文件

handle = open(fileName,mode)

mode 有如下几种

'r':读取,默认

'w':写入

'a':追加

'+':读写

'b':二进制访问

可以用到的函数有 :

handle.readlines()   返回值为一个字符串类型的列表,回车以\n表示出来

handle.close()   关闭文件

for eachLines in handle:

print(eachLine)

替换函数file(),工厂方法,返回一个文件对象。

 

try-except &raise

错误和异常

python语法检查分为运行时检测和语法检测。

try:后为检查部分

except:后为错误处理部分

raise:主动引发一个异常

 

def

自定义函数

def function_name([arguments]):

"optional documentation string"

function_suite

其中的arguments可以添加默认函数值

 

class

定义类

class ClassName(base_class[es]):

"optional documentation string"

static_member_declarations

method_declarations

base_class 表示的是基类,默认是object类为基类

函数的定义要使用def语句进行定义

_xxx 不用'from module import *'导入

__xxx__系统定义名字

__xxx 类中的私有变量名

__init__() 初始化构造函数,仅仅是第一个执行的函数,不产生对象

__doc__ 在模块,类声明,或函数声明中第一个没有赋值的字符串可以用属性 obj.__doc__来进行访问

self  表示是本对象,同c++/java中的this指针

类对象的创建生成:objectName = className()

del可以销毁对象的一个引用或者别名,如果引用计数为0,那么对象就会被回收。

 

 

import

导入一个模块,python以模块的形式组织文件,每个脚本文件都是一个模块

import module_name

通过属性标识法可以访问模块中的函数以及变量

 

强制类型转换

int(obj)  obj强制转换为整形

 

str(obj)   obj强制转换为字符串

 

 

 

6.运算符

+-*/%

加减乘除取模

//

浮点除法(对结果进行地板除法,单个为正常除法)

**

乘方,等价于pow(x,exp)

比较运算符

<,<=,>,>=,==(对象身份比较),<>,!=, is(对象身份比较),is not

逻辑运算符

and     or    not  

支持增量运算符(+=等) 但是不支持自加自减(--++

=

赋值表达式,没有返回值,因此不可以x=(y=1),但可以链式(多重)赋值,x=y=1

多元赋值: x,y,z = 'a',15,11.1,也可以写成元组形式,( x,y,z) =( 'a',15,11.1)

支持隐式的and链接。 1<x<3形式

 

位运算符:

~

取反

&

|

^

异或

<<

左移位

>>

右移位

负数的处理方法为二进制的补码处理。

 

7.支持的类型

数字:

int

有符号整形,跟机器的位数有关

支持hex()转换16进制的数(0x开头)oct() 转换8进制的数(0o开头)

支持ASCII转换,ord(chr)可将ASCII或者Unicode字符转换为ASCIIUnicode

可以通过chr(ASCII_Num) ASCII码转化为字符

unichr(num) unicode码转化为unicode字符

long

长整形(任意长),后缀L

bool

布尔(True,False

float

双精度浮点数,55+11+1格式,支持科学计数法

complex

复数(real+imagj ),虚部必须是j或者J后缀,实部虚部均有浮点数表示

com.real 实部

com.imag 虚部

com.conjugate() 返回共轭复数

decimal

用法:decimal.Decimal('123.12'), 非内建函数需要引入模块

科学计数法

1e10 表示十的十次幂

 

不支持 char byte 指针等类型。

 

字符串:在赋值时推荐单引号括起。

[]

索引运算符,第一个为0,最后一个为-1

[:]

切片运算符

+

字符串的链接

字符串在定义的时候可以通过单引号或者双引号定义,在需要使用特殊字符并且需要字符串跨越多行时推荐使用三引号,一对(每一边三个)连续的单引号或者双引号。尤其是在调用HTML以及SQL等语句块时。 推荐使用三单引号。

 

列表:

使用[]

列表解析:使用for循环将所有值放到一个列表中,

ep: group = [x ** 2 for x in range(8) if not x%2]

元组:

使用(),是一种只读的列表

列表和元组均可以用来存储任意类型任意数量的python对象,下标从0开始。同字符串的用法一致。

 

字典:

相当于c++中的map,一种映射,哈希表实现。key-value

使用{}表示。

 

标准类型内建函数:

cmp(obj1,obj2)

比较两个对象的大小,返回整形,和c++/java中一致,

可以重写__cmp__()类中函数来实现比较

repr(obj)

返回对象的字符串表示,在2.7中可以用`obj`(反点)表示

str(obj)

返回对象适合可读性好的字符串表示

type(obj)

得到一个对象的类型,返回type对象。

isinstance(obj,(objType1,objType2…))用于面向对象中。

通过types对象可以实现上述功能

id(obj)

查看对象的身份,列表的值无论怎么改变,id始终不变。

coerce()

操作数运算时的类型转换,可以隐式调用。优先级复数>浮点数>长整数>普通整数

 

类型的工厂函数:

int(obj,base=10)

默认返回0

long(obj,base=10)

 

float()

 

complex()

 complex(str) complex(real,imag=0.0)两种格式

bool()

返回obj对象的布尔值,也就是obj.__nonzero__()方法的返回值,默认为True

 

数学功能函数:

abs()

取绝对值

coerce(obj1,obj2)

类型转换函数,属于标准内建函数

divmod()

返回一个商和余数的元组

pow(), **

指数运算

round(num,target)

四舍五入运算

random

伪随机数生成器(0-1之间)

8.保留字(关键字)

 

 

9.模块结构和布局

10.推荐编程注意事项

减少函数调用的次数

减少解释器进行查询的次数,通过from-import语句进行简化。


*欢迎大家关注我的个人微信公众号:Opportunity_s 

欢迎提出宝贵意见!

Opportunity的程序猿笔记


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值