|
|
|
|
 强烈要求要求要求 - canuo [ 2005-03-21 04:43 | 877 byte(s)]
 Re: 强烈要求要求要求 - limodou [ 2005-03-21 14:57 | 134 byte(s)]
 Re: 强烈要求要求要求 - canuo [ 2005-03-21 04:51 | 11,393 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
我有个想法,就是我们是否开个专栏,就是关于python库函数的翻译(E文档里的libray reference,Tutorial下面的那个),我觉得这块对大家的帮助非常大,所以运用分布式电脑的思想,我们何不也来个大家一起翻译的分布式翻译??和~ 我数了一下,你可以看library reference最 底下的modle index,我数了一下,总共有260个模块,我们可以一人一个模块的翻译啊,当然了,这个专栏里不能乱回帖,还的另开个专栏B,如果你想翻译哪个模块,到专栏B里发帖说一下你要翻译的部分,以免重复,然后将你翻译后的帖子发到A里去,这里当然还要劳驾版主,管理好帖子,别让不相干的帖子进来,这个论坛的人这么多,相信要不了几天,或许2天就能搞定,这样是不是很好:
这里要提醒的是,如果你想翻译的,必备的工具是金山词霸2005嬴政版,充分发挥词霸的指哪儿译哪儿的功能,然后加点E文基础,又有点计算机术语知识,相信大家会越译越自信。
其实我说这么多无非是想快点有本python库函数的中文译本,大家难道不这么想嘛???
|
|
|
----
我的BLOG:http://xshhe.blogchina.com
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
我作个样本:
6.11 time -- Time access and conversions time模块
这个模块提供各种有关时间的函数,他们都是可以用的,但不是所有的函数对所有的运行平台都管用,这个模块的大部分函数名和C库相同作用的函数同名,有时候这样也许对平台的文件系统有帮助,因为在不同的平台时间的调用有点不同===这些意思大概是说各种系统对C的支持比较好,所以python里对时间的调用就用了C的调用方法,这样对跨平台有帮助===
下面做一些说明,是关于一些有关时间的统一的习惯和术语:
1:新纪元是时间的开始,那年的一月一号0点,从那个时候开始的时间定义为0;,unix里。新纪元是1970年,如果你想知新纪元是什么时候,导入time模块,然后调用time.gmtime(0)看看就可知道
2:这个模块得函数不能得到新纪元之前,也不能得到未来得很长的时间,得到的时间段是决定于C库的,如unix,它的未来时间只能得到2038年。
3:Y2K问题:python决定于C库,所以它一般不会有千年虫问题,因为时间都被解释成从1970年开始到现在的秒数。而调用的时候年都是4位的,如2005,那是从秒数处理过来的,因为各种函数如果接受时间参数的话都是4位的格式。看下面的struct_time,但为了向后兼容,2位的如,02年,这种格式PYTHON也支持,但要求模块的变量accept2dear必须得是非0整数,这个变量已被初始化为1除非环境变量PYTHONY2K已被设置为非空的字符串(它默认被初始化为0),因此你可以在环境变量里设置PYTHONY2K为一个非空的字符串以便你调用年的时候都用4位的格式。如果2位的格式被允许,他们会按照POSIX或者X/Open标准被转换,如:69-99会被映射成1969-1999,而0-68,会被映射成2000-2068,而100-1899是不合法的。注意:这是从Python1.5.2(a2)以来的新的定义,而旧版本会把低于1900年的2位时间加上1900。
4: UTC就是Coordinated Universal Time(以前是Greenwich Mean Time,or GMT).
UTC不是一个错误而是english和french的一个折中,==具体不知道==
5:DST是夏令时(Daylight Saving Time),就是一个通过一个时区相差一个小时的办法来调整时间,DST制度是不可思议的(取决于当地的法律),会一年一年的改变,==不懂==,C库里有个表列出了各地的时间标准(但为了适应性通常它是从一个系统文件得到的)。
6:有些系统为了特别目的,他们的各种实事函数的精确度也许会低于标准,如在许多unix系统中,始终滴答一声,代表一秒,而它只分解成50或者100次,而不是1000ms=1s,而在苹果系统中,它是准确的1000ms
7:另方面,time() and sleep()的精确度比unix的好:时间被表示成浮点数,time()函数返回最精确的时间变量(=unix的gettimeofday( )),sleep( )函数可以接受一个非0的分数时间(因为可以转换为浮点嘛),(=unix的select( ))
8:时间的值可以由gmtime(),localtime(),and strptime()得到,他们的返回值还提供了属性名字以为了一些特别的目的,asctime(),mktime(),strftime()接受的参数是一个有9个整数的序列,
index attribute values
0 tm_year (for example, 1993)
1 tm_mon range [1,12]
2 tm_mday range [1,31]
3 tm_hour range [0,23]
4 tm_min range [0,59]
5 tm_sec range [0,61]; see (1) in strftime() description
6 tm_wday range [0,6], Monday is 0
7 tm_yday range [1,366]
8 tm_isdst 0, 1 or -1; see below
注意这个和C的结构不同,月的值是从1-12,而不是从0-11。A year value will be handled as described under 'Year 2000(Y2K)issues'above,A -1参数作为DST的标志,通过mktime()通常会让你选择一个准确的DST区域,
当你提供一个不正确长度的时间,或者非整数的元组给时间函数以期望得到一个时间格式的值,会产生错误TypeError(对后者而言)
在2.2版里做了修改,时间值序列不是一个元组而是一个struct_time,它有什么表格列出来的属性的。
这个模块定义了下面的函数和数据项::
1: accept2dyear:bool值
指示是否可以使用2位的年格式,默认是可以的即accept2dyear=True,但是如果环境变量
PYTHONY2K已经被设置位非空字符串,它或许会在运行时被修改
2:altzone:
如果它被定义了,表示本地的DST时区同西方的UTC的偏移量,如果本地的时区是东方的UTC,那么它是负数,如果本地的时区非0,那么它才会被使用。
3:asctime([t]):
将元组(9个整数)或者struct_time,同gmtime() or localtime()得到的结果一样的时间格式转换成一个24个字符组成的字符串,格式:'Sun Jun 20 23:21:05 1993',如果没有指定t值,那么通过localtime( )得到的当前时间会被作为t,本地信息不能被asctime()使用,注意::不同于C的同名函数,没有字符串结尾的
(因为C里的字符串结尾都会加一个
表示字符串的结尾),2.1版作的改变:允许不提供t值。
4:clock():
unix里,返回当前的处理器时间,表达秒的浮点数,精确点说,实事上处理器时间取决于C的同名函数,但是无论如何,这个函数是PYTHON里定制的准则,虽然是应用的C,但是在PYTHON里你就得用这个函数得到当前处理器时间。
5:ctime([seconds]):
seconds表示从新纪元开始经过的秒数,这个函数将他转换成用字符串描述的时间格式,如果seconds不提供,就将通过time()得到的秒数作为seconds,ctime()等同于asctime(localtime(seconds)),==不知道Locale information is not used by ctime().代表什么意思上面我的解释按照字面意思来的,本地信息不能被asctime()使用,这里是ctime()==,2.4版作改变:如果不提供seconds,那么当前时间作为seconds
6:daylight:
如果DST时区被定义了,那么它是非0的
7:gmtime([seconds]):
seconds同上面,将它转换成UTC的struct_time格式,而且DST标志=0,就是说以西方的某个时区(有谁知道?它的DST=0,可以同中国的北京,香港时区比较一下)格式表示时间,这里的seconds也可以没有,同上面一样都用当前时间计算出seconds,用分数表示的秒被忽略,参考上面的struct_time,它的相反的函数可以参考calendar.timegm(),2.1版作了改变:seconds如果不提供,就根据当前时间计算得到seconds
8:localtime([seconds]):
象gmtime(),但是转换成你本地系统格式的时间,seconds不提供同上面一样,当DST提供时间,DST标志会被设为1,。。
9:mktime(t):
localtime()的反函数,t是struct_time或者9个整数的元组(因为DST标志包括在这9个数中,所以如果你不提供DST标志,那么它默认会以-1代替),他么都是以本地系统格式的时间来表达的,而不是UTC,函数调用后会返回一个浮点数,以便同time()兼容,如果输入的t不正确,OverflowError或者ValueError会产生(取决于这个错误格式的t是被Python还是C调用),早期这个函数可以得到一个与平台无关的时间格式,==不知道是上面意思==
10:sleep(seconds):
和java一样,表示将程序挂起seconds秒,seconds可以是一个浮点数以便得到更精确的挂起时间,实际的挂起时间也许会比要求的少,为什么呢?因为有一些要求程序继续执行的信号会中止sleep(),==看了半天才弄懂了它的意思,也许是错误的==,当然,挂起时间也有可能会比要求的长,因为系统的有些运行程序级别比它高,抢占CPU了,==和,看不懂,所以自以为是的理解了==
11:strftime(format[,t]):
将描绘时间的元组或者struct_time对象(同过gmtime() or localtime()得到)转换成format格式的,如果t不提供,那就用当前时间通过localtime()得到t,当然如果t格式不正确,会产生ValueError错误,
下面的指示说明了format可以使用的格式:
指示 意思
%a Locale's abbreviated weekday name. abbreviated:缩写的意思,
%A Locale's full weekday name.
%b Locale's abbreviated month name.
%B Locale's full month name.
%c Locale's appropriate date and time representation.适当的日期和时间表示
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%I Hour (12-hour clock) as a decimal number [01,12].
%j Day of the year as a decimal number [001,366].
%m Month as a decimal number [01,12].
%M Minute as a decimal number [00,59].
%p Locale's equivalent of either AM or PM.
%S Second as a decimal number [00,61].
%U Week number of the year (Sunday as the first day of the week)
as a decimal number [00,53]. All days in a new year
preceding the first Sunday are considered to be in week 0.
%w Weekday as a decimal number [0(Sunday),6].
%W Week number of the year (Monday as the first day of the week)
as a decimal number [00,53]. All days in a new year
preceding the first Monday are considered to be in week 0.
%x Locale's appropriate date representation.
%X Locale's appropriate time representation.
%y Year without century as a decimal number [00,99].
%Y Year with century as a decimal number.
%Z Time zone name (no characters if no time zone exists).
%% A literal "%" character.
注意:1:
当使用strptime()时,%p只影响输出的hour段,如果使用%I会解析hour==理解不透==
2:
%S:实际范围是0-61,==后面的不懂,什么闰秒,双闰秒的==
3:
%W:当使用strptime()时,%U,%W只有当一周多少天并且一年多少天被指定了他们才运算
下面是个例子:
from time import gmtime, strftime
strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())
结果:
'Thu, 28 Jun 2001 14:17:15 +0000'
其他的一些格式也许在特定的平台上可以使用,但是上面列出的是ANSIC标准
On some platforms, an optional field width and precision specification can immediately follow the initial "%" of a directive in the following order; this is also not portable. The field width is normally 2 except for %j where it is 3.
12:strptime(string[,format]):
format指定的格式传递一个描述时间的string,得到的结果是一个同gmtime() or localtime() 返回的结果一样的struct_time,foramt参数默认的是"%a %b %d %H:%M:%S %Y",同ctime()得到的结果格式匹配,如果string不是format格式的,产生ValueError错误,如果string有多余的成分也会产生同样的错误,格式(1900, 1, 1, 0, 0, 0,0, 1, -1) .
13:struct_time
他是新版本后来添加的格式,是用来取代元组格式的,可以通过gmtime(),localtime()和strptime()得到
14:time():
返回的结果是UTC时区的,从新纪元(1970)到现在的秒数,用浮点数表示,需要注意的是,即使时间返回的总是一个浮点数,也并不表示所有的系统都能提供精确到相差1秒的性能,==有点混乱==,虽然这个函数通常都返回一个只增不减的值,但是如果你把系统的时间调回去了,那他的到的结果就有可能比先前得到的要低,和·~
14:timezone:
本地的时区偏移量,这个值在大部分西欧国家都是负数,US是正的,UK则==0
15: tzname:
是有两个字符串的元组,第一个表示local non-DST timezone,第二个表示local DST timezone,如果DST timezone没有被定义,那么第二个字符串不会被使用
16:tzset:
重新设置时间转换规则,环境变量TZ详细解释了怎么作。注意TZ环境变量不能有空格
其他参考模块:
datetime;locale;calendar
脚注:%Z现在已经不赞成使用,
The use of %Z is now deprecated, but the %z escape that expands to the preferred hour/minute offset is not supported by all ANSI C libraries. Also, a strict reading of the original 1982 RFC 822 standard calls for a two-digit year (%y rather than %Y), but practice moved to 4-digit years long before the year 2000. The 4-digit year has been mandated by RFC 2822, which obsoletes RFC 822.
|
|
|
----
我的BLOG:http://xshhe.blogchina.com
|
|
[Original]
[Print]
[Top]
|
|
|