元组是不可变的Python对象序列。元组的序列就像列表。唯一的区别是,元组不能被改变,即元组是不可被修改。元组使用小括号,而列表使用方括号。 创建一个元组很简单,只要把不同的逗号分隔值,可以把括号中的这些逗号来分隔每个值。例如:tup1 = (physics, chemistry, 1997, 2000); tup2 = (1, 2, 3, 4, 5 ); tup3 = "a", "b", "c", "d";空的元组写为含有两对称括号:tup1 = ();要元组中包含一个值,必须有一个逗号,即使只有一个值...
type()方法返回传递变量的类型。如果传递变量是字典那么它将返回一个字典类型。 语法 以下是type()方法的语法:type(dict)参数dict -- 这是字典返回值 此方法返回传递变量的类型。 例子 下面的例子显示type()方法的使用#!/usr/bin/pythondict = {Name: Zara, Age: 7}; print "Variable Type : %s" % type (dict)当我们运行上面的程序,它会产生以下结果:Variable Type : <type dict>
localtime()方法类似gmtime()方法,但它转换秒数为本地时间。如果不设置秒时或None,所返回的当前时间使用time()方法。在dst标志被设置为1时,夏令时适用于给定的时间。 语法 以下是localtime()方法的语法:time.localtime([ sec ])参数sec -- 这是秒数转换成结构struct_time来表示。返回值 此方法不返回任何值。 例子 下面的例子显示了localtime()方法的使用。#!/usr/bin/python import timeprint "time.localtime() : %s" % time...
本章将覆盖所有在Python中使用的基本I/O功能。有关更多函数,请参考标准Python文档。 打印到屏幕上: 产生输出最简单的方法是使用print语句,可以通过用逗号分隔的零个或多个表达式。该函数将传递到一个字符串表达式,并将结果写到标准输出,如下所示:#!/usr/bin/pythonprint "Python is really a great language,", "isnt it?";这将产生结果输出在标准屏幕上,结果如下:Python is really a great language, isnt it?读取键盘输入...
这个语法是用来代替传统的try...finally语法的。 代码如下: with EXPRESSION [ as VARIABLE] WITH-BLOCK 基本思想是with所求值的对象必须有一个__enter__()方法,一个__exit__()方法。 紧跟with后面的语句被求值后,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被执行完之后,将调用前面返回对象的__exit__()方法。代码如下: file = open("/tmp/foo.txt") try:data = file.r...
一、问题的发现与提出 在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如代码段1: 代码段1:代码如下:class A:def __init__(self):print "enter A"print "leave A"class B(A):def __init__(self):print "enter B"A.__init__(self)print "leave B">>> b = B()enter Benter Aleave Aleave B即,使用非绑定的类方法(用类名来引用的方法),并在参数列表中,引入待绑定的对象(self),从而达到调...
Python中包含了许多内建的语言特性,它们使得代码简洁且易于理解。这些特性包括列表/集合/字典推导式,属性(property)、以及装饰器(decorator)。对于大部分特性来说,这些“中级”的语言特性有着完善的文档,并且易于学习。 但是这里有个例外,那就是描述符。至少对于我来说,描述符是Python语言核心中困扰我时间最长的一个特性。这里有几点原因如下: 1.有关描述符的官方文档相当难懂,而且没有包含优秀的示例告诉你为什么需要...
首先通过一个例子来看一下本文中可能用到的对象和相关概念。代码如下: #coding:UTF-8 import sys # 模块,sys指向这个模块对象 import inspect def foo(): pass #函数,foo指向这个函数对象 class Cat(object): #类,Cat指向这个类对象def __init__(self,name=kitty):self.name = namedef sayHi(self): # 实例方法,sayHi指向这个方法对象,使用类或实例.sayHi访问print self.name, saysHi! #访问名为name的字段,使用实例.name访问...
推导式是Python中很强大的、很受欢迎的特性,具有语言简洁,速度快等优点。推导式包括: 1.列表推导式 2.字典推导式 3.集合推导式 嵌套列表推导式 NOTE: 字典和集合推导是最近才加入到Python的(Python 2.7 和Python 3.1以上版). 下面简要介绍下: 【列表推导式】 列表推导能非常简洁的构造一个新列表:只用一条简洁的表达式即可对得到的元素进行转换变形 其基本格式如下:代码如下: [expr for value in collection ifcondition]过滤条件...
python3与python2的还是有诸多的不同,比如说在2中:代码如下: print "Hello,World!" raw_input() 在3里面就成了:代码如下: print ("Hello,World!") input() 所以如果用的python2开发的项目要迁移到3中,就需要进行代码的转换。Python3中自带了个转换工具,下面用个最简单的例子来说说2to3转换工具。 例子:(2to3Test.py 里面只有print这行代码)代码如下: # python 2.7.6 # 2to3Test.py print "Hello,World!" 用python27显...
刚来这个公司,熟悉了环境,老大就开始让我做一个迁移、修改代码的工作,我想说的是,这种工作真没劲~~,看别人的代码、改别人的代码、这里改个变量、那里改个文件名······,都是些没技术含量、很繁琐的事情,不过通过迁移代码顺便熟悉下环境也好。扯了这么多,说说今天的主题吧——代码编码格式改变,由于某些原因,需要将代码从A机房迁移到B机房,这两个之间不能互相访问,但是历史原因导致A机房的代码全是utf8编码的,B机房要求...
文章的主题 不要使用可变对象作为函数的默认参数例如 list,dict,因为def是一个可执行语句,只有def执行的时候才会计算默认默认参数的值,所以使用默认参数会造成函数执行的时候一直在使用同一个对象,引起bug。 基本原理 在 Python 源码中,我们使用def来定义函数或者方法。在其他语言中,类似的东西往往只是一一个语法声明关键字,但def却是一个可执行的指令。Python代码执行的时候先会使用 compile 将其编译成 PyCodeObject. PyCo...
zip文件格式是通用的文档压缩标准,在ziplib模块中,使用ZipFile类来操作zip文件,下面具体介绍一下: class zipfile.ZipFile(file[, mode[, compression[, allowZip64]]]) 创建一个ZipFile对象,表示一个zip文件。参数file表示文件的路径或类文件对象(file-like object);参数mode指示打开zip文件的模式,默认值为r,表示读已经存在的zip文件,也可以为w或a,w表示新建一个zip文档或覆盖一个已经存在的zip文档,a表示将数据附加到...
copy模块用于对象的拷贝操作。该模块非常简单,只提供了两个主要的方法: copy.copy 与 copy.deepcopy ,分别表示浅复制与深复制。什么是浅复制,什么是深复制,网上有一卡车一卡车的资料,这里不作详细介绍。复制操作只对复合对象有效。用简单的例子来分别介绍这两个方法。 浅复制只复制对象本身,没有复制该对象所引用的对象。#coding=gbk import copy l1 = [1, 2, [3, 4]] l2 = copy.copy(l1) print l1 print l2 l2[2][0] = 50 ...
Python中的闭包的概念, 在我看来, 就相当于在某个函数中又定义了一个或多个函数, 内层函数定义了具体的实现方式, 而外层返回的就是这个实现方式, 但并没有执行, 除非外层函数调用的内层的实现方法被执行了。至于这个怎么执行, 看下面的例子就知道了 比如:def sum_outer(x, y):def sum_in(z):return x + y - z;return sum_in #注意, 这里返回的不是sum_in() 只是sum_in的函数名m = sum_outer(3, 4) #3, 4 分别对应x, y,...