`
friendsys
  • 浏览: 346438 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

Python Totorial入门指南 笔记 :5

阅读更多
在Window xp上,需要在环境变量上,在path节点中添加python安装路径,这点与其他语言的环境设置相同

在命令行交互式编程中,尤其注意空格的时候,Python中变成没有使用{}块来划分代码,代替使用的是4个空格
,注意不能使用tab,因为考虑到跨平台的原因,在linux下,tab是4个空格,win下代表2个空格.

第一章大多是Python解释器的配置和简单实用,如果有专门的IDE,略过


流程控制相关

if...elif...else 流程

if x<2:  //注意:符号
    print 3 //注意开头4个空格
elif x>3:
    print 4 //同上


for循环,类似Java 5中的 for(type t : ts)一样,遍历对象中的子对象,如数组中的对象

a=['a','b',1]
for x in a:   //注意:
    print x,len(x) //注意,分隔多个方法

//上面代码将会出错,因为1是int,不能使用len方法,

在迭代过程中改变迭代序列是不安全的,可以使用
for x in a[:]: 进行代替原先的循环

如果需要一个数字的序列,可以使用内置函数 range(),通过传入不同的参数,生成不同的序列

range(10) //10表示 0-9
range(起点,最大值不超过,每次增加值(步进值))

可以使用-负数进行反向递减,不过注意 如果第三个参数无效(如:0),那么将返回[],或者抛出异常

使用range配合for用于迭代循环
a=['a','v','c']
for i in range(len(a)):
print a[i]

//很好的想法,也比较古怪.



break,continue语句,以及循环中else语句

break的使用和Java中的相同,用于跳出循环. continue功能也相同,表示继续执行下次循环

else的使用比较特殊一些,能够在for与while循环后使用,表示在循环结束后,再执行else语句块内容,不过如果

break,将不会执行该else方法.

pass语句: 用于表示什么也不做的情况,在一些情况不加语句会出错,那时候就要用到pass

def 语句:用于定义方法函数
def fib(n):  //注意:
    print n;

一般函数第一行定义的为'''的字符串类型,类似JavaDoc,称为docstring

全局函数无法直接在函数中被修改,除非使用global命名

如果函数本身没有直接的return 返回值,那么将会返回None,也称为过程返回

[]列表的append方法用于添加一个对象,类似result = result+[b],不过效率更高一些

默认参数值的使用,定义的格式如下,注意没有默认值的参数必须传入
def ask_ok(prop,ret=4):  //使用:

in 关键字,判断一个值是否在指定的序列中,如:
if ok in('a','b','c')

默认情况下,默认参数值将会在多个函数调用中进行保存,如
def fib(m,n=[]):
    n.append(m)
    return n
每次调用后 n的值将会被保存

如果想要不保存,需要进行如下修改
def fib(m,n=None):
    if n is None:
        n=[]
    n.append(m)
    print m
    return n
使用None代替默认参数的[]

这里还涉及到了==判断,使用 is代替==判断对象类型

可以在方法调用中,以key=value的方式传入参数,如:
fib(m=1,n=0)  //注意这里声明的变量并不能直接在外部使用

使用上述方式,注意key不能重复,不过参数的顺序可以自由改变

在参数中还有两种常用的形式,1: *arg , 2: **keyword;
第二种用于接收在参数中用key=value形式的值,当不是原有参数中的参数名为key的参数
第一种由于接收直接使用值的参数

其中*要放在**之前,这种用法比较奇怪一些,不过不建议两种*和**一起使用.
*将会被转换成元祖,而**将会被转换成字典(key=value)

可变参数列表--就是使用上面所说的*,将所有而外的参数转换成元组

同样,可以使用*与** 将序列或元组拆开,例子比较特殊一些,需要同时在方法定义时,和方法调用时使用*
def split(*arg):
    for x in arg: print x+1
c=[1,2,3,4]
split(*c)

使用**时,需要注意字典的定义格式
c={'a':1,'b':2}

Lambda形式的使用
f=lambda c,d:c+d
print f(1,2)

可以用于参数的return 返回,然后进行赋值

文档字符串的编写: docstring

第一行 用于简短的描述对象的用途,以句号结尾,首字符大写.
第二行 应该空出来,而且第二行开始留出空白缩减,一般以8个空格为标准
第三行 描述对象的调用约定与边际效应



数据结构

链表的常用方法
1:添加
append(x),等同于a[len(a):]=[x]

2:继承,获取所有的元素
extend(L),等同于a[len(a):] = L

3:count(x)
返回x在链表中出现的次数

其他大多方法与Java中类似,详情查看API文档

可以灵活的配置带参数的pop和append实现队列和栈的效果


函数化编程工具---使用链表的内置函数 filter(),map(),和reduce()

filter(function,sequence),返回一个序列,包括了给定function(item)都为true的元素 如:

def f(x):
    if x>10:return False
    else:return True
print filter(f, range(0,20))

map(function,sequence)将每个元素依次调用function(item),并将返回值组成一个链表返回

def f(x):
     return x*x
print map(f, range(0,10))

reduce(function,sequence),调用顺序,将序列的前两个值传入,然后返回值与第三个传入.依次执行.

def f(x,y):
     return x+y
print reduce(f, range(0,10))

注意如果序列只有一个值,将返回该值,如果序列为空,那么将会抛出异常
可以传入第三个参数,作为初始值

也可以简单的使用sum代替

链表推导式
使用[]包含一个或多个for与if的语句,用于从一个基[]链表生成一个新的链表,如果要返回tuple元组,需要加

上()
如:
a=[1,2,3,4,5,6,7,8]
print [c for c in a if c<5]
print [(c,c+1) for c in a if c<5]

链表推导式可以用于生成很复杂的链表

del语句,用于从链表中移除指定索引的元素,与pop()方法不同,可以移除指定区间的元素

a=[1,2,3,4,5,6,7,8]
del a[1:3]   //将会移除2和3,表示移除从索引1开始移除到索引3之前的元素
可以使用0,空,负数.注意效果均有不同.
也可以直接删除整个变量

元组()与序列[]
定义时,序列可以不使用[],只要使用,进行分隔,而元组则必须使用()
两种的区别之一:元组的元素不可修改

定义一个单元素元组的方式 (a,); 注意,是必须的


Sets集合,是一个无须不重复的元素的集,基本功能包括关系测试和消除重复元素,还包括联合,交,差,对称差集

等数学运算
如:
a=[1,2,3,4,5,2,3,8]
print set(a)

可以使用简单的方法,将序列转换成集合
b='1234556'  //单双引号均可
print set(b)

字典 Dictionaries
key-value的形式, 关键字可以为任何不可变的类型,元组如果不包含可变对象,也可以作为key使用
创建一个空字典的方式{}
常用方法: del,  tel.keys()  tel.haskey('jk')  'jk' in tel等
tel={'jk':123,'ob':233}
print tel['jk']

dict方法可以从元组组成的链表中生成字典对象,也可以使用推导式的生成字典
print dict([('1',2),('2',4)])

c=[1,2,3,5]
print [(x,x*2) for x in c if x>=2]

还有另外一种使用dict转换的方式,也比较常用
print dict(a=3,b=4,e=5);


循环技巧

1:在字典循环的时候,可以使用iteritems()同时读出来

obj=dict(a=3,b=4,e=5);
for k,j in obj.iteritems():
    print k,j

在for循环中,也可以使用enumerate()在循环链表的同时,输出所在索引和值
for i,v in enumerate(["1","2","3"]):
    print i,v

同时循环2个或者多个序列,可以使用zip()整理解读
a=["1","2","3",'ds'];
b=['a','b','c','ds']
for i,v in zip(a,b):
    print i,v

注意:如果索引数量不对,那么将会自动忽视掉多余的索引

反向循环序列,可以使用reversed修饰序列对象

a=["1","2","3",'ds'];
for i in reversed(a):
    print i
注意:并不会修改原序列对象

排序输出 sorted
a=["1","3","2",'ds'];
for i in sorted(a):
    print i
同样是生成一个新的序列返回,并不会修改原序列


深入条件控制

in 和 not in可以判断值是否在一个区间之内, is和is not来比较两个对象是否相同,注意比较操作符的优先

级低于所有的数值操作

可以传递的比较操作符
c<b==a 判断c小于b 并且b==a
如1<2==2

逻辑操作符 可以使用 and和or组合, not关键字用于取反义,这些操作符的优先级低于比较操作符,其中
not的优先级最高 or的优先级最低

逻辑操作符 and 和or也称为短路操作符,参数从左向右解析,一旦确认结果就停止.

上述比较的结果可以赋值给变量


链表可以直接使用比较符进行比较.
一个链表(list)总是小于一个字符串,一个字符串(string)总是小于一个元组(tuple),数组比较时,会统一他们

的类型,如果0==0.0














































分享到:
评论

相关推荐

    Python Tutorial Python 入门指南

    Python Tutorial Python 入门指南

    Python Tutorial 入门指南3.6英文版

    The Python Tutorial 1 1. Whetting Your Appetite 4 2. Using the Python Interpreter 6 2.1. Invoking the Interpreter 7 2.1.1. Argument Passing 8 2.1.2. Interactive Mode 8 2.2. The Interpreter and Its ...

    Python Tutorial 新手入门指南 PDF

    Python Tutorial 新手入门指南 PDF Python Tutorial 新手入门指南 PDF

    Python Tutorial Python入门指南

    `Py2_5_tut_cn.pdf` 提供的教程可能涵盖了Python 2.5版本的特性。这个版本在2006年发布,虽然已经不再维护,但了解其特性和与现代Python(如Python 3.x)的差异对于理解Python的历史发展和迁移代码很有帮助。例如,...

    python入门基础教程:python-gtk.pptx

    增加按钮 python入门基础教程:python-gtk全文共15页,当前为第5页。 box 和多按钮参数(data) python入门基础教程:python-gtk全文共15页,当前为第6页。 box 和多按钮参数(data) python入门基础教程:python-...

    Python Tutorial入门指南

    英文版的Python Tutorial的翻译版 8 Classes 类 8.1 A Word About Terminology 8.2 Python Scopes and Name Spaces 8.3 A First Look at Classes 8.4 Random Remarks 8.5 Inheritance 8.6 Private Variables ...

    python_tutorial 入门

    根据提供的文件内容,我们可以提取以下知识点: ...以上内容构成了这份Python入门教程的核心知识点,涵盖了从Python语言的背景、特性、安装、环境配置、基础语法到如何开始实际的编程实践和注意事项。

    Python Tutorial 新手入门教程 PDF版.rar

    Python Tutorial ——Python新手入门指南 PDF版,内容包括:  Whetting Your Appetite 开胃菜  Using the Python Interpreter使用Python解释器  More Control Flow Tools 流程控制  Data Structures数据结构...

    【编程手册】《Python Tutorial Python 入门指南 Release 2.5b2》

    《Python Tutorial Python 入门指南 Release 2.5b2》是针对初学者的一份详尽教程,旨在帮助读者快速掌握Python 2.5版本的基本语法和编程技巧。本手册覆盖了Python语言的核心概念,包括数据类型、控制结构、函数、...

    Python入门指南-2.7版本

    关于Python官网上的Tutorial的中文翻译,好像有几个版本。有一个是中英文对照(非左右对照,而是中英间杂),汉字还全是楷体,看着很不舒服;有一个倒是纯中文的,但是现在方便阅读的只有HTML版本,我根据后一个版本...

    Python Tutorial中英双语对照文档.md

    本文档根据官方文档 http://www.pythondoc.com/pythontutorial3/ 和 中文文档 http://www.pythondoc.com/pythontutorial3/ 翻译与整理

    Python Tutorial Python

    "Python Tutorial Python" 提到的是一个Python的入门指南,可能是针对初学者的一个教程资源,旨在帮助用户快速理解和掌握Python的基本概念和编程技巧。 **Python的特点** 1. **易学性**:Python语法清晰,易于理解...

    python-notes:Python学习笔记:memo:

    python笔记 Python笔记学习笔记 :memo: 介绍 有时候想找一个东西(写法),但当下却忘记关键字,所以整理一篇学习笔记,要找资料的时候也比较方便。 有些是网路上找的范例,然后自己再修修改改,或者去参考一些...

    Python Tutorial 3.8.1教程中文.pdf

    Python Tutorial 3.8.1教程中文 官方文档 Python Tutorial 发布3.8.1 Guido van Rossum and the Python development team 二月06, 2020 Python Software Foundation Email: docs@python.org

    Python3.4入门指南(官方文档)kindle 电子书

    Python3.4 的入门指南,官方文档。...Python 入门指南 ( The Python Tutorial ) Python 入门指南是由Python官方发布的一份教程。他也被麻省理工学院所使用。有Python 2.7以及Python 3.0的版本提供。

    [Python入门指南].(Python.Tutorial).Guido.Van.Rossum.文字版

    - **标题**:“[Python入门指南].(Python.Tutorial).Guido.Van.Rossum.文字版” - **描述**:“[Python入门指南].(Python.Tutorial).Guido.Van.Rossum.文字版” 以上标题和描述主要介绍了这份文档是关于Python编程...

    The Python Tutorial for python-2.7.6

    The Python Tutorial --python 的官方手册,建议大家好好读,也可以下载中文版学习!

Global site tag (gtag.js) - Google Analytics