浅析python基础知识

    据百度百科所载: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+yx-y

加、减,“+”号可重载为连接符

x*yx**yx/yx%y

相乘、求平方、相除、求余,“*”号可重载为重复,“%”号可重载为格式化

<<=>>===<>!=

比较运算符

+=-=*=/=%=**=<<=>>=&=^=|=

自变运算符

x|y

按位或

x^y

按位异或

x&y

按位与

~x

按位取反

x<<x>>y

x向左或向右移y

is, is not

等同测试

in, not in

是否为成员测试

orandnot

逻辑运算符

x[i]x[i:j]x.yx(...)

索引,分片,限定引用,函数调用

(...)[...]{...}'...'

元组,列表,字典,转化为字符串

二、python的变量:

          python的变量不需要声明,并且支持布尔型、整型、浮点型、字符串、列表、元组、集合、字典等。具体的示例代码如下:

          请注意tuple与list的区别,tuple,list,dic的声明分别为(),[],{},tuple为不可变元组,list可以动态删除和插入(其实我感觉list好像hash map呀)。

#boolean True/False
data=True
#int float string
data=1234
data=1234L
data=1234.0
data='123456789'
copy=data[-1]
copy=data[1:]
copy=data[-1:2:-1] #when using reversing [end:start:-1]
copy=copy+data
memAddr=id(data) #memAddr gets memory address of data
type(data); # get data's type
cmp(data,copy);

#tuple
data=('test',22, 90)
max(data);
min(data);
name, age, score = data
data[2]

#list
data=['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=21
if 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 item
for item in range(1,10,2):
	print item

while True:
	print 'Hello'
	x=raw_input('Please input set value for x, or q to exit')
	if x == 'q':
		break
def 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 n

print recursion(5); 

if __name__=="__main__"://这是python的入口函数  

五、python的包与模版

    python可以很方便的直接包含当前目录下的模版,而使用包时,我们可以把多个py文件放到一个文件夹下,并且创建__init__.py文件,然后import 包名.模版名。

#cal.py
def add( x, y):
	return x+y

if __name__=="__main__"://注意这是制定默认的python入口函数
	r=add(2,3)
	print r
#b.py
import cal
result=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/



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值