`
aeritheve
  • 浏览: 33843 次
  • 性别: Icon_minigender_2
  • 来自: 沈阳
社区版块
存档分类
最新评论

Python学习——更多的Python内容

 
阅读更多

更多的Python内容

 

  • 特殊的方法

        在类中有一些特殊的方法具有特殊的意义,比如__init__和__del__方法,它们的重要性我们已经学习过了。
        一般说来,特殊的方法都被用来模仿某个行为。例如,如果你想要为你的类使用x[key]这样的索引操作(就像列表和元组一样),那么你只需要实现__getitem__()方法就可以了。
下面这个表中列出了一些有用的特殊方法。如果你想要知道所有的特殊方法,你可以在《Python参考手册》中找到一个庞大的列表。

名称  说明
__init__(self,...) 这个方法在新建对象恰好要被返回使用之前被调用。
__del__(self) 恰好在对象要被删除之前调用。
__str__(self) 在我们对对象使用print语句或是使用str()的时候调用。
__lt__(self,other) 当使用 小于 运算符(<)的时候调用。类似地,对于所有的运算符(+,>等等)都有特殊的方法。
__getitem__(self,key) 使用x[key]索引操作符的时候调用。
__len__(self) 对序列对象使用内建的len()函数的时候调用。

 

  • 单语句块

        每一个语句块是通过它的缩进层次与其它块区分开来的。然而这在大多数情况下是正确的,但是并非100%的准确。如果你的语句块只包含一句语句,那么你可以在条件语句或循环语句的同一行指明它。
        就如你所看见的,单个语句被直接使用而不是作为一个独立的块使用。虽然这样做可以使你的程序变得小一些 ,但是除了检验错误之外我强烈建议你不要使用这种缩略方法。不使用它的一个主要的理由是一旦你使用了恰当的缩进,你就可以很方便地添加一个额外的语句。
        另外,注意在使用交互模式的Python解释器的时候,它会通过恰当地改变提示符来帮助你输入语句。

 

  • 列表综合

        通过列表综合,可以从一个已有的列表导出一个新的列表。例如,你有一个数的列表,而你想要得到一个对应的列表,使其中所有大于2的数都是原来的2倍。对于这种应用,列表综合是最理想的方法。
        使用列表综合例子如下:

listone = [2, 3, 4]
listtwo = [2*i for i in listone if i > 2]
print listone
print listtwo 

        输出:

[2, 3, 4]
[6, 8]

        这里我们为满足条件(if i > 2)的数指定了一个操作(2*i),从而导出一个新的列表。注意原来的列表并没有发生变化。在很多时候,我们都是使用循环来处理列表中的每一个元素,而使用列表综合可以用一种更加精确、简洁、清楚的方法完成相同的工作。

  • 在函数中接收元组和列表

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

def powersum(power, *args):
    total = 0
    for i in args:
        total += pow(i, power)
    return total

sum1 = powersum(2, 3, 4)
print 'sum1=%s' % sum1
sum2 = powersum(2, 10)
print 'sum2=%s' % sum2

        输出:

sum1=25
sum2=100

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

  • lambda形式

        lambda语句被用来创建新的函数对象,并且在运行时返回它们。
        使用lambda形式例子如下:

def make_repeater(n):
    return lambda s: s*n
twice = make_repeater(2)
print twice('word')
print twice(5) 

        输出:

wordword
10

        这里,我们使用了make_repeater函数在运行时创建新的函数对象,并且返回它。lambda语句用来创建函数对象。本质上,lambda需要一个参数,后面仅跟单个表达式作为函数体,而表达式的值被这个新建的函数返回。注意,即便是print语句也不能用在lambda形式中,只能使用表达式。

  • exec和eval语句

        exec语句用来执行储存在字符串或文件中的Python语句。例如,我们可以在运行时生成一个包含Python代码的字符串,然后使用exec语句执行这些语句。
下面是一个简单的例子:

exec 'print "Hello World"'

        输出:

Hello World 

        eval语句用来计算存储在字符串中的有效Python表达式。
        下面是一个简单的例子:

eval('2*3')

        输出:

6 
  • assert语句

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

mylist = ['item']
print mylist
assert len(mylist) >= 1
mylist.pop()
print mylist
assert len(mylist) >= 1

        输出:

['item']
[]
Traceback (most recent call last):
  File "D:\MyEclipse10\Workspaces\HelloWord\src\others\assertTest.py", line 12, in <module>
    assert len(mylist) >= 1
AssertionError

 

  • repr函数

        repr函数用来取得对象的规范字符串表示。反引号(也称转换符)可以完成相同的功能。注意,在大多数时候有eval(repr(object)) == object。
        repr函数使用例子如下:

i = []
i.append('item')
print i
print repr(i)

        输出:

['item']
['item']

        基本上,repr函数和反引号用来获取对象的可打印的表示形式。你可以通过定义类的__repr__

方法来控制你的对象在被repr函数调用的时候返回的内容。

分享到:
评论

相关推荐

    每天分享几个python项目 —— cobra snake game

    【标题】:“每天分享几个python项目 —— cobra snake game” 在这个项目中,我们将探讨一个经典的游戏——Python...在完成这个游戏后,学习者将对Python编程有更深入的理解,并且为未来更复杂的项目奠定坚实基础。

    Python学习 —— 代码&amp;笔记(年11月30日、12月1日).zip

    这篇笔记主要涵盖了在11月30日和12月1日期间进行的Python学习内容,其中包括了基本语法、数据结构、控制流程、函数、模块化编程等多个重要知识点。以下是详细的解释: 1. **Python基础语法**: - **变量与数据类型...

    python项目 —— notepad-editor

    【Python项目——Notepad编辑器】是一个利用Python开发的简易文本编辑器,它展示了如何用Python实现一个类似Windows记事本的功能。这个项目是初学者理解Python编程、GUI设计以及文件操作的好例子。通过这个项目,...

    python入门——python基础语法2(csdn)————程序.pdf

    Python是一种广泛使用的高级编程语言,尤其适合初学者入门。这篇文档主要介绍了Python的基础语法,...在后续的学习中,你还将接触到更多的Python特性,如条件语句、循环、函数和模块,这些都将帮助你构建更复杂的程序。

    每天分享几个python项目 —— simple-connect-four-game-using-python

    【描述】"python实战"表明这个项目不仅涉及理论学习,更强调实践应用。Python是一种广泛使用的开发语言,尤其在数据处理、Web开发和自动化任务等领域有广泛应用。在实战项目中,学习者可以直接运用所学知识解决具体...

    Python基础——笔试面试利器

    ### Python基础——笔试面试利器 #### 一、Python的函数参数传递 在Python中,所有变量都被视为内存中对象的“引用”。这一点非常重要,因为理解这一点有助于我们掌握Python中的参数传递机制。 - **不可更改对象*...

    Python——机器学习实战——决策树

    在这个“Python——机器学习实战——决策树”教程中,你将深入学习如何运用这些技术进行实际问题的解决,包括数据预处理、特征选择、模型训练、模型评估和可视化。通过实践,你可以更好地掌握决策树这一强大的机器...

    Python——机器学习实战——K均值聚类算法分组

    在这个"Python——机器学习实战——K均值聚类算法分组"的教程中,我们将深入探讨如何使用Python来实现这个算法。 首先,K均值算法的核心思想是通过迭代找到最佳的K个聚类中心,使得每个数据点到其所属类别中心的...

    每天分享几个python项目 —— guess a word game

    "每天分享几个python项目 —— guess a word game",这表明这个项目是Python编程系列教程的一部分,旨在通过实际操作帮助学习者巩固基础知识,提高编程技能。猜词游戏通常涉及到随机选择单词、用户输入猜测、错误...

    Python——机器学习实战——Logistic回归

    在提供的压缩包文件中,"Python——机器学习实战——Logistic回归"可能包含详细的代码示例,展示了如何运用以上概念来构建和评估一个Logistic回归模型。通过学习这个实战案例,你可以更好地理解和应用Logistic回归到...

    Python——机器学习实战——AdaBoost分类

    在机器学习实战中,Python的`scikit-learn`(简称`sklearn`)库是不可或缺的,它提供了许多机器学习算法,包括AdaBoost。 **AdaBoost工作原理**: 1. **初始化**:首先,AdaBoost分配相同的权重给每一个训练样本。 ...

    python项目 —— guessing game

    这将涉及到更多的Python编程技巧,如字符串格式化、列表操作以及类和对象的概念。 此外,为了使代码更整洁和易于维护,我们可以考虑将游戏逻辑封装在一个函数中,甚至可以创建一个简单的类来代表游戏。这样,我们...

    每天分享几个python项目 —— rps-game-multiplayer-using-python.zip

    通过这个项目,学习者不仅可以巩固Python编程技能,还能了解网络编程、并发处理、图形界面设计等更高级的概念,对提升编程综合能力大有裨益。同时,参与多人游戏项目有助于提高团队协作和项目管理能力。

    python脚本——xray-pro爬虫直接网页爆漏洞.zip

    Xray是一个开源的渗透测试框架,它的Pro版本通常包含了更多高级功能,如自动化漏洞扫描、深度漏洞挖掘等。Xray-Pro的爬虫功能允许用户对目标网站进行全面的爬取,以便查找可能的安全漏洞。通过自定义的扫描参数,...

    每天分享几个python项目 —— chatapp_0

    【Python项目实战——ChatApp_0详解】 在Python开发领域,实战项目是提升技能和理解应用的绝佳方式。"ChatApp_0"就是一个基于Python构建的简单聊天应用程序,旨在帮助初学者和进阶者理解如何利用Python进行后端开发...

    python项目 —— memory-game

    2. 多人模式:允许两个或更多玩家参与,增加游戏趣味性。 3. 高分榜:保存和显示最佳成绩,增加竞争性。 4. 不同难度级别:调整卡片数量和打乱算法,实现不同难度级别的游戏。 通过这个Python项目,不仅可以巩固...

    Python编程——从入门到实践外星人入侵项目代码及图片

    通过实践这个项目,你不仅能学习到Python编程,还能掌握游戏开发的基本技巧,这将对你的编程技能提升大有裨益。记住,实践是检验理论的最好方式,动手编写代码并不断调试,你将能更好地理解和掌握这些知识。

    python爬虫——微博热门评论

    Python有多个库支持代理管理,如proxybroker,可以自动获取和更换代理。 8. **定时任务**:如果需要定期爬取微博热门评论,可以结合crontab(Linux)或Task Scheduler(Windows)设置定时任务,或者使用Python的...

    1082838225293101Python爬虫——快速批量抓取表格数据并保存至Excel中.rar

    标题中的“Python爬虫——快速批量抓取表格数据并保存至Excel中”表明这是一个关于使用Python编程语言进行网络爬虫的教程,旨在教授如何高效地抓取网页上的表格数据,并将这些数据存储到Excel文件中。这个过程通常...

    C语言、VB还是Python?——谈高校非计算机专业学生编程入门课程选择.zip

    C语言和VB也有大量资料,但可能需要更多指导。 5. **兴趣**:个人兴趣也是选择编程语言的重要考量,兴趣是最好的老师,选择自己喜欢的语言会更愿意投入时间和精力。 综上所述,高校在为非计算机专业学生选择编程...

Global site tag (gtag.js) - Google Analytics