特殊的方法

__init__(self,...):这个方法在新建对象恰好要被返回使用之前被调用

__del__(self):恰好在对象要被删除之前调用

__str__(self):我们对对象使用print语句或使用str()的时候调用

__lt__(self,other):当使用小于运算符(<)的时候调用

__getitem__(self,key):使用x[key]索引操作符的时候调用

__len__(self):对序列对象使用内建的len()函数的时候调用

列表综合

通过列表综合,可以从一个已有的列表导出一个新的列表。

eg:你有一个数的列表,而你想要得到一个对应的列表,使其中所有大于2的数都是原来的2倍,对于这种,列表综合是最理想的方法。

#!/usr/bin/python
#Filename:list_comprehension.py listone = [,,]
listtwo=[*i for i in listone if i > ]
print listtwo
print listone

结果:

[, ]
[, , ]

在函数中接收元组和列表

当要使函数接收元组或字典形式的参数的时候,有一种特殊的方法,分别使用*和**前缀。这种方法在函数需要获取可变数量的参数的时候特别有用。

>>> def powersum(power,*args):
'Return the sum of each argument raised to specified power.'
total=
for i in args:
total += pow(i,power)
return total

结果:

>>> powersum(,,)

由于在args变量前有*前缀,所有多余的函数参数都会作为一个元组存储在args中。如果使用的是**前缀,多余的参数则会被认为是一个字典的键值对

lambda形式:

lambda语句被用来创建新的函数对象,并且在运行时返回它们

#!/usr/bin/python
#Filename:lambda.py def make_repeater(n):
return lambda s:s*n twice = make_repeater() print twice('word')
print twice()

结果:

wordword

分析:lambda语句用来创建函数对象。本质上,lambda需要一个参数,后面仅跟单个表达式作为函数体,而表达式的值被这个新建的函数返回。

注意:即便是print语句也不能用在lambda形式中,只能使用表达式。

exec和eval语句

exec语句用来执行存储在字符串或文件中的python语句。

例如:我们可以在运行时生成一个包含Python代码的字符串,然后使用exec语句执行这些语句。

>>> exec 'print "Hello World"'
Hello World

eval语句用来计算储存在字符串中的有效Python表达式。

>>> eval('2*3')

assert语句

assert语句用来声明某个条件是真的。

例如:如果你非常确信某个你使用的列表中至少有一个元素,而你想要检验这一点,并且在它非真的时候引发一个错误,那么assert语句是应用在这种情形下的理想语句。

当assert语句失败的时候,会引发一个AssertionError

>>> mylist=['item']
>>> assert len(mylist)>=
>>> mylist.pop()
'item'
>>> assert len(mylist)>= Traceback (most recent call last):
File "<pyshell#18>", line , in <module>
assert len(mylist)>=
AssertionError

repr函数

repr函数用来取得对象的规范字符串表示。反引号(也称转换符)可以完成相同的功能。

>>> i=[]
>>> i.append('item')
>>> `i`
"['item']"
>>> repr(i)
"['item']"

斜杠‘/’。反斜杠‘\’。

