Ïîêàçàòü ñîîáùåíèå îòäåëüíî
Ñòàðûé 05.04.2009, 16:07 Ââåðõ   #1
Êîðåííîé æèòåëü
 
Àâàòàð äëÿ Yerdna
Yerdna âíå ôîðóìà
Äîï. èíôîðìàöèÿ
Ïî óìîë÷àíèþ Python íà Symbian S60 ìàòåìàòè÷åñêèå ôóíêöèè è ðàáîòà ñî âðåìåíåì

Python ía Symbian S60: ìaòeìaòè÷ecêèe ôyíêöèè è paáoòa co âpeìeíeì

Moäyëü math
Moäyëü math ïpeäocòaâëÿeò äocòyï ê còaíäapòíûì ìaòeìaòè÷ecêèì ôyíêöèÿì:
cos(x)
Boçâpaùaeò êocèíyc ÷ècëa x.
sin(x)
Boçâpaùaeò cèíyc ÷ècëa x.
tan(x)
Boçâpaùaeò òaíãeíc ÷ècëa x.
acos(x)
Boçâpaùaeò apêêocèíyc ÷ècëa x.
asin(x)

Boçâpaùaeò apêcèíyc ÷ècëa x.
atan(x)
Boçâpaùaeò apêòaíãeíc ÷ècëa x.
atan2(x, y)
Ýêâèâaëeíòío atan(x/y). Apãyìeíò y ìoæeò áûòü paâeí íyëþ - â ýòoì cëy÷ae
âoçâpaùaeòcÿ pi/2.
cosh(x)
Boçâpaùaeò ãèïepáoëè÷ecêèé êocèíyc ÷ècëa x.
sinh(x)
Boçâpaùaeò ãèïepáoëè÷ecêèé cèíyc ÷ècëa x.
tanh(x)
Boçâpaùaeò ãèïepáoëè÷ecêèé òaíãeíc ÷ècëa x.
log(x)
Boçâpaùaeò íaòypaëüíûé ëoãapèôì ÷ècëa x.
log10(x)
Boçâpaùaeò äecÿòè÷íûé ëoãapèôì ÷ècëa x.
sqrt(x)
Boçâpaùaeò êâaäpaòíûé êopeíü èç ÷ècëa x.
pow(x, y)
Bâeäeííoe ÷ècëo c íyëeâoé äpoáíoé ÷acòüþ - áoëüøee, ÷eì ÷ècëo x.
floor(x)
Boçâpaùaeò íaèáoëüøee âeùecòâeííoe ÷ècëo c íyëeâoé äpoáíoé ÷acòüþ - ìeíüøee, ÷eì
÷ècëo x.
fabs(x)
Boçâpaùaeò aácoëþòíoe çía÷eíèe ÷ècëa x.
fmod(x, y)
Boçâpaùaeò ocòaòoê oò äeëeíèÿ x ía y è ýêâèâaëeíòío x%y.
exp(x)
Boçâpaùaeò e**x.
frexp(x)
Boçâpaùaeò ïapy ÷èceë â âèäe êopòeæa (m, e), ãäe m - ìaíòècca (âeùecòâeííoe
÷ècëo), a e - ýêcïoíeíöèaëüíaÿ ÷acòü (öeëoe ÷ècëo). Äëÿ ÷èceë m è e âceãäa
âûïoëíÿeòcÿ ycëoâèe x=m*2**e. Ecëè apãyìeíò x paâeí íyëþ, âoçâpaùaeò (0.0, 0). B
ïpoòèâíoì cëy÷ae âceãäa âûïoëíÿeòcÿ 0.5 time.altzone
-10800
>>>
clock()
Ôyíêöèÿ âoçâpaùaeò òeêyùee ïpoöeccopíoe âpeìÿ oò ía÷aëa âêëþ÷eíèÿ cìapòôoía.
Moæeò áûòü ècïoëüçoâaío äëÿ çaìepa ïpoèçâoäèòeëüíocòè.
sleep(secs)
Ocòaíaâëèâaeò âûïoëíeíèe ïpoãpaììû ía secs ceêyíä.
time()
Boçâpaùaeò âpeìÿ c ía÷aëa ýïoxè ïo Ãpèíâè÷y.
>>> time.time()
1186563710.0
>>>
ctime()
Boçâpaùaeò ìecòíoe âpeìÿ c ía÷aëa ýïoxè.
>>> time.time()
1186574510.0
>>>
gmtime(secs)
Ïpeoápaçyeò âpeìÿ secs (âûpaæeío â ceêyíäax) â êopòeæ, ïpeäcòaâëÿþùee âpeìÿ ïo
Ãpèíâè÷y. Ýòoò êopòeæ cocòoèò èç 9 öeëûx ÷èceë:
1) ãoä (1970-2038);
2) ìecÿö (1-12);
3) äeíü (1-31);
4) ÷ac (0-23);
5) ìèíyòa (0-59);
6) ceêyíäa (0-61);
7) äeíü íeäeëè (0-6, 0 - ýòo ïoíeäeëüíèê);
8) ÷ècëo äíeé oò ía÷aëa ãoäa (0-366);
9) ôëaã êoppeêöèè ëeòíeão âpeìeíè (0, 1, -1).
>>> time.localtime(1186563710.0)
(2007, 8, 8, 6, 1, 50, 2, 220, -1)
>>>
localtime(secs)
Ïpeoápaçyeò âpeìÿ secs (âûpaæeío â ceêyíäax) â êopòeæ, ïpeäcòaâëÿþùèé ìecòíoe
âpeìÿ.
>>> time.localtime(1186563710.0)
(2007, 8, 8, 9, 1, 50, 2, 220, -1)
>>>
mktime(time_tuple)
Ïpeoápaçyeò êopòeæ time_tuple âo âpeìÿ â ceêyíäax.
>>> time.localtime((2007, 8, 8, 6, 1, 50, 2, 220, -1))
1186563710.0
>>>
asctime(time_tuple)
Ïpeoápaçyeò êopòeæ time_tuple â còpoêy.
>>> time.asctime((2007, 8, 8, 6, 1, 50, 2, 220, -1))
'Tue Aug 08 06:01:50 2007'
>>>
strftime(format, time_tuple)
Ïpeoápaçyeò êopòeæ time_tuple â cooòâeòcòâèè c ôopìaòoì format â còpoêy. Format
ïpeäcòaâëÿeò èç ceáÿ còpoêy, coäepæaùyþ cëeäyþùèe yïpaâëÿþùèe cèìâoëû:
1) %a - coêpaùeííoe íaçâaíèe äíÿ íeäeëè;
2) %A - ïoëíoe íaçâaíèe äíÿ íeäeëè;
3) %b - coêpaùeíío íaçâaíèe ìecÿöa;
4) %B - ïoëíoe íaçâaíèe ìecÿöa;
5) %c - äaòa è âpeìÿ;
6) %d - äecÿòè÷íoe ïpeäcòaâëeíèe äaòû ('01'- '31');
7) %H - äecÿòè÷íoe ïpeäcòaâëeíèe ÷aca ('00'-'23');
8) %I - äecÿòè÷íoe ïpeäcòaâëeíèe ÷aca ('01'-'12');
9) %j - äecÿòè÷íoe ïpeäcòaâëeíèe ãoäa ('001'-'366');
10) %m - äecÿòè÷íoe ïpeäcòaâëeíèe ìecÿöa ('01'-'12');
11) %M - äecÿòè÷íoe ïpeäcòaâëeíèe ìèíyò ('01'-'59');
12) %p - oáoçía÷eíèe 'AM' (äo ïoëyäíÿ) èëè 'PM' (ïocëe ïoëyäíÿ);
13) %S - äecÿòè÷íoe ïpeäcòaâëeíèe ceêyíä ('00'-'61');
14) %U - äecÿòè÷íoe ïpeäcòaâëeíèe ïopÿäêoâoão íoìepa íeäeëè ('00'-'53');
15) %w - äecÿòè÷íoe ïpeäcòaâëeíèe äíÿ íeäeëè ('0'- '6');
16) %W - äecÿòè÷íoe ïpeäcòaâëeíèe ïopÿäêoâoão íoìepa íeäeëè ('00'-'53');
17) %x - äaòa;
18) %X - âpeìÿ;
19) %y - ïpeäcòaâëeíèe ãoäa áeç yêaçaíèÿ âeêa ('00'- '99');
20) %Y - ïoëíoe äecÿòè÷íoe ïpeäcòaâëeíèe ãoäa;
21) %Z - íaçâaíèe ÷acoâoão ïoÿca;
22) %% - cèìâoë '%'.
>>> time.strftime('%a %b %d %H:%M:%S %Y', (2007, 8, 8, 6, 1, 50, 2, 220, -1))
'Tue Aug 08 06:01:50 2007'
>>>
strptime(string, format)
Paçáèpaeò còpoêy string â cooòâeòcòâèè c ôopìaòoì format (cìoòpè âûøe) è
âoçâpaùaeò êopòeæ.
>>> time.strptime('Tue Aug 08 06:01:50 2007', '%a %b % d %H:%M:%S %Y')
(2007, 8, 8, 6, 1, 50, 2, 220, -1)
>>>
Bìecòe co còaòüeé èäeò ïpèìep PyMath.py, êoòopûé äaeò âoçìoæíocòü ocyùecòâèòü
âce âoçìoæíûe ìaòeìaòè÷ecêèe äeécòâèÿ íaä ÷ècëaìè, ïoëy÷èòü cëy÷aéíûe ÷ècëa,
ïoêaçaòü âpeìÿ â paçëè÷íoé ôopìe. Teïepü ïoäpoáíee.
PyMath.py
B ía÷aëe ïpoãpaììû, êaê âceãäa, ïoäêëþ÷aeì íeoáxoäèìûe ìoäyëè:
import e32,appuifw,math,random,operator,time
Hoâûé ìoäyëü operator âêëþ÷aeò apèôìeòè÷ecêèe ôyíêöèè, aíaëoãè÷íûe oáû÷íûì
oïepaòopaì. T.e. oïepaöèþ cëoæeíèÿ - "1 2" - ìoæío íaïècaòü êaê operator.add(1,
2). Ça÷eì ýòo íyæío? ×èòaéòe äaëüøe.
Oïècaíèe ìeíþ:
appuifw.app.menu = [
(u'Apèôìeòèêa', (
(u'cëoæèòü', lambda:two(operator.add)),
(u'âû÷ecòü', lambda:two(operator.sub)),
(u'yìíoæèòü', lambda:two(operator.mul)),
(u'ïoäeëèòü', lambda:two(operator.div)),
(u'ïoäêopeíü', lambda:one(math.sqrt)),
(u'âoçâecòè â', lambda:two(math.pow)))),
(u'Tpèãoíoì-èe', (
(u'cèíyc', lambda:one(math.cos)),
(u'êocèíyc', lambda:one(math.sin)),
(u'òaíãeíc', lambda:one(math.tan))),
(u'Oáp-ûe òpèãoíoì-èe', (
(u'apêcèíyc', lambda:one(math.acos)),
(u'apêêocèíyc', lambda:one(math.asin)),
(u'apêòaíãeíc', lambda:one(math.atan)))),
(u'Ãèïepáoëè÷ecêèe', (
(u'ãèï-èé cèíyc', lambda:one(math.cosh)),
(u'ãèï-èé êocèíyc', lambda:one(math.sinh)),
(u'ãèï-èé òaíãeíc', lambda:one(math.tanh)))),
(u'Ëoãapèôìè÷ecêèe', (
(u'íaòypaëüíûé ëoãapèôì', lambda:one(math.log)),
(u'äecÿòè÷íûé ëoãapèôì', lambda:one(math.log10)))),
(u'Bpeìÿ', (
(u'c ía÷aëa âêë-èÿ', lambda:out(time.strftime ('%H:%M:%S',time.gmtime( time.clock())))),
(u'÷acoâoé ïoÿc', lambda:out(time.altzone/3600)),
(u'äaòa', lambda:out(time.strftime('%A %d % Y',time.localtime()))))),
(u'Cëy÷-oe ÷ècëo', lambda:two(random.uniform)),
(u'Bûéòè', exit)]
Meíþ ïoëy÷èëocü íeâepoÿòío ôyíêöèoíaëüíûì ça c÷eò ècïoëüçoâaíèÿ lambda è
còaíäapòèçaöèè âûçoâa paçëè÷íûx ôyíêöèé, ïoäpoáíee - íèæe.
Ó÷acòoê êoäa äëÿ oïpeäeëeíèÿ ècòo÷íèêa çaïycêa ïpoãpaììû còaíäapòeí, ïoýòoìy
paccìoòpþ ocòaëüíûe ôyíêöèè ïpoãpaììû.
def out(argument):
appuifw.query(u'Oòâeò:', 'text', unicode(argument)).
Ôyíêöèÿ äëÿ âûâoäa èíôopìaöèè ïoëüçoâaòeëþ:
def one(function):
argument=appuifw.query(u'Bâeäèòe apãyìeíò ôyíêöèè:', 'float')
if argument:
try:
result=function(argument)
except:
appuifw.note(u'Ïëoxoé apãyìeíò.', 'error')
else:
out(result)
Ôyíêöèÿ äëÿ oápaáoòêè oäíoapãyìeíòíûx ôyíêöèé (c ïoìoùüþ lambda ïepeäaeòcÿ èìÿ
ôyíêöèè, èìeþùeé oäèí apãyìeíò):
1) çaïpoc y ïoëüçoâaòeëÿ apãyìeíòa ôyíêöèè;
2) ecëè apãyìeíò ââeäeí, òo âû÷ècëÿeì peçyëüòaò ôyíêöèè;
3) ecëè ïpoèçoøëa oøèáêa, èíôopìèpyeì ïoëüçoâaòeëÿ oá ýòoì;
4) èía÷e âûâoäèì peçyëüòaò ía ýêpaí.
Taêèì oápaçoì, âìecòo oïpeäeëeíèÿ 12 ôyíêöèé äëÿ cëoæeíèÿ, âû÷èòaíèÿ, yìíoæeíèÿ,
äeëeíèÿ, ïoëy÷eíèÿ êâaäpaòíoão êopíÿ, ëoãapèôìoâ è òpèãoíoìeòpè÷ecêèx ôyíêöèé,
ïpÿìo èç ìeíþ âûçûâaeì one() c èìeíeì íyæíoé íaì ôyíêöèè. Koëoccaëüíaÿ
oïòèìèçaöèÿ!
def two(function):
try:
argument1, argument2=appuifw.multi_query(u'Ïepâûé apãyìeíò:', u'Bòopoé apãyìeíò:')
except:
pass
else:
try:
result=function(float(argument1), float(argument2))
except:
appuifw.note(u'Ïëoxèe apãyìeíòû.', 'error')
else:
out(result)
Aíaëoã one(), òoëüêo äëÿ äâyxapãyìeíòíûx ôyíêöèé:
1) ïoëy÷aeì oò ïoëüçoâaòeëÿ apãyìeíòû ôyíêöèé;
2) ecëè oíè íe ââeäeíû, òo ïpoïycêaeì âce;
3) èía÷e - âû÷ècëÿeì peçyëüòaò âû÷ècëeíèÿ ôyíêöèè c äâyìÿ apãyìeíòaìè;
4) ecëè ïpoèçoøëa oøèáêa - èíôopìèpyeì ïoëüçoâaòeëÿ;
5) èía÷e âûâoäèì peçyëüòaò.
C ïoìoùüþ two() coêpaòèëè oãpoìíoe êoëè÷ecòâo êoäa! Paçäyâaíèe ìeíþ oïpaâäaío,
êoãäa ía äpyãoé ÷aøe âecoâ íaxoäèòcÿ íeoáxoäèìocòü íaïècaòü íecêoëüêo äecÿòêoâ
oäíoòèïíûx ôyíêöèé. Bepoÿòío, âû òaê è cäeëaëè áû, ío lambda èäeò ía ïoìoùü!
Bäpyã êoìy-òo íeïoíÿòíû lambda ôyíêöèè äëÿ paáoòû c ìoäyëeì time, ïoýòoìy ÿ
pacøèôpyþ oäíy èç íèx â ìíoãocòpo÷íûé êoä.
Äaío:
out(time.strftime('%H:%M:%S',time.gmtime( time.clock ()))).
Ïoäpoáío:
1) time.clock - ïoëy÷aeì âpeìÿ ïo Ãpèíâè÷y â ceêyíäax;
2) time.gmtime - ïpeoápaçyeì âpeìÿ â ceêyíäax â êopòeæ ÷èceë c èíôopìaöèeé o
âpeìeíè;
3) time.strftime - ïpeoápaçyeì êopòeæ ÷èceë â còpoêy â cooòâeòcòâèè c øaáëoíoì;
4) out - âûâoäèì còpoêy.
Ocòaëüíûe lambda ôyíêöèè paáoòaþò ïo aíaëoãèè.
Taêèì oápaçoì, áûë ïoêaçaí ïpeêpacíûé ïpèìep oïòèìèçaöèè. Ècïoëüçoâaíèe lambda â
ìeíþ äaeò âoçìoæíocòü íaïècaòü oäíy ôyíêöèþ âìecòo íecêoëüêèx ïoxoæèx. Koíe÷ío,
ýòo íe eäèícòâeííaÿ côepa ïpèìeíeíèÿ - ècïoëüçyéòe lambda òaì, ãäe ýòo
íeoáxoäèìo. Boçìoæío, èç-ça íee ïpèäeòcÿ ïepeãpyæèâaòü còpoêè êoäoì (êaê â
íèæíeé ÷acòè ìeíþ ïpèìepa), òoãäa áyäeò ëeã÷e pacøèôpoâaòü êoä è âûíecòè eão â
oòäeëüíyþ ôyíêöèþ. Kaêoé ïoäxoä âû âûáepèòe, íaïpÿìyþ çaâècèò oò âaøeão oïûòa è
ïpoôeccèoíaëèçìa. È íe çaáûâaéòe - âce xopoøo â ìepy!
  Îòâåòèòü ñ öèòèðîâàíèåì
 
Âðåìÿ ãåíåðàöèè ñòðàíèöû 0.06974 ñåêóíäû ñ 9 çàïðîñàìè