据百度百科所载: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/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/
[8]. python 文档: https://www.python.org/doc/
</div>
</div>
据百度百科所载: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/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/
[8]. python 文档: https://www.python.org/doc/
</div>
</div>