浅析python基础知识
来源:互联网 发布:网络用语浅草 编辑:程序博客网 时间:2024/05/29 04:14
据百度百科所载:python是一种面向对象,解释型,动态数据类型计算机程序设计语言,由Guido van Rossum在1989年发行。python简洁清晰,很方便的与其他语言结合在一起。openstack,谷歌部分爬虫组件,NASA和很多数据处理使用的都是python。python与C/C++语句块的设计思想不同,它的语法强制缩进。另外python也支持了matlab的很多计算方法,比如numpy,matplotlib,而且它是完全免费的吆。
还是谈一下python的诞生吧,作为Monty Python喜剧的忠实粉丝,Guido van Rossum取了python作为新语言的名字。1989年Guido van Rossum吸收ABC语言的设计思想,开发了python,并且将python彻底开源。它从ABC发展而来,又吸收了shell和C的一些习惯。Python是一个完全面向对象的语言,追求简洁高效。
本文整理了一些python的基础知识,最后也整理了一些python常见的面试题目。本文的python的具体目录如下:
一、python的变量、数据类型和表达式
二、python的语法
三、python的流程控制
四、python的函数
五、python的包与模块
六、python的正则表达式
七、python的文件与目录
八、python的面向对象
九、python的异常处理
十、python的常见面试题目
python的安装和使用请参考https://www.python.org/。python程序既可以解释执行,在追求效率的地方,也可以编译得到python程序的执行文件。具体的编译方法有两种,例如对如下的代码进行编译:
print ‘Hello World’
1. 在python的命令行>>>下:
>>>import py_compile
>>>py_compile.compile("test.py")
2. 在shell终端输入:
# python -O -m py_compile test.py
然后输入如下指令执行:# python test.pyc
一、python的变量、数据类型和表达式:
1. python运算符,python的运算符中指数和lambda函数需要注意:
运算符 描述
x+y,x-y
加、减,“+”号可重载为连接符
x*y,x**y,x/y,x%y
相乘、求平方、相除、求余,“*”号可重载为重复,“%”号可重载为格式化
<,<=,>,>=,==,<>,!=
比较运算符
+=,-=,*=,/=,%=,**=,<<=,>>=,&=,^=,|=
自变运算符
x|y
按位或
x^y
按位异或
x&y
按位与
~x
按位取反
x<<,x>>y
x向左或向右移y位
is, is not
等同测试
in, not in
是否为成员测试
or,and,not
逻辑运算符
x[i],x[i:j],x.y,x(...)
索引,分片,限定引用,函数调用
(...),[...],{...},'...'
元组,列表,字典,转化为字符串
二、python的变量:
python的变量不需要声明,并且支持布尔型、整型、浮点型、字符串、列表、元组、集合、字典等。具体的示例代码如下:
请注意tuple与list的区别,tuple,list,dic的声明分别为(),[],{},tuple为不可变元组,list可以动态删除和插入(其实我感觉list好像hash map呀)。
#boolean True/Falsedata=True#int float stringdata=1234data=1234Ldata=1234.0data='123456789'copy=data[-1]copy=data[1:]copy=data[-1:2:-1] #when using reversing [end:start:-1]copy=copy+datamemAddr=id(data) #memAddr gets memory address of datatype(data); # get data's typecmp(data,copy);#tupledata=('test',22, 90)max(data);min(data);name, age, score = datadata[2]#listdata=['test',22,90]#print data[2]data.append(8888)data.remove(data[2])del(data[0])for item in data: print item"check" in data;item = ['name', 'age', 'gender']value = ['xiaoyi', '25', 'male']zip(item, value) # zip() will produce a new list: dic = {'name': 'xiaoyi', 'age': 25, 'gender': 'male'}print dic['name']dic['append']='append_data';dic.pop('append')ddict = {}.fromkeys(('x', 'y'), -1) # built-in mode, default value is the same which is none
三、python流程控制代码:
python流程控制的语句有 if, for, while。
1. 如果for循环中没有执行break,那么将会之行for后面的else语句。
<span style="color:#000000;">from __<em>future</em>__ <em>import</em> </span><em><span style="color:#000000;">division#concrete division</span></em>data=21if data<20:print "small"elif data<30:print "middle"else:print "big"if 1<2 and 2<3 or 2<4 and not 0:print 'yeah'for item in "abcdef":print itemfor item in range(1,10,2):print itemwhile True:print 'Hello'x=raw_input('Please input set value for x, or q to exit')if x == 'q':breakdef add(x,y): return x+y;def sub(x,y): return x-y;operator={"+":add,"-":sub}operator.get("+")(1,2)operator.get("-")(1,2)def cal(x, o, y): print operator.get(o)(x,y)cal(2,"+",3)for item in range(0,100): if(item==0): break;else: print "No break";
四、python的函数
python的函数传参数的时候注意tuple与dic作为参数时的修饰,分别为*和**。lambda函数用来定义简单的单行函数:
def fun(x, *args, **kwargs)://多变量,元祖和字典 print x print args print kwargs fun(1, 2, 3, 4, y = 10, z = 12) # x = 1, args = (2, 3, 4), kwargs = {'y': 10, 'z': 12}fun = lambda x,y : x*y # fun is a object of function class print fun(2, 3)def recursion(n): //递归 if n > 1: return n * recursion(n-1) else: return nprint recursion(5); if __name__=="__main__"://这是python的入口函数
五、python的包与模版
python可以很方便的直接包含当前目录下的模版,而使用包时,我们可以把多个py文件放到一个文件夹下,并且创建__init__.py文件,然后import 包名.模版名。
#cal.pydef add( x, y):return x+yif __name__=="__main__"://注意这是制定默认的python入口函数r=add(2,3)print r#b.pyimport calresult=cal.add(1,2)print result
六、python的正则表达式
1. python 正则表达式部分标识符说明:[]任意一个字符,[^abc]表示补集,^可以匹配行首,$可以匹配行尾,-表示范围,\表示转义符,{8}表示前面的规则出现8次,+表示出现一次或者多次,*表示出现零次或者多次,?表示非贪婪匹配,name_re = re.compile(r"xiaoyi", re.I)表示不分大小写,w代表任意一个字符。
2. 常用函数:
search#返回第一个字符或者空。
findall()#返回一个满足正则的迭代器。
re.sub(reg, 'dest', target)#替换。
dir(re)#打印re模块的属性和方法。
re.M多行匹配:
匹配串里面添加()时,匹配结果优先返回括号里面的内容。
str = """ hello mystr mystr hello hello test mystr hello """ re.findall(r'mystr', str, re.M) re.findall(r'm(.+)r', str, re)
七、python的面向对象
九、异常处理
try: python sql;except Exception as inst: do execption process;
参考文献:
[1]. python中的dic详解: http://www.cnblogs.com/yangyongzhi/archive/2012/09/17/2688326.html
[2]. python基础学习笔记:http://blog.csdn.net/zouxy09/article/details/16920541
[3]. python运算符:http://blog.163.com/zhulp0372@yeah/blog/static/11589447920117124348435/
[4]. python装饰器学习入门:http://www.cnblogs.com/rhcad/archive/2011/12/21/2295507.html
[5]. python 在线编程实验室:http://www.pythoner.cn/labs/
[7]. 中谷教育python学习视频完整版本:http://pan.baidu.com/share/link?uk=2586215667&shareid=447652#path=%252F%25E4%25B8%25AD%25E8%25B0%25B7%25E6%2595%2599%25E8%2582%25B2-Python%25E8%25A7%2586%25E9%25A2%2591%25E6%2595%2599%25E7%25A8%258B%25EF%25BC%2588%25E5%25AE%258C%25E6%2595%25B4%25E7%2589%2588%25EF%25BC%2589
[8]. python 文档: https://www.python.org/doc/
- 浅析python基础知识
- 图论浅析--基础知识
- 浅析加密解密基础知识
- python基础知识
- Python 基础知识
- Python 基础知识
- python基础知识
- python基础知识
- python基础知识
- python基础知识
- Python基础知识
- python基础知识
- python基础知识
- Python-基础知识
- python基础知识
- python基础知识
- Python基础知识
- python基础知识
- 微软亚太区数据库技术支持组 官方博客
- 自动关闭tomcat
- 如何编译Linux内核2.6.26
- DisableExplicitGC和Direct ByteBuffer
- win7配置Apache+MySQL+PHP系统教程
- 浅析python基础知识
- Nginx1.7.4+Tomcat7+memcached集群环境搭建
- 心情
- 朋友圈 - 图遍历 - 并查集
- expdp报ora-21780。规避措施:expdp在运行时,请不要改变参数值
- linux笔记(1)
- servlet显示上次用户访问的时间
- tomcat 容器重复包异常
- 正则表达式基本语法