简明python教程十一----更多Python的内容的更多相关文章

  1. Python教程(1.2)——Python交互模式

    上一节已经说过,安装完Python,在命令行输入"python"之后,如果成功,会得到类似于下面的窗口: 可以看到,结尾有3个>符号(>>>).>&g ...

  2. python 教程_【python 基础教程详解】

    Lesson 1 准备好学习Python的环境下载的地址是:www.python.org为了大家的方便,我在校内作了copy:http://10.1.204.2/tool/compiler&I ...

  3. 简明Python3教程 17.更多

    简介 迄今为止我们已经学习了python中的大多数常用知识.本章中我们会接触到更多的知识,使得我们更全面的掌握python. 传递元组 你是否希望过从函数返回两个不同的值?做到这点使用元组即可. &g ...

  4. python教程 - 猿说python

    一.简介         知识改变命运,程序改变世界.互联网时代潜移默化的改变着我们的生活,伴随技术的进步,我想下一个时代应该属于人工智能和机器学习,属于python.           pytho ...

  5. 《简明python教程》笔记一

    读<简明Python教程>笔记: 本书的官方网站是www.byteofpython.info  安装就不说了,网上很多,这里就记录下我在安装时的问题,首先到python官网下载,选好安装路 ...

  6. (原+转)简明 Python 教程:总结

     简明 Python 教程 说明:本文只是对<简明Python教程>的一个总结.请搜索该书查看真正的教程. 第3章 最初的步骤 1. Python是大小写敏感的. 2. 在#符号右面的内容 ...

  7. 笔记|《简明Python教程》:编程小白的第一本python入门书

    <简明Python教程>这本书是初级的Python入门教材,初级内容基本覆盖,对高级内容没有做深入纠结.适合刚接触Python的新手,行文比较简洁轻松,读起来也比较顺畅. 下面是我根据各个 ...

  8. 简明Python教程 ~ 随书笔记

    本文是阅读<简明Python教程>所做的随书笔记,主要是记录一些自己不熟悉的用法,或者所看到的比较有意思的内容,本书英文版A Byte of Python, 中文译版 简明Python教程 ...

  9. 【转】简明 Python 教程

    原文网址:http://woodpecker.org.cn/abyteofpython_cn/chinese/ 简明 Python 教程Swaroop, C. H. 著沈洁元  译www.byteof ...

随机推荐

  1. myeclipse工程重名后怎么更改deploy location?

    http://zhidao.baidu.com/link?url=I9E16OYfxovPHqBrRWhYCI9TYNG_X-Whg_X7QrJiOBXBGEwi-6WYsC-Zi4Jcg9zd3ye ...

  2. 抹掉Scala的糖衣(14) -- Update Method

    欢迎关注我的新博客地址:http://cuipengfei.me/ 在Scala中,名字叫做update的方法是有特殊作用的. 比如: 1 2 3 val scores = new scala.col ...

  3. KMP + 求最小循环节 --- POJ 2406 Power Strings

    Power Strings Problem's Link: http://poj.org/problem?id=2406 Mean: 给你一个字符串,让你求这个字符串最多能够被表示成最小循环节重复多少 ...

  4. C++ 引用本质的详解

    //引用本质的理解① #include<iostream> using namespace std; int GetA(){ ; return a; } int & GetB(){ ...

  5. 关于Unity5.5中固定刚体旋转的方法

    给对象增加刚体后进行碰撞,会使得对象不自主地旋转 为了不让对象+刚体旋转,我们可以选择那个对象的Inspector视图--Rigidbody 2D--Constraints--Freeze Posit ...

  6. 009Maven_建立私服——报错问题

    前一篇文章的建立私服一直出问题,这里的问题是: jdk6.0只支持nuxus2.5及以下的版本,要支持nexus2.6以上,必须要jdk7.0以上.不然报错,把nexus-2.6.2war包放在Tom ...

  7. 【BZOJ】1025: [SCOI2009]游戏(置换群+dp+特殊的技巧+lcm)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1025 首先根据置换群可得 $$排数=lcm\{A_i, A_i表示循环节长度\}, \sum_{i= ...

  8. MathType中空格个数怎么显示

    在使用Word文档的时候很时候用原软件自带的公式编辑器不是很好用,也不方法.MathType就是来解决这个问题的,但是一些用户在使用过程中发现不会看究竟输了多少空格,只能估摸大概.下面本MathTyp ...

  9. IOS实现打电话后回调

    本文转载至 http://blog.csdn.net/cerastes/article/details/38340687   UIWebView *callWebview =[[UIWebView a ...

  10. Java之线程池

    假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间.当T1 + T3 远大于 T2时,采用多线程技术可以显著减少处理器单元的闲置时间,增加处理器 ...