Python基础语法

Python数据类型与基本语句

Python数据类型 数字

Python中有四种类型的数字:整数、长整数、浮点数和复数.

类型

描述

整数

一般意义上的数,包括八进制、十六进制等

长整数

无限大小的数,在其结尾加上l或者L

浮点数

小数或者用e(或E)表示的幂

复数

复数的虚部以字母J或j结尾

Python中使用数字无需事先声明其类型.

Python中的运算符:**是乘方运算符.

 

Python数据类型 字符串

Python中的字符串用于表示和存储文本, 通常有三种方式.由单引号、双引号和

三引号包围.其中三引号包围的字符串可以由多行组成.

 

常用字符串操作函数

函数

描述

string.capitalize()

将字符串的第一个字母大写

string.count()

获得字符串中某个子字符串的个数

string.find()

获得字符串中某个子字符串的起始位置

string.isalnum()

检测字符串是否仅包含0-9a-zA-Z

string.isalpha()

检测字符串是否仅包含0-9a-zA-Z

string.isdigit()

检测字符串是否仅包含数字

string.islower()

检测字符串是否均为小写字母

string.isspace()

检测字符串中所有字符是否均为空白字符

string.istitle()

检测字符串中的单词是否为首字母大写

string.isupper()

检测字符串是否均为大写字母

string.join()

连接字符串

string.lower()

将字符串中的字符全部转换为小写

string.split()

分割字符串

string.swapcase()

将字符串中大写字母转小写, 小写转大写

string.title()

将字符串中的单词首字母大写

string.upper()

将字符串中的字符全部转换为大写

Len(string)

获取字符串的长度

以上函数并不改变字符串本身, 而是返回修改后的新的字符串.

 

string.join函数将原字符串插入到参数字符串中的每两个字符之间

如果参数字符串只有一个字符, 那么返回参数字符串.

 

string.split将字符串以指定的字符分割, 如果不指定字符, 默认以

空格分割.

split([sep] [,maxsplit])

sep:可选参数, 指定分割的字符.

maxsplit:可选参数, 分割次数.

 

索引和分片:Python中可以使用[]访问字符串中特定位置的字符,序号从0开始.

而且Python中允许以负数表示字符串的序号, 负数标示从字符串尾部开始计算,

此时最后一个字符的序号是-1.

 

格式化字符串:在字符串中使用以%开头的字符.常见的格式化字符有以下几个:

%c    单个字符

%d    十进制整数

%o    八进制整数

%s    字符串

%x    十六进制字符串

%X    十六进制字符串, 其中的字母大写

 

使用时在格式化字符串后加入 % 然后加入相应的值, 如果有多个格式化字符

后面的值用小括号括起来, 值用引号引起来.

 

字符串与数字相互转换

将完全由数字组成的字符串转换成整数:string.atoi(s [,base])

s:待转换的字符串

base:可选参数, 表示将字符串转换成的进制类型

将数字转换为字符串:str()函数.

 

原始字符串

原始字符串以R或r开头, 原始字符串中\不再表示转义字符的含义,可以用来

表示Windows系统下的路径,但结尾不能是\.

 

Python数据类型 列表和元组

列表是以方括号[]包围的数据集合, 不同成员之间用逗号分隔, 列表中可以包含

任何数据类型, 也可以包含另一个列表.列表可以通过序号访问其中的成员, 可以

对列表进行排序、添加、删除等操作, 改变列表中某个成员的值. 元组的特性与

列表基本相同, 元组是以圆括号()包围的数据集合. 与列表不同的是, 元组中的

数据一旦确定就不能被改变, 通常用于不希望数据被其他操作改变的场合.

 

列表常用操作

列表操作

描述

list.append()

追加成员

list.count(x)

计算列表中x出现的次数

list.extend(L)

向列表中追加另一个列表L

list.index(x)

获得x在列表中的位置

list.insert()

向列表中插入数据

list.pop()

删除列表中的成员,参数为索引

list.remove()

删除列表中的成员,参数为成员值

list.reverse()

将列表中的成员顺序颠倒

list.sort()

排序

 

Python数据类型 字典

字典是以大括号{}包围的数据集合, 字典是无序的, 在字典中通过键来访问成员

字典也是可变的, 字典中成员的位置没有实际的意义, 不能通过位置访问成员,

字典中的成员是以键:值的形式声明的.

 

字典常用操作

字典操作

描述

dic.clear()

清空字典

dic.copy()

复制字典

dic.get(k)

获得键k的值

dic.has_key(k)

是否包含键k

dic.items()

获得由键和值组成的列表

dic.keys()

获得键的列表

dic.pop(k)

删除键k

dic.update()

更新成员

dic.values()

获取值的列表

 

Python数据类型 文件

文件也是Python的数据类型, 当使用open打开一个文件后返回一个文件对象.

open(filename [, mode] [, bufsize])

filename:要打开的文件名

mode:可选参数,文件打开模式

  r:只读方式打开

 w: 写方式打开

b: 以二进制方式打开

 bufsize:可选参数, 缓冲区大小

 

  常用文件操作

