python你会吗_Python这些问题你会吗?

Python这些问题你会吗?

final作用域的代码一定会被执行吗?

正常的情况下,finally作用域的代码一定会被执行的,不管是否发生异常。哪怕是调用了sys.exit函数,finally也是会被执行的,那怎么样才能让finally代码不执行了。

import time

choice = True

try:

if choice:

while True:

pass

else:

print "Please pull the plug on your computer sometime soon..."

time.sleep(60 * 60 * 24 * 365)

finally:

print "Finally ..."

上面的代码主要是通过让流程停滞在try作用域里,从而实现了需求。上面的代码不排除有点投机取巧的意思,但是我们实习了题目的需求不是吗。

可以对含有任意的元素的list进行排序吗?

正常情况下:

>>> a = [1, '2', '3', '1']

>>> a.sort()

>>> a

[1, '1', '2', '3']

那是不是以为着,任何list都可以调用sort函数进行排序了?

>>> x = [1, 1j]

>>> x.sort()

Traceback (most recent call last):

File "", line 1, in ?

x.sort()

TypeError: cannot compare complex numbers using , >=

python里1j是一个特殊符号代表-1的平方根,出现这个问题的原因是sort函数调用的对象的 lt 函数来比较两个对象的,而复杂的数字类型是不可比较的,也就说没有实现 lt 函数,所以比较不了。因此,对于list里包含的对象如果都是可以比较的,也就是说实现了 lt 函数,那么对list调用sort函数是没问题的。

Python可是使用++x或者x++之类的操作吗?

++x操作是可以的,但是这个操作产生的结果和C语言里该操作产生的结果是不一样的,Python里++x操作里的加好只是一个一元操作符,所以,++x等价于+(+x),所以++x == x。

x++操作是不合法的,虽然有些情况下,x++看着是合法的,比如:x++-y,但其实这个表达式等价于x+(+(-y)) = x-y,所以正常情况下,x++是不合法的。

Python里如何实现类似于C++里的cout<

实现的方法如下:

import sys

class ostream:

def __init__(self, file):

self.file = file

def __lshift__(self, obj):

self.file.write(str(obj));

return self

cout = ostream(sys.stdout)

cerr = ostream(sys.stderr)

nl = '\n'

cout << x << " " << y << nl

这地方并不是展示了一个新的python语法,这只是对python的str对象进行了封装。

Python里如何实现C++里的printf函数?

在python2中,print是一个表达式,python3里是个函数。所以在python2里,我们可以这么做:

def printf(format, *args): print format % args,

上面的代码虽然只有一行,但是,有些地方还是需要注意的。第一个地方,就是最后使用了都好结尾,这样的话会更像c++的printf函数,如果想换行,则需要传入换行符。第二个地方是这个代码会在最后多打印一个空格,如果不想要这个空格,可以使用sys.stdout.write函数。第三的方面,这行代码除了更像C++风格的printf,还有其他好处吗?当然是有的,参数是比较灵活的。

Python里逗号等号(,=)是什么意思?

你可以能见过下面的代码:

>>> x ,= range(1)

>>> x

0

实际上,没有逗号等号(,=)这种操作符,上面的代码等价于 (x,) = range(1)。 这只是一个赋值语句,在左边有一个元组,意味着将元组的每个元素赋给右边的相应元素; 在这种情况下,x被赋值为0

下面的代码是否意味着python里有阶乘的操作符?

比如下面的代码:

assert 0!=1

assert 3!=6

assert 4!=24

assert 5!=120

其实上面的代码并不是阶乘的结果,只是有意的构造代码的结果,实际上,上面的代码等价于:

assert 0 != 1

assert 3 != 6

assert 4 != 24

assert 5 != 120

这样一看,其实assert判断是不等于的关系,所以都是True。

如何快速的给Python的对象增加属性

通常我们的做法是,在对象定义的时候,定义相关的属性,那如何自由的添加对象属性了。

class Struct:

"A structure that can have any fields defined."

def __init__(self, **entries): self.__dict__.update(entries)

>>> options = Struct(answer=42, linelen=80, font='courier')

>>> options.answer

42

>>> options.answer = 'plastics'

>>> vars(options)

{'answer': 'plastics', 'font': 'courier', 'linelen': 80}

如何定义一个包含默认值的dict

在python2.7之前,必须定义一个类来处理这样的需求,现在,可以使用collections.defaultdict和collections.Counte来实现。

from collections import Counter

