《python基础知识实用》由会员分享,可在线阅读,更多相关《python基础知识实用(37页珍藏版)》请在金锄头文库上搜索。
1、python基础知识(实用)Python基础知识目录Python基础知识1前言:2一、基础知识21.1安装21.2交互式解释器31.3函数、变量、模块31.4字符串4二、列表52.1序列的操作52.2列表的基本操作72.3列表的方法8三、元组93.1 元组的操作93.2 tuple函数9四、字符串94.1 字符串格式化104.2 字符串的方法10五、字典115.1 dict()函数115.2 字典基本操作115.3 字典的格式化字符串115.4 字典的方法12六、条件、循环和其他语句136.1 模块导入136.2 赋值146.3 语句块146.4 条件语句156.5 循环166.6 列表推导式
2、176.7 pass / del / exec / eval18七、抽象(函数)187.1 创建函数187.2 文档字符串187.3 参数187.4 作用域217.5 递归22八、对象238.1 对象的特性238.2 类的创建和特性的私有化248.3 子类与超类25九、异常269.1 内建异常类269.2 自定义异常类269.3 捕捉异常26十、魔法方法、属性、迭代器2710.1构造方法2710.2重写2810.3属性2910.4静态方法与类成员方法3010.5迭代器31十一、模块和包3211.1模块的导入3211.2包3311.3标准库35前言:什么是python:官方解释:一种解释型的、面
3、向对象的、带有动态语义的高级程序设计语言。优点:简单、强大,程序员在编程时能够保持自己的风格,容易实现自己想要的功能,程序清晰易懂。历史: Guido van Rossum在20世纪90年代初创造了这门语言。一、 基础知识1.1 安装1. 使用包管理器安装python,如通过yum安装;2. 从源文件编译安装python:(1) 下载源代码;下载扩展名为.tgz的文件保存到本地某一目录下;(2) 进入该目录,使用tar xzvf python-2.6.4.tgz对文件解压缩;(3) 进入已解压的文件目录,cd python-2.6.4运行以下命令:./configure -prefix=$(p
4、wd)makemake install(4) 将当前文件夹路径放到环境变量PYTH中。在python脚本首行写上“#!/usr/bin/env python”后,不管python二进制文件在哪里,程序都会自动执行。若系统中安装了新版本的python,同时旧版本仍然存在,那么应该直接指明新版本路径,如:#!/usr/bin/python2.61.2 交互式解释器安装了python并设置了环境变量后,输入python进入交互式解释器。在交互式解释器中可以直接计算出表达式的值,如输入1+1后按回车,输出2输入1/2,输出0(因为计算结果的小数部分被截除了)输入1/21.0/2,输出0.5输入1/2,
5、输出0;输入1.0/2.0,输出0.0(/双斜线表示进行整除)1.3 函数、变量、模块内建函数:input():使用input函数接收输入值,如x=input(),输入12,则x=12pow(2,3)=8abs(-10)=10round(1.8/2)=1.0, 四舍五入了模块:(1) math.floor(1.8/2)=0.0, 向下取整floor函数不能直接用,要先加载math模块: import mathimport mathint(math.floor(32.9)输出:32(2)另外用下面的方式直接import函数,不需要在函数前加上模块名了:from math import floor
6、int(floor(32.9) 变量:可以使用变量来引用函数,即将某个函数赋给一个变量:foo=math.sqrtfoo(4) 输出:2.01.4 字符串(1) 字符串拼接:+x=Im x! y=Im y! x+y输出:Im x! Im y! (2) 数值转化成字符串str、repr与反引号:可将数值转化成字符串str 会把值转换为合理形式的字符串;repr会创建一个字符串,以合法的python表达式的形式来表示值。如:print str(Hello world!) 输出:Hello world!print repr(Hello world!) 输出:Hello world!反引号: (pyt
7、hon3.0中已不再使用反引号,建议用repr)可以将数字与字母连接在一起,如:temp=42print temp is: + temp 输出:temp is: 42print temp + and + 123 输出:42and123使用用repr或str:print temp is: +repr(temp) 输出:temp is: 42print temp is: +repr(temp) + str(123) 输出:temp is: 42123(3) 多行字符串长字符串跨多行时,用三个单引号或三个双引号,这样在字符串中可以同时使用单引号和双引号。普通字符串跨多行时,也可在行尾用反斜线”,如:
8、print “Hello, how are you? “输出:Hello, how are you?(4) 原始字符串输出原始字符串时字符串前面带r,如:print rC:programe new 输出:C:programe newprint rC:new lets go! 输出:C:new lets go!二、 列表Python中最基本的数据结构是序列(sequence),序列中每个元素被分配一个序号即元素的位置,也称为索引,第一个索引是0,最后一个元素索引标记为-1。Python中包含6种内建序列:列表、元组、字符串、unicode字符串、buffer对象、xrange对象。2.1 序列的
9、操作所有序列类型都可以进行的特定操作如下:索引(indexing)分片(sliceing)加(adding)乘(multiplying)成员资格(检查某个元素是否属于序列)2.1.1.1 索引序列中所有元素都是有编号的,从0开始递增。元素可以通过编号进入访问。实例:#!/usr/bin/pythonmonths = Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sept,Oct,Nov,Decendings = st,nd,rd + 17* th + st,nd,rd + 7* th + styear = raw_input(year: )month = raw_input(
10、month: )day = raw_input(day: )month_num = int(month)day_num = int(day)month_name = monthsmonth_num-1 #索引day_ord = day + endingsday_num-1 #索引print month_name + + day_ord + + year输入year: 2011month: 12day: 21输出:Dec 21st 20112.1.1.2 分片使用索引可以访问单个元素,使用分片可以访问一定范围内的元素。分片需要提供两个索引作为边界,用冒号分隔两个索引,第1个索引的元素包含在分片内
11、,第二个索引的元素不包含在分片内,如:tag=tag7:21输出:注:tag7:21,取第7到第20个字符。若想包含从第一个开始(或直到最后一个结束)的字符串,可以将前一个(或后一个)索引置空,如:tag:5, tag7:, tag:步长:分片中的第三个值(开始与结束索引之后)如:idx=1,2,3,4,5,6,7,8,9,10idx:2 输出:1, 3, 5, 7, 9idx:-1 输出:10, 9, 8, 7, 6, 5, 4, 3, 2, 12.1.1.3 序列加法两种相同类型的序列才能进行连接操作,如:1,2,3 + 4,5,6 输出:1, 2, 3, 4, 5, 6hello + _
12、 + world 输出:hello_world不同类型序列不能相加,如:1,2,3 + hello 提示出错2.1.1.4 序列乘法数字x与序列相乘后,原序列被重复x次。12 * 10 输出:列表初始化,创建10个元素空间但没有值:None * 102.1.1.5 成员资格in运算,检查一个值是否在序列中。 例1:users=taobao, alibaba, rootinput_name=raw_input(Enter your user name: )if input_name in users: print input_name + is in users!else:print Warni
13、ng! + input_name + is not in users! 例2:db = smith,4309, jones,0921, alber,8745, username = raw_input(user name: )pin = raw_input(pin code: )if username, pin in db: print Access granted!else: print Warning: username or pin is error!2.2 列表的基本操作列表与元组的区别:列表可以修改,元组不可以修改。列表的元素写在方括号中,元素间用逗号隔开,如:edward = Edward,29,hangzhou(1) 元素赋值:如x1=0(2) 删除元素:names = Alice, Beth, Earl, Dimdodel names2结果names = Alice, Beth, Dimdo(3) 分片赋值:可以一次为多个元素赋值:name = list(perl)name1: = list(ython)结果name = p, y, t, h, o,