文件操作

描述

file.read()

将整个文件读入字符串中

file.readline()

读入文件的一行到字符串中

file.readlines()

将整个文件按行读入列表中

file.write()

向文件中写入字符串

file.writelines()

向文件写入一个列表

file.close()

关闭打开的文件

 

 

 

 

 

 

Python基本语句

if语句

    if<condition>:

        <statement>

    elif <condition>:

        <statement>

    else:

        <statement>

for语句

    for<> in <object set>

        if <condition>:

            break

        if <condition>:

            continue

        <other statement>

          else:

               <statement>

      如果for循环没有被break中止, 则会执行else块中的语句.

while语句

    while <condition>:

        if <condition>:

            break

        if <condition>:

            continue

        <other statement>

          else:

        <statement>

 

函数与模块

函数

 

函数声明

在Python中,使用def声明一个函数, 函数在使用前必须声明.完整的函数名由

函数名、参数、函数实现组成, 函数声明的一般形式如下:

def <function name>(argument list):

    <statement>

    return <return value>

其中参数和返回值不是必须的.

Python中声明一个函数不必声明函数的类型, 也不需要声明参数类型.

 

函数调用

函数调用必须在函数声明之后.

 

函数中的参数

 

参数的默认值

在Python中可以在声明函数的时候, 为参数设置一个默认值.若调用具有默认值

的函数时没有传递参数, 那么就会使用声明函数时设置的默认值.

声明一个有默认值参数的函数的形式:

def <function name>(argument=value):

    <statement>

如果一个函数有多个参数, 这些参数都有默认值那么要在调用时指定某个参数的值

要用下面的声明方式:

def fun(x=None, y=None, z=None):

    if x == None:

        x = 1

    if y == None:

        y = 2

    if z == None:

        z = 3

    return x + y + z

调用时使用如下形式fun(None, None, 5).

 

参数传递

在Python中参数值的传递是按照声明的时候参数的顺序进行传递的.还可以用

按照参数名传递值的方法.例如:

def fun(x, y, z)

    return x + y + z

可以这样进行调用

fun(z = 1, x = 2, y = 3)

 

可变长参数

在Python中声明一个可变长参数的函数只需以*开头定义一个参数即可

def <function name>(*argument):

    <statement>

 

参数引用

Python中可以在参数中使用可变对象, 如列表等, 来达到改变参数值的目的.

 

作用域

在Python中有三种作用域:内置作用域(Python预先定义好的)、全局作用域

(所编写的整个脚本)、局部作用域(函数内部的范围).如果要在函数内使用函数外

的变量, 可以在变量名前加global关键字.

 

Lambda表达式

lambda表达式是Python中一种比较特殊的声明函数的方式, 可以声明一个匿名

函数.lambda声明函数的一般形式:

lambda argumentlist : expression

lambda适用于定义小型函数, 且函数中仅包含单一的参数表达式, 而不能包含

其他语句, 也可以调用其他函数.

 

模块

 

概述

在Python中可以通过导入模块, 然后使用模块中提供的函数或者数据.

导入模块或者模块中的函数:

1.  importmodule_name

2.  importmodule_name as new_name

3.  from   module_name import function_name

使用import是将整个模块导入, 而使用from则只导入某一个模块中的函数

或者名字.另外使用import导入模块时, 要使用模块的函, 则必须以模块名

加上.然后是函数名的形式调用, 而使用from导入模块中的函数则可以直接

使用模块中的函数名进行调用.

 

模块查找路径

Python解释器首先在当前目录查找导入的模块, 如果没有找到, 则去sys模块

中的path变量指定的目录查找导入模块, 如果都没找到, 则会出错.

在脚本中可以向sys.path添加模块查找路径, 如:

sys.path.append(module_path).

 

模块编译

对于模块, Python会在第一次调用的时候将其编译成字节码的形式, 以

提供脚本的启动速度. 如果不想发布源代码, 可以使用py_compile模块

的函数将脚本编译为字节码的形式.

import py_compile

py_compile.compile(module_name)

 

模块独立运行_name_属性

可以根据_name_属性判断脚本是作为模块运行还是独立运行, 如果是作为模块

运行则_name_的值为模块名, 如果是独立运行则_name_被设置为_main_.

 

模块包

包可以看出是处于同一目录的模块, 要先使用目录名再使用模块名导入所需的包

在包的每个目录中都必须有一个_init_.py的文件(可以是空文件)._init_.py

的主要作用是设置_all_变量以及包含初始化所需要的代码, 对于在导入包内所有

名字时在from中使用*通配符的情形, 设置_all_变量可以保证名字的正确导入.

 

 

 

 

 

面向对象的Python

类的基础

 

类的定义

类定义使用关键字class, 使用类之前必须先定义类, 类定义一般放在脚本的

开始部分.Python中, 甚至可以在if语句的分支中或者函数中定义类.

类定义的形式如下:

class <class_name>:

    statement

     ······

类还可以通过继承的方式获得:

class <class_name>(base_class_name):

    statement

     ······

 

类的使用