words = 'this is a test this is only a test'.split()

>>> Counter(words)

Counter({'this': 2, 'test': 2, 'a': 2, 'is': 2, 'only': 1})

如何计算函数的执行时间

def timer(fn, *args):

"Time the application of fn to args. Return (result, seconds)."

import time

start = time.clock()

return fn(*args), time.clock() - start

>>> timer(max, range(1e6))

(999999, 0.4921875)

当然,python还有很多现成的轮子,可以更好的计算程序每个步骤的详细信息。

如何实现单例模式

网上有很多方法,但是我知道的最简单的方式如下:

def singleton(object):

"Raise an exception if an object of this class has been instantiated before."

cls = object.__class__

if hasattr(cls, '__instantiated'):

raise ValueError("%s is a Singleton class but is already instantiated" % cls)

cls.__instantiated = True

class YourClass:

"A singleton class to do something ..."

def __init__(self, args):

singleton(self)

...

转载自我的博客: 捕蛇者说

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/350360.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

perl大骆驼和小骆驼_你好骆驼:自动文件传输

perl大骆驼和小骆驼Apache Camel在其主页上 &#xff08;以及Camel用户指南中 &#xff09;将其描述为“基于已知企业集成模式的通用开源集成框架”。 Camel框架基于《 企业集成模式 》一书&#xff0c;并提供了该书中描述的模式的实现 。 我看一下这篇文章中使用Camel的“ Hel…

Django实战1-权限管理功能实现-01:搭建开发环境

1 项目开发环境 语言环境&#xff1a; python3.6.2 , django-2.1.2数据库环境&#xff1a;sqlite3(开发环境使用&#xff0c;部署环境使用mysql5.6)开发工具&#xff1a;pycharm2 安装python 说明&#xff1a;已经安装过python3.6环境的可以跳过此步。 python安装包下载地址&a…

matlab imhist灰度直方图

imhist()函数显示图像直方图要求图像是二维的灰度图像。 1.h imhist&#xff08;I&#xff09;:直接显示灰度图像I的直方图 2.h imhist(I,b):b是用来形成直方图的‘容器’的数目,默认256。 3.h imhist(X,map):显示索引图像的直方图&#xff0c;此直方图显示颜色映射图上色…

python语言程序设计计算机二级难不难_全国计算机二级的难度有多大?

计算机二级任选一科目考试及格即可获取计算机二级证书。自2019年3月考试起&#xff0c;二级语言类及数据库类科目(即除MS Office高级应用外的其他二级科目)调整获证条件为&#xff1a;总分达到60分且选择题得分达到50%及以上(即选择题得分要达到20分及以上)的考生方可取得合格证…

Jacobian 和Hessian矩阵

雅克比&#xff08;Jacobian matrix&#xff09;矩阵&#xff1a;目标函数f为一个函数向量&#xff0c;f(f1(x),f2(x),…fm(x))T&#xff0c;自变量x(x1,x2,…,xn)T&#xff1b;函数向量f对x求梯度&#xff0c;结果为一个矩阵&#xff1b;行数为f的维数&#xff1b;列数位x的维…

循环语句 for循环、while循环、do while循环

循环语句可以在满足循环条件的情况下&#xff0c;反复执行某一段代码&#xff0c;这段被重复执行的代码被称为循环体语句&#xff0c;当反复执行这个循环体时&#xff0c;需要在合适的时候把循环判断条件修改为false&#xff0c;从而结束循环&#xff0c;否则循环将一直执行下去…

获取按钮点击次数_无限次数使用,不会吧?不会吧?