类在定义后必须实例化才能使用, 类的实例化与函数调用类似, 只要使用类名加上

圆括号就可以实例化一个类.

当创建一个类以后就可以通过类名访问其属性, 如果直接用类名修改属性, 那么将

影响已经实例化的类.

 

类的属性和方法

 

类的属性

Python中通过类中属性的命名方式来表示类属性是共有还是私有的,

如果类中的属性是以一条下划线开始的话, 则该属性为类的私有属性.

不能在类外部使用, 在类内使用时需要用self.加到私有属性前面.

 

类的方法

类的方法就是在类内部使用def定义的函数, 但类的方法必须包含一个参数

self并且这个参数必须是第一个参数.

与类的属性相同, 如果类的方法是以一条下划线开头, 则它是类的私有方法.

在类内部调用其私有方法要使用self.加方法名的形式.

 

类的专有方法

方法名

描述

_init_

构造函数, 生成对象时调用

_del_

析构函数, 释放对象时调用

_add_

加运算

_sub_

减运算

_mul_

乘运算

_div_

除运算

_mod_

取余运算

_pow_

乘方运算

_cmp_

比较运算

_repr_

打印、转换

_setitem_

按照索引赋值

_getitem_

按照索引获得值

_len_

获得长度

_call_

函数调用

 

类的继承

 

通过继承创建类

通过继承创建类, 新类可以获得父类的共有属性和方法.

如果在定义类时使用父类的私有属性或方法将会出错.

 

多重继承

多重继承时, 类后面的圆括号内包含多个父类名, 父类名之间用逗号分隔,

使用多继承时需要注意父类类名的顺序, 如果父类中有相同的方法名, 在调用

时也没有指定父类名, 那么将从左到右搜索.在多个父类中有重名时,如果需要

使用不是前面父类的方法名.按照下面的方法进行调用.

如class C(A, B):

fun = B.fun

c = C()

c.fun()

 

重载

 

方法重载

方法重载实际上就是在子类中使用def关键字重载父类的方法.如果重载父类的

方法时又要先使用父类的该方法, 那么可以使用父类名加.加方法名的形式调用.

重载_init_方法时要注意不要忘记调用父类的_init_方法.

 

运算符重载

重新定义类的与运算符相对应的专有方法名.

 

模块中的类

类也可以写到模块中, 在其他脚本中可以通过导入模块名使用定义的类.

 

 

 

 

 

 

 

异常与调试

捕获异常

 

使用try语句

 

在Python中可以使用try语句来处理异常,  try语句还带有一个可选的

else子句, 如果异常未触发, 则执行else子句的内容.

try语句的一般使用形式:

try:                                               try:

    <statement>                             <statement>

except <excetpion1>:              finally:

    <statement>                             <statement>

except <excetpion2>:

    <statement>

else:

    <statement>

不管try语句是否发生异常, 都将执行finally语句块.

 

处理异常

except子句可以捕获指定的异常, 还可以捕获异常的附加数据.

 

Python中常见的内置异常

异常名

描述

AttributeError

调用不存在的方法引发的异常

EOFError

遇到文件末尾引发的异常

ImportError

导入模块出差引发的异常

IndexError

列表越界访问引发的异常

IOError

IO操作引发的异常

KeyError

使用字典中不存在的关键字引发的异常

NameError

使用不存在的变量名引发的异常

TabError

语句块缩进不正确引发的异常

ValueError

搜索列表中不存在的值引发的异常

ZeroDivisionError

除数为0引发的异常

except子句的几种用法

except:      

       捕获所有异常

except <exception_name>:

       捕获指定异常

except <exception1, exception2>:

       捕获异常1或异常2

except <exception_name>, <data>:

       捕获指定异常及其附加数据

 

多重异常处理

Python中可以在一个try子句中嵌套另一个try子句, Python把try放到堆栈

中, 一旦引发异常, Python将匹配最近的except子句, 如果except能够处理异常

则外围except子句将不会捕获异常, 如果except忽略该异常, 则异常将被外围

try子句捕获.

 

引发异常

 

使用raise引发异常

 

raise引发异常的形式:

raise异常名

raise异常名, 附加数据

raise类名

 

assert简化的raise语句

assert是在条件为假时引发异常

assert<condition>, <data>

assert语句一般用于开发时对程序条件的验证, 只有当内置_debug_为True时

assert语句才有效, 当脚本以-O选项编译为字节码时,assert语句将被移除.

 

自定义异常

可以通过继承Exception类来创建自己的异常类.一般仅在异常类中定义几个属性

信息.


本文档主要是Python的基础语法知识用于备忘, 内容部分或全部

来自于《征服Python----语言基础与典型应用》孙广磊编著,

如转载请注明出处,我只是摘录了自己需要的内容, 不保证

内容的完整性,对于有其他面向对象语言编程经验的人应该

都能理解,但对于没有一点编程经验的人, 最好的学习方法

就是系统地研究一本书, 边看边练.

本文的电子档下载地址

http://download.csdn.net/detail/liuyanggofurther/4918112

文档中第六页for和while语句处各漏掉了一个冒号.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值