就目前来说国内设计教程的网站虎课网还是很不错的里面的教程都很丰富但无奈的是普通用户每天只能学习一个课程想要学习多点就要充值而且会员只能开通年费对于只需偶尔学习一下的小伙伴来说可能太浪费了所以今天来大家分享一个超好用的浏览器插件官网看(适用平台&#xff1a;Chr…

现代化历险记:策略+将COBOL转换为Java的示例

在Keyhole Software&#xff0c;我们在很大程度上是一家现代化公司。 我们拥有一些顾问&#xff0c;他们专门研究将旧的代码迁移到新的&#xff0c;翻新的残旧代码库&#xff0c;并为大多数已经被供应商锁定的企业设计更光明的未来。 作为这些经验的有趣的副作用&#xff0c;我…

String类的特点和使用步骤

概述 java.lang.String 类代表字符串。Java程序中所有的字符串文字&#xff08;例如 "abc" &#xff09;都可以被看作是实现此类的实例 类 String 中包括用于检查各个字符串的方法&#xff0c;比如用于比较字符串&#xff0c;搜索字符串&#xff0c;提取子字符串以及…

Ostu最大类间差方法

Ostu方法又名最大类间差方法&#xff0c;通过统计整个图像的直方图特性来实现全局阈值T的自动选取&#xff0c;其算法步骤为&#xff1a; 1) 先计算图像的直方图&#xff0c;即将图像所有的像素点按照0~255共256个bin&#xff0c;统计落在每个bin的像素点数量 2) 归一化直方图…

pads 文本不能修改_斜框检测经典网络(文本)- R2CNN

论文题目&#xff1a;R2CNN&#xff1a;Rotational Region CNN for Orientation Robust Scene Text Detection论文来源&#xff1a;2017CVPR论文地址&#xff1a;https://arxiv.org/abs/1706.09579论文代码&#xff1a;https://github.com/DetectionTeamUCAS/R2CNN_Faster-RCNN…

【题解】炮兵阵地

【题解】炮兵阵地 luogu 题解 暴力状压记录上一行和上上行信息&#xff0c;暴力判断是否存在不合法的阵地&#xff0c;暴力滚动数组&#xff0c;暴力统计&#xff0c;暴力转移即可。 看了yyb代码&#xff0c;我感觉我不曾写过代码... 加入说不要那么暴力也可以&#xff0c;可以…

matlab reshape矩阵维度变换

B reshape(A,m,n) 将矩阵A的元素返回到一个mn的矩阵B。如果A中没有mn个元素则返回一个错误。 B reshape(A,m,n,p,...) or B reshape(A,[m n p ...]) 把A中元素进行重塑成mnp…的矩阵&#xff0c;特别地&#xff0c;指定的维数mnp…的积必须与prod(size(A))相同。 …

使用Arquillian测试Spring Data + Spring Boot应用程序(第2部分)

在上一篇文章中 &#xff0c;我写了关于如何使用Arquillian Cube和 Docker一起测试Spring Data应用程序的信息。 测试看起来像&#xff1a; RunWith(SpringRunner.class) SpringBootTest(classes PingPongController.class, webEnvironment RANDOM_PORT) ContextConfigurati…

OpenCV circle图像上画圆

OpenCV中circle与rectangle函数显示&#xff0c;只不过rectangle在图像中画矩形&#xff0c;circle在图像中画圆。 void circle(Mat img, Point center, int radius, Scalar color, int thickness1, int lineType8, int shift0) img为源图像 center为画圆的圆心坐标 radius…

如何得到长整数逆序后的整数

目录 一 如何得到长整数逆序后的整数注&#xff1a;原创不易&#xff0c;转载请务必注明原作者和出处&#xff0c;感谢支持&#xff01; 一 如何得到长整数逆序后的整数 最近在写代码遇到这样一个问题&#xff1a;如何得到得到一个长整型数逆序后的长整型数&#xff1f;比如输入…

python网页表格读取_是否可以读取网页html表格数据?

我目前正在考虑一些自动读取网页数据。因此&#xff0c;有没有可能从网页中读取以下类型的表格&#xff1a;excel应该有一个值name of condion,Operator and Expressions。在编辑>>> from urllib import urlopen>>> from bs4 import BeautifulSoup>>&g…

matlab exist()判断目录文件是否存在

if exist(abc.doc,file)0error(display(文件不存在));end判断当前目录中是否存在x文件夹&#xff0c;若不存在则创建if exist(x,dir)0mkdir(x);end

20190608笔试题のCSS-属性继承

以下的CSS属性哪些可以继承&#xff1f;&#xff08;单选&#xff09; A. font-sizeB. marginC. widthD. padding emmm&#xff0c;这题答案是A&#xff0c;看到这题我是能选对的&#xff0c;但又不由让我想到一件事情&#xff0c;在全部的CSS属性里有哪些是不可被继承…

群晖套件来源_群晖安装IPKG包管理器及第三方社区安装包步骤

运行环境为群晖DS1517&#xff0c;系统版本为DSM6.2.3。群晖虽然是基于Linux开发的&#xff0c;但与Red Hat或者Ubuntu这样的公开发行版不同&#xff0c;群晖除了官方的图形化包管理器外&#xff0c;并没有提供类似yum或者apt-get等类似包管理器。为了通过命令行安装诸如nano 等…