Страница 2 из 5

Re: Python

Добавлено: 20 июн 2013, 21:22
Olej
Виктория писал(а):
Olej писал(а):
Olej писал(а): Python - дело модное
Вообще то, по Python учебных материалов - хоть пруд пруди: и сайты, и форумы, и учебные курсы, и книги, и переводные книги...
Совсем модный курс на Coursera -An Introduction to Interactive Programming in Python
Я поинтересовался зарегистрироваться на этот курс и вот что получил в ответ :-o :
You're signed up for An Introduction to Interactive Programming in Python. The course will start on Oct 7th 2013 and we will notify you just before then to remind you when class will begin.
Так что это анонс довольно далёкого будущего ;-)

Re: Python

Добавлено: 20 июн 2013, 21:28
Olej
Виктория писал(а): Совсем модный курс на Coursera -An Introduction to Interactive Programming in Python
А ссылка на курс Интуита вроде нерабочая... :oops:
Если нужна документация справочная под рукой, попрактиковаться, то (как показала практика!) один из самых удобных и нехлопотных способов:

1. в терминале запустить:

Код: Выделить всё

bash-4.2$ pydoc -p 8088 &
[1] 6889
bash-4.2$ pydoc server ready at http://localhost:8088/
2. теперь у нас есть локальная WWW-страница справочника, набираем URL в браузере, и наслаждаемся:

Код: Выделить всё

http://localhost:8088/
P.S. естественно, TCP порт (8088) может быть любой.

Re: Python

Добавлено: 20 июн 2013, 21:59
Olej
1. С Python очень легко экспериментировать ... собственно, как со всяким (почти?) интерпретирующим языком (здесь мне вспоминается миниатюрный язык Lua).
В принципе ... человеку с минимальным умениям программирования на любом инструменте, не нужны какие-то особые курсы, и он легко освоит даже в самых тонкостях Python путём экспериментирования... в течение недели ;-) (так думаю).
Именно из-за этой простоты + интерпретируемости - можно сюда в тему не архивы проектов прикреплять (как С & C++), а прямо в тему код показывать...

2. Заинтересовало меня:
Olej писал(а): глава функционального программирования
+
где-то в Python-обсуждениях (сейчас и найти повторно не могу) прочитал глупость, что мол на Python "а вы попробуйте сделать рекурсивное вычисление факториала глубиной в 1000"...

Берём за основу:

Код: Выделить всё

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys

def factorial( n ):
    if n == 1: return 1
    else: return n * factorial( n - 1 ) 

if len( sys.argv ) > 1:  n = int( sys.argv[ 1 ] )
else: n = int( input( "число?: " ) )

print "n=%d => n!=%d" % ( n, factorial( n ) )

Код: Выделить всё

bash-4.2$ ./fact1.py 
число?: 4
n=4 => n!=24
bash-4.2$ ./fact1.py 4
n=4 => n!=24
Понятно, да?

Теперь преобразую его в функциональную программу так:

Код: Выделить всё

#!/usr/bin/python
# -*- coding: utf-8 -*-

from sys import *

arg = lambda : ( len( argv ) > 1 and int( argv[ 1 ] ) ) or \
               int( input( "число?: " ) )

factorial = lambda x: ( ( x == 1 ) and 1 ) or x * factorial( x - 1 )

n = arg()
m = getrecursionlimit()
if n >= m :
    print "глубина рекурсии превышает установленную в системе %d, переустановлено в %d" % \
          ( m, n + 1 )
    setrecursionlimit( n + 1 )

print "n=%d => n!=%d" % ( n, factorial( n ) )

if getrecursionlimit() > m :
    print "глубина рекурсии восстановлена в %d" % m
    setrecursionlimit( m )
То, как работает функциональная программ:

Код: Выделить всё

bash-4.2$ ./fact2.py 10
n=10 => n!=3628800
bash-4.2$ ./fact2.py
число?: 10
n=10 => n!=3628800
А теперь то, как она устанавливает себе любую требуемую глубину рекурсии (а перед завершением восстанавливает системные установки):

Код: Выделить всё

bash-4.2$ ./fact2.py 10000
глубина рекурсии превышает установленную в системе 1000, переустановлено в 10001
n=10000 => n!=28462596809170545189064132121198688901480514017027992307941799942744113400037644437729907867577847758158840621423175288300423399401535187390524211613827161748198241998
275924182892597878981242531205946599625986706560161572036032397926328736717055741975962099479720346153698119897092611277500484198845410475544642442136573303076703628825
803548967461117097369578603670191071512730587281041158640561281165385325968425825995584688146430425589836649317059251717204276597407446133400054194052462303436869154059
4040662278282483715120383221786446271838229238996389928272218797024593876938030946273322925705554596900278752822425443480211275590191694254290289169072190970836905398737
4745248337289952180236328274121704026808676921045155584056717255537201585213282903427998981844931361064038148930449962159999935967089298019033699848440466541923625842494
7163178961192041233108268651071354516845540936033009607210346944377982349430780626069422302681885227592057029230843126188497606560742586279448827155956831533440534425446
6484168945804257094616736131876052349822863264529215294234798706033442907371586884991789325806914831688542519560061723726363239744207869246429560123062887201226529529640
9150830133663098273380635397290150658182257429547589439976511386554120812578868370423920876448476156900126488927159070630640966162803878404448519164379080718611237062213
3415415065991843875961023926713276546986163657706626438638029848051952769536195259240930908614471907390768585755934786981720734372093104825475628567777694081564074962275
2549933841128092896375169902198704924056175317863469397980246197370790418683299310165541507423083931768783669236948490259996077296842939774275362631198254166815318917632
34839190821000147178932184227805135181734921901146246875769835373441456013122615221391178759688367364087207937002992038279198038702372078039140312368997608152840306051116
70948472222487038919999344207139583698306396223207911562404425080891991431983712044559834404755675948921210149815245454359428541439084356441998422485547853216362403009844
28553318292531542065512370797058163934602962476970103887422064415366267337154287007891227493406843364428898471008406416000936239352612480379752933439287643983163903127764
50722479267851700826669598389526150759007349215197592659192708873202594066382118801988854748266048342256457705743973122259700671936061763513579529821794290797705327283267
50148802444352868164502616566283754651900617187344226043891929850607151539003110668472736013581670643786175675743918437647965813610059963868955233464878174614324357322486
43267984819814584327030358955084205347884933645824825920332880890257823882332657702052489709370472102142484133424652682068067323142144838540741821396218468701083595829469
65235632764870475718351616879235068366271743711915723361143070121120767608697851559721846485985918643641716850899625516820910793570231118518174775010804622585521314764897
49066075287708289766751495100968232968973200062239288805665803614031128546592908407803397490066495320587316494809388381619865885082738246803489786475711667989042356801830
35041338757319726308979094357106877973016339180878684749436335338933735869064058484178280651962758264344292580584222129476494029486226707618329882290040723904037331682074
17413251656688443079339447019208905620788387585342512820957359307018197708340163817638278562539516825426644614941044711579533262372815468794080423718587423026200264221822
69418862621210729777665740101837618228013685758644218586301153984371229910701009406192941322320277319395946700671369537709789777811828824244292086481613417956201747183160
96876610431404979581982364458073682094040222111815300514333870766070631496161077711174480595527643483333857440402127570318515272983774359218785585527955910286644579173620
07221858143309977294778923720717942857756271300923982397921957581197264742642878266682353915687857271620146192244266266708400765665625807109474398740110772811669918806268
72662656558334566500789030905065607463307802715853081769122377281351058452732659162621964762057143488021563081525900534372114100030303924286645720732847348171203416818632
89688650482873679333984439712367350845273401963094276976526841701749907569479827578258352299943156333221074391315501244590053247026803129123922979790304175878233986223735
35054642646913502503951009239286585108682088070662734733200354995720397086488066040929854607006339409885836349865466136727880748764700702458790118046518296111277090609016
15202211146154315831766995706097461808535939040006789287854882785093863735370390404941268461899127287156265500127083303995025787993170543188275265922581494895074663997600
73169273108317358830566126147829976631880700630446324291122606919312788815662215915232704576958675128219909389426866019639044897189185974729253103224802105438410443258284
72830584297804162405108110326914001900568784396341502696521048920272140232160234898588827371428695339681755106287470907473718188014223487248498558198439094651708364368994
30618965024328835327966719018452762055108570762620424450962332320474470783119043449935144262550170177101737955112474615947173186270156557126629585512507771173833820841970
58933673237244532804565371785149603088025802840678478094146418386592266528068679788432506605379430462502871051049293472674712674998926346273581671469350604951103407554046
58170393481046758485625967767959768299409334026387269378365320912287718077451152622642548771835461108886360843272806227776643097283879056728618036048633464893371439415250
25945965250152095953615797713559579496572977565090269442808847976127666484700361964890604376193469427044407021531794358383105140491546260872848667875054167414673164899935
63813128669314276168635373056345866269578945682750658102359508148887789550739393653419373657008483185044756822154440675992031380770735399780363392673345495492966687599225
30893898086430606532961793164029612492673080638031873912596151131890359351266480818568366770286537742390746582390910955517179770580797789289752490230737801753142680363914
24472025772889178495007811788933662975043680421466819782427298069757939174222945668318581567681628879787062453124665172762275829549342148365886891929958740209569600024356
03052898298663868920769928340305497102665143223061252319151318438769038237062053992069339437168804664297114767435644863750268476981488531053540633288450620121733026306764
81322931561043551941761050712449024873277273112091945865137493190965162497691657553812198566432207978666300398938660238607357858114394715872800893374165033792965832618436
07313332752602360511552422722844725146386326936976376251019671438012569122778442842699944082915221590469443728249865808520518657629299277550883312867263841871327778087444
66438753526447335624411394476287809746506839529821081749679588364522733446948737934717907100649782364660166805720342979292074468223228486658395222114468595728584038633772
78030227591530497865873919513650246274195899088374387331594287372029770620207120213038572175933211162413330422773742416353553587977065309647685886077301432778290328894795
81840437885856777293209447677866935753746004814237674119418267163687048105691115621561435751629052735122435008060465366891745819654948260861226075029306276147881326895528
07361490225258196828150510333181321296596649581590304212387756459909732967280666838491662579497479229053618455637410347914307715611686504842924902811029925296787352987678
29269040788778480262479222750735948405817439086251877946890045942060168605142772244486272469911146200149880662723538837809380628544384763053235070132028029488392008132135
44645005613498701783427110615817728981929065649868808104556223370306725425127727733028349843359577257595622470370779338714659303308862969944031833266579751467650271734629
88837773978482187007180267412659971587280354404784324786749071279216728985235884869435466922551013376063779151645972542571169684773399511589983490818882812639844005055462
10066988792614558214565319696909827253934515760408613476258778165867294410775358824162315779082538054746933540582469717674324523451498483027170396543887737637358191736582
45427334749042426294601129988191656371384711184915691505476814041174980145426571239420442544102807580600138819865061375928853903892264432294799028648284009959867596358099
91126953676015271730868527565721475835071222982965295649178350717508357413622825450556202709694174767992592297748886274113145876761475314568953280931170526964864101874076
73296986649236437382565475022816471926815559883196629848307776666840622314315884384910519058281816740764463033300119710293036455866594651869074475250837841987622990415911
79368279976065418608872162665488649234439103092325691063377596973905178112276466848679173604940439370333935190060938726839729924647848372727477097746669359978485712015678
90002419472692209749841273231474015499809203814598214164811763571478015542315996678385348544864069364105569135313352311840535813489409381918218986948253839609899428220275
99339635206217705343572073396250574216769465101608495601439303244304271576099527308684609204422226103154229984444802110098161333824827375218998738205315164927134498105950
15997480057159191220215448774875010347324619063394130303089239941198500622590218416440998817321432442210855424862089625026060439818018902631778114661745499977144066523286
38463638470016556181538610981881111817341913055050248603458567555856375117297742993290749442365796683327009183673389773479017592488856603799527715405690830173117238941403
26159612292912225191095948743805673381278538616491842786938417556898047100859868372033615175158097022566275200160956192229925401759878522038545913771783976389811198485803
29104875166692119510451489667776159824946872742066343759320785261892268728552767132488326779415291283916540796834419023909480367668870783801136704275397139620142478493519
67353014444040378235266744375567408830252257452738062099804512331881027290120429979890054231262179681352377580411625114591759932791341765072928267622368972919605282896752
23521425234217247841869317397460411877634604625637135309801590617736758715336803958559054827361876112151384673432884325090045645358186681905108731791346215730339540580987
17201384437709927953279767553109938136584040355679573189414197651143632552627063974314652634812003272009675566770192624258505777061789379823109698678844854665952732706167
03089182772064325519193936735913460377570831931808459295651588752445976017294557205055950859291755065101156650755216351423181535481768841960320850508714962704940176841839
80582594038182593986461260275954247433376226256287153916069025098985070798660621732200163593938611475394561406635675718526617031471453516753007499213865207768523824884600
62373589660805495165240648054729586991869435881119783368014148807832121345715236012406592220850891295690783537057673467166786378090881128345039578481221210111725071838335
90838861875746612013172982171310729447376562651723106948844254983695141473838924777423209402078312008072353262880539062660181860504249387886778724955032554242842265962710
50692646071767467502337805671893450110737377034119346113374033865364675136733661394731550211457104671161445253324850197901083431641989998414045044901130163759520675715567
50948524358026910407763721099867162425479538531285288993095657072921867352321666609787498963536261052982147256948279999622082577584098845848425039118944760872968518498397
63679182422665711671665801579145008116571922002337597653174959223978849828147055061906892756252104621856613058002556079746097267150333270323100252746404287555565468837658
38802543227403507431684278620637697054791726484378174446361520570933228587284315690756255569305558818822603590006739339952504379887470935079276181116276309771257983975996
52661212031749588205943575488386228250840140888572058399240097121921254807409775297427877591256602644348271364723184912518086627870862611669998963481240580368479458736482
01246536632288890116365722708877577361520034501022688901891016735720586614100117236647626578353963642978190116470561702796319223322942287393092333307482589376261989975965
30084135383241125899639629445129082802023225498936627506499530838925632246794695960669046906686292645006219740121782899872979704859021775060092893328957272392019589994471
94514736085077040072571743931814846190940626954528503052634100056502222615230936488288712204645426770057714899433514716250425236517371026606864725345812018668327395368254
74565365535975466857887000569883602866864507402569930874834410940860863037079082952405767316849418558104824753047589233928015713028241062349999459323905214098565595656613
46003396150515164758852742214732517999548977992849522746029855666700811871200856155016457400484170210303038996339253337466556817824410737409336919294104632307731994759826
30738349960077037241044628541464870411627389564983455516216568511455138382204700548399667170624646756610129138204890912111722938624425315891306698746204558724480605282937
81483026221645422804217577607623654598282230708155034694049383177550533050946989994761194192312807218072169643784333136067606769651871383943387724854936890618457005720436
96666465080734495814495966306246698679832872586300064215220210171813917325275173672262621454945468506006334692713838311715849753092643252486960220059099802663765386225463
26516841496330636954808655110125675771789061669475834404348621848536959160217203045618349752416203992644133165188476860683064200485855792447334029014258887640371251864222
90163336915850632737271995963629127833447862188878710095337535510546889802363782637149269132895643394408994701214521345721177156575914517348951950168006213539271754198438
76163543479806920886666227099512371706241924914282576453125769939735341673046864585181979668232015693792684926999983992413571941496882273704022820805171808003400480615261
79201397894518629529055844070373830053355242115390338518582936677919061011630623367314441920289385720185556959633083361545029042482230929708712478800201738307206048268015
66753975937899317935157999589295621563073384162945999002767308328277165950642179665231904392505432267537318117553154767807394703389311851072977243183789726749574557781833
45495942317353558291046967315391275975687281861691161083156337232639968881490543943261197182274996791176628553401860198315809629981791107208804992292016062059067271273599
46187163494577499580533794718710545645257939602421025913641552839839520177301271251489205106170822800833998566578664692073711426968230177041632482947940955869469908937916
51910063051853521023451897981276191430618643627030819771249927510567329094812020577471006877033797089342292071839037441675034938188363422292849467906602856742932516425690
44363473087656797056595677285291081242733154406580199802711579126254172797452862574865921933293805915239524735518887119860391319654287576290190503964083560246277534314409
15564218172945994159606197962263324271586342597794734868207480202153873472970799975333298778553105382016216979188038075300633435076614773713593936265190522224252814108474
70452956886477579135021609220403484491499507787431071896557254926512826934895157950754861723413946103651766167503299486422440396595118822649813159250801851263866353086222
23491094629059317829408195640484702456538305432056506924422671863255307640761872086780391711356363501269525091291020496042823232628996502758951052844368177415730941874894
42806542756143097582812769812493699331302894667056041408430894223114091272223814847036434101963041363073677106003815959082974641011442135832104257435835022073717321974508
90355731873504458272387707282714061629979196293572241044771550516525358675441093950792183690152611384403826800541509243465117114364778994445539936536677275895657139875055
42990824585609510036934663100673714708029927656933435500927189854050109917474979991554392031908961967615444686048175400695689471463928245383807010444181045506171305160584
35581752103233846582920107103006112428340745860700606019483055136486702102036470847080742270437189370696568879561792871304522451684202740202196641560528033506129355873907
93935244040925842483806071774446099640352218910229619090325690423813744924949068923143308842243996313963915458540652863264688075811487483714082841764552263863135202648940
16262494802388568231599102952620337126449279901938211134518446387544516391239377974190576649911764237637722282802318465738050121277809680315691477264910257503508758792248
11022354452441087244856570075518713214659209354850455282917074959677540445077949483637175606232692575741281311024191037333808043432531088469483155572940226539497291381758
13386194570577995618087559514136449076131096171559283765858400364893740768222575239359887310816896676882874038371928276904315141069976783038190856907130919313408460195111
47482766350724676534922040058626677632935516631939622498979912708004465982264899125226813124300528104995058595676527123591494442612554437618645029202881358582871789577224
11638081516183160312972879698748013982862164562919615309635833731361972477333235302546657119690261123738062903024290427579454903002266084744651316174169191685174646494545
96960053308852527920834724952354731106741090992235410555062996876421539512493559863113466617251168907856333289355691504494851891134883018763651006385025659164330219285655
96263914382895068324838727165616560111531517055222955765944972454788815532316417453267167978861141165355597588331979638070962998880767303616940317736448140427867784251232
44997469342134821717959519069820460299717200117485730388971920559741474245301113586976625660777097022563326170110846378479555525850457805887944075606497412797453091841840
52075585264622088214836467546522376092107875391904546848523497599860449433228280731206799224024775075141058907746273343190912554513522253292759138420473846030561631542365
52935312278389759446515787337343463172280001031380425481404022090580405056003860937403435068863081434683848900708938565050027569059678069404698435184535134141031615133683
04371478664292538971716597862901072840075893970038831774264816372511327736992682770946534258359611188195509246206215397812119724476262377153445204806981908252494396396225
11138311774289785358255908324904804975160471042575697534425515157798156003708472306034847539775136883904043160174862488713393118185230294254256762024856883939708367487884
53789172574145155917919035398535077200900594979352939459631213445503368260690059828717723533375221941915547303742062343262892968397015058892191112049249864792053410872349
11543098718216005576220907573230462610659774494765834631302559863631502995967235247694397546253020678819330437228480020930535415564066483856937814460313869756345920023346
26069959555134847541478911808303298164215874529229526789379256477520290526753493566737442931826733745716424654077482679010467787590854081305314471764558698941696689404364
89952465247443988349583871206296485413357553813419500498743813369062703973874586604296871595820715766599826607317005624465541763024501349159567288942619746144496908671655
85978272922870272377483509736290101913041781273577303778180408158913600520731580694103430500318434934236026924473306001386111978177447266960892832105254311649603342010203
26038636725328896483334058622048436165753620014684054766496664735669795729533948091382637033242209308393669549806882404916220631479114946420425000224504134255585619374429
05257252436320054487441524307305215070491020434076572476865095751174125413729531644521765577235348601821566833352520532830000108344008762266843817023235605645158256954177
35919781364997555960191256774494271798636004584740520929008939731527602430495165386443138814787697754147875743261015987970975885562580676619797309847246076948482112794842
79765366070550516391044150225544203297212920330093533566872945959123279658863764868941884336405484940095749657916576872139273301535550978651147679473996906231848783775154
62613823651665956337209345708208301840482797005728071432925727577436229587047361641609731817241594204270366066404089740245521530725227388637241859646455223673260411164598
46402001021692082331515538882107152719126787653179507190820452510044782129131854405481449415186711420710369389112912501275085346633771774937601654345469639004271112982925
50968304206657253642794722000208353138837087816499571897176293387948542712768826520037663259245616148687448974715193662192756658524621144574070106753804275641844408348052
03838265052601698584060084788422421887856927897751810442805474427229455167420335686460609977973124950433321425205053675790499520783597650415379001132579536040655172654879
02217359544415113942923164895066317781303905746208244917192131186412963370466140645690017894235673877552313095278591277453324185544248448449366421073134881918064018922231
73021566458134731864499979057816620914698707180393888857812807402263636022941143548698714021435720559477308928086536789202019351026053615679244832767494761178583160718657
10310842200560259545115191391309119544447844361032741876102338843391687589233423790859841968266525610628751237572318491474951945985728897934981791761822652480408237128109
79077263886428606791708228857585270347083971456161992624784479469279499684594563238270229736417350343078319411569824782001329085120287847480586018896004590174597405563073
27144876790852888679788099706952406810066256114400149834135808897372468440649488570741676879164132242053736540673301863924979109154747859591638655975070905811759248995022
14799250945635582514315814464060134283490422798357939659258985200763845646681640732681928346007767285876284900068874564639274964415904034033672337814491597032941787294155
06105412951540015939385166392932567742955754948004665827357965399094023354364464937682727254187362754753297680819032533614108643308423777173899522153676309530204590243869
46327028952939944830135775890812148845584938198745059209140672095224690962630769417533409836988593637003149737289779963600186265001749292900879311899978229637123066422979
96163582572600112288983647651418045975770042120833949364659647336464289044499325396227091907373705772051322815957863227591912786054297862953188615559804728160710864132803
58540016005557568685579178597789919790265659262128300722535140152597356930072901539221111686850474040217217444205173800025136100049453411932433166834424312596309881239696
22023588583955878316851948331266535773532443799356832152691770422490345745348589138125826813669089294768090526355606381196613060639369384118177135459298843172329122362624
58868394202889981693561169865429884776513118227662526739978808816010470651542335015671353744817086234314662531190291040152262927104099285072418843329007277794754111637552
17656358931632663604938121840183751281888477116897547948376766408484275362307401954218321798549626066659034792581634239267094783990706292316653503728501975132481380383707
08946389254708870390857235810061306286466647100061043521157789266134322146553114118825969429262845221090266884149757633415549211355812546165580782734701158140060083457621
33130389987843270653719956709570847385786092649188858378739239165554263577301292243641604062551736892335636568854365851646207821875741724364525814143487632761341752707376
75492227628778226476515431534158571377352273033540337636420425803425726474968621782366695135341067737842113137113198737322289180527506281227771641249441240120712595431999
17465747458925826137128255555350804041439445572959945546356084872513394629363589408320989648016195831304297209647941285393889962653689282638076771687595885022164645824309
40165009688797366157733560316836710386895228270941509545222744002735499253670214715994056544813842186380128799900820933576320736369405991424263718294000613741900579513096
29854533074819780256830108967287380223482048886297313036968988264065790478156238977848536502569106423179573602533090876327178491118974843224686808634038396417612760578864
65744722848249326874430625512205069551684646694771836819114328735448158363505481464110999601433905957997662906468812950250391509236330110760706328633173933781496933802475
80035052789782755750928604039420506342939327064636161031822879248152679306862749237275631852225654266008556849497720285909150930495425967473648331437236349555448901598668
40836217691355965603951967042536886348236958712946252475903177681318497758827657674048255813650210364958550570325921995767533426422378372358605850940358397710347667064478
86408311096503025652156074640196527169997323734652371734565955145594930981666440062115993491331801351505286518421788280263433259347558507611686977091255800561856837105408
56081249519403148064618719402577663285267019698387567561524696759028106864896869293315954352097687527137201616160931174250199709289684940034696242325688410665113304377412
25617625865894123672817114552642389451263171783479027692117145288735295501933675921890800604863373778672818061025478257043678844950351892578749983669478590861297554308412
26770609543476121337174331567837901620123372370233383164147064285921859776101582327219979150628718681867509816655377450130208803339043536397702633638090985264945326281465
58065546504823486429495390613257400496912888340518222933644476683855037967975809619983575807027759535968788226194659612223044549275600274955168583542582295336042834426318
47806882539545074669187789776540603843251284381281131685620460861728940822965862617442076692029742793008812951985467871354862323661041321658127926715154596159435259345675
74459923078892055195400823164097195912500254552375031067356397488355424804496813830306718519314913357892021236053081999520205845034234999321509626349778124566583046805818
24563524814625849331926195406884818446445248429486063016169476663242625231476322371109695369483824482316410396224507675405614287468267835723704895606990652792688455844512
04665485337853402664664504233963848825771987495361130049421559373554521192618672147826541688560409492829005661688380763765669051074089251054916522296887867696863165251491
77014999000666373445461202627807019256987062255409289451947187780043061300218282874258670487484808269485734447782440787341027108248702695238308049109604820139012940246312
44800159336670212658317677879752965963472576894326540435889267293950687860830626266263287392087327302547910099932113388977807814336728791448768373686467748528777737403547
47287164421776782071296450627088097863792814407119250514114800490705560809722929979244147106285224702987069986922767634177351325860290890387570745436807787642238533370069
20896163510092335873039865439060718809525575533803647258950073067721225280781794710564811713785574510576910443229254290241494335883960936793213616969542512997310310328044
36954501929843820842383121265825740594509426942777307124802176915781835720087170538773256017987133005505911377823841791640280841409623820847637393013930778428554545222367
55982466625060875428487610414566136222764240591430445558085631818093523040779389161490211629240051507491406844320323036560995487862099919430656445533254713555736531851601
17003215506907877167520628815278858971494103209869840830489665243510305024446799317791476591034289491290541203616016956712221408063694059403045521862128799330928562310224
18446365289097444640151986623183881962444822590783585914043686193019041458962693878907034982169868696934448086213990534591792826654304798207219634134755646525483143771156
67845907779719651077246800029358154626764631022427900731363135252206706295112593587447313418649249728278479664458544896293290526205806524858870702087938913447608334465317
09392424082493280089157313195413483118209277524868805487339433158675626661221793550511906099929113794456349956273918984590290217131557060962678816733029401984642373904450
98028030948975981259252055850973537436556825780313681902007151675693827281818824587541710721180806556448039122504537089422695358382192535075692834095639859265599740391316
70929004399627597683037521750336087902829567306886226307772973353385368266873451903570970968732232373830049409012323927431875904652632709517840626726482889364689659321916
95211063617297570743761480616013311049116922713186094041450148428664236347169828924181804843652305388645598098392738364906854808230142678031439374404318078226787794940062
06489151248952516543005634448375046751754207043313372486870633237561645232360481932024377596890914783372179553676992603235715185513391098402739063753280702313301755754269
39620262942391094532353791012594896494181256367299296708425066759980345627345559855962851228141458255602484178330564524050845006598875598751860133586062493278448777200684
22965919455165395629829605916100465789072148420548618304181756045598151680880317830802614459944446779180124321464009836106786834129748725967292587868062230801158220262890
14364459002301645823666709265571264559925790622304745235625575111770791512002789380975775468546121017307522799241407026308137792971909461413145802081087738121624539858769
69737142588183615260506938092691771208732191500583197711332279357238507194061276129187257209940493025027774815661402132743474388196641333005263422908290640092794492480855
61311834401618048013570325078363239389215676431596204426128097009441077761306389090712944563940566015592460254542047711861404201552333712705013771210345700095780093892653
29385720478576508777149663403003562380595757191609382171312222810465858388943507176431939973012661591423837170284400120399485880996231859472474858776584355077006934099220
34037877219272837030138083814439411498497173076616296134205910501481428394970069595167693904155790285635691105554731268457149744963532055467794077518405666763722296909034
61287068298871042787610900909991604438217945117636208353797161618331243644312678554355508005079861246643977241355021282380267267199149897272485129812872836974892764207928
68666970177259794407858155909332508554131299946581118527691652464790819119384233275897699573012098103009171001695718791616942270079528915191912521053891838538959315167400
50572381740103062100438024301118797770425232807323657512960937245605368003751659616423614770933039122440975287173206797612812042802673925655730567593151264575004787575653
18548258214115740304731474925119108356157657320025461096867018903076485313738329126824817411813590328266250825493132114314789533523170439890539285349466428860742683718249
02498092479487226633686823799580875637040808655649321905489637785549531167397935270799470452399153297534358690514105864096534514182896474439367182852711843560799285895978
17654395011308884841916351667321369286083095674450280180037371645800916808297270871560918503865405343666004550498562468737602255704159580025017409536183928764345800367086
49540579417200851363571271637683234931342307038212744845014405295416953743819454594565331651409909937227228010196546527262278315121034676861668261314718436100255178632479
50150022953695466317739589344131481485834694374523981159954666071205997794363440185078360899108948073419633939259318973940943110042116729120199722626609871927014024105805
51531510010980499604414729103945103031266411472673683997331503503674274154699263316527043294067523744907505673950892967477911580086439999256481720884742925082154627985607
91277686119460862103494055358501344721902445438245210892844094981327170106739664711149318967899776615954881861931769001750279017838246243878738314832795008790264339925770
26588005849778984624295660321276945810824348129690840972550671054732471317254997191901039553305847040728081693158626093886019147689944137673621432083607375131574376316754
66647918675389657155510085062681000511982748680778059266776565410083477857102425013325339158738476102412979473675100116349897780374593002545760987067109215359711517825201
42812166475430340751286002402970384286159842898166021434298490889173596821922844691230359043298772318433099141872646746075583187257131388323560158090095941825302077993976
48462597901883341793830920965841463574411985878296475850943053008148341821747826603773762252997703468752903517310792083220038080809212164346586817989810504274375385786789
18635051771750160653182640692888325013591951717853768786588175236642153401096129576307476264807031275736578776235285905715393248457650394439049666808771189919249893389652
48523955367958275306141671317579157563866060048399941795487058682092011951549520312945624513154225065748586291616065237966430101726939502822946674896817468211639967949502
94284013099235901278250437428192557634533217576162292751110598368271567229778620053722932314082887058749444060116236521627717558503013451471452765841864277071769968435499
62025754743181199488338580675969235958062216583246409209535064835793581774290301831535129001432149551817745690838871932069776969565777175449914991143136895083616069253960
64698933748709429332191856012991085644702562571635055086206892402975896847142836786847354555335834776525361565781899969830686546717364459963431364681954274204904724330646
75001442697508322369013083895492637066778406531328664886080129513771720847581157719491012345141774941482773580041432667332379617716965698582785832300505265883502247868050
64820144457059319734338292386007260169651090325898090991283765227538149352984509941496693386281556803130698106452519270381851587264869176256323944142521611842776914506771
84117357143966810056154839524431549448642383842989003998261133224689633465221046925451379692760097196453389553321055842456401874486110509591117668289427116400540105037704
20346052521318228045892998637903572350665108782350043349942391285236308896510989246641056331584171142885304143772286629832318970869030400301325951476774237516158840915838
05915167350451913117819394342848292227230406142258207802782914807042676162930253922832108491775998420059510531216473181840949313980044407284732590260916973099815385393903
12808788239029480015790080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
глубина рекурсии восстановлена в 1000
Убеждает ?! :lol:
(в записи этого одного числа 163 строки ... но для того, чтобы его записать, требуется его прежде вычислить...)

Re: Python

Добавлено: 21 июн 2013, 14:50
Olej
Olej писал(а):
Виктория писал(а): Совсем модный курс на Coursera -An Introduction to Interactive Programming in Python
А ссылка на курс Интуита вроде нерабочая... :oops:
Если нужна документация справочная под рукой
1. Книга: Г. Россум, Ф.Л.Дж. Дрейк, Д.С. Откидач "Язык программирования Python".
Это не перевод (не совсем перевод) - переводчиком сделана большая адаптация и проверка примеров кода...

Книга не новая, 2000-2001г.г., но по детальности многих описания (например, пространства имён, организация и импорт модулей и пакетов и др.) - превосходит большинство последних ... а основные принципы Photon за это время не изменились...

P.S. Эта же книга есть здесь на этом сайте, но она здесь в формате PDF, менее удобном для изучения.


2. А здесь: ActiveState Code - много-много десятков образцов кода на Python.

Re: Python

Добавлено: 22 июн 2013, 00:37
Olej
Olej писал(а):1. С Python очень легко экспериментировать ...
Честно говоря, меня в экспериментах пока интересовал пока только один нетривиальный вопрос: как создать модуль Python написав его на C/C++?

Здесь тоже всё оказалось достаточно прилично ... и несложно:
- нужен пакет swig (ссылка на документацию)...
- пакет есть в репозитарии практически каждого дистрибутива, так что и собирать его не надо...
- пишем для своего модуля XXX.c (XXX.cc) интерфейсный файл swig XXX.i
- он обрабатывается swig, далее компилируется, и мы получим: XXX.so - DLL реализующий модуль + XXX.py - интерфейс из Python к модулю XXX

Для интересующихся покажу 2 модуля:

- модуль freq, функция frequency - считает число вхождений каждого из 256 символов ASCI в строке, заданной параметром, или введенной с терминала на запрос:

Код: Выделить всё

bash-4.2$ make
swig -python freq.i
gcc -c -fpic  freq_wrap.c freq.c -DHAVE_CONFIG_H -I/usr/include/python2.7 -I/usr/lib/python2.7/config
ld -shared freq_wrap.o freq.o -o _freq.so
rm *.o

bash-4.2$ make test
python frtest.py "1234123121 abc ab a"
x20:3 x31:4 x32:3 x33:2 x34:1 x61:3 x62:2 x63:1
- модуль fileio... ещё интереснее: я здесь вообще ничего не писал в реализации на C, а сделал прямой транзитный интерфейс из Python к стандартным файловым операциям POSIX (fopen(), fclose(), fread(), fwrite()):

Код: Выделить всё

bash-4.2$ make
swig -python fileio.i
gcc -c -fpic fileio_wrap.c -DHAVE_CONFIG_H -I/usr/include/python2.7 -I/usr/lib/python2.7/config
ld -shared fileio_wrap.o -lc -o _fileio.so
rm -f *.o

bash-4.2$ make test
python fiotest.py in.txt out.txt
скопировано 178 байт

Тестовый модуль на Python пользуясь этими операциями копирует заказанный файл.

Re: Python

Добавлено: 22 июн 2013, 14:50
Olej
Виктория писал(а):Курс пока один, от Романа Сузи.
Этот курс "гуляет" между многими ресурсами Интернет, года с 2004-го с некоторыми изменениями и дополнениями.
Он же, как я понял, используется как учебный курс какого-то из университетов С.-Петербурга.
Olej писал(а): 1. Книга: Г. Россум, Ф.Л.Дж. Дрейк, Д.С. Откидач "Язык программирования Python".
Это не перевод (не совсем перевод) - переводчиком сделана большая адаптация и проверка примеров кода...
Курс от Романа Сузи очень сильно следует, "по мотивам" именно этой книги, это сразу видно и по порядку следования глав, и по используемым в иллюстрацию пакетам прикладного назначения: WWW, mail и т.д.

Re: Python

Добавлено: 22 июн 2013, 19:04
Olej
Olej писал(а): где-то в Python-обсуждениях (сейчас и найти повторно не могу) прочитал глупость, что мол на Python "а вы попробуйте сделать рекурсивное вычисление факториала глубиной в 1000"...

Берём за основу:
Хотя и без рекурсии вычисление факториала можно записать в Python очень лаконично, воспользовавшись (в стиле функционаьного программирования) функциями высшего порядка (reduce()):

Код: Выделить всё

factorial = lambda z: reduce( lambda x, y: x * y, range( 1, z + 1 ), 1 )

if len( sys.argv ) > 1:  n = int( sys.argv[ 1 ] )
else: n = int( input( "число?: " ) )

print "n=%d => n!=%d" % ( n, factorial( n ) )
Сама функция, собственно, в одной 1-й строке ;-)
bash-4.2$ ./fact3.py 5
n=5 => n!=120
bash-4.2$ ./fact3.py 50
n=50 => n!=30414093201713378043612608166064768844377641568960512000000000000

Re: Python

Добавлено: 24 июн 2013, 13:30
Виктория
Olej писал(а):1. С Python очень легко экспериментировать ... собственно, как со всяким (почти?) интерпретирующим языком (здесь мне вспоминается миниатюрный язык Lua).
В принципе ... человеку с минимальным умениям программирования на любом инструменте, не нужны какие-то особые курсы, и он легко освоит даже в самых тонкостях Python путём экспериментирования... в течение недели ;-) (так думаю).
Именно из-за этой простоты + интерпретируемости - можно сюда в тему не архивы проектов прикреплять (как С & C++), а прямо в тему код показывать...

2. Заинтересовало меня:
Olej писал(а): глава функционального программирования
+
где-то в Python-обсуждениях (сейчас и найти повторно не могу) прочитал глупость, что мол на Python "а вы попробуйте сделать рекурсивное вычисление факториала глубиной в 1000"...
А чем может помочь простому программисту-труженику функциональное программирование? Изучив эту очередную парадигму, а автоматизации своего труда может и не научишься...

Re: Python

Добавлено: 24 июн 2013, 13:41
Виктория
Olej писал(а):
Виктория писал(а): Совсем модный курс на Coursera -An Introduction to Interactive Programming in Python
Я поинтересовался зарегистрироваться на этот курс и вот что получил в ответ :-o :
You're signed up for An Introduction to Interactive Programming in Python. The course will start on Oct 7th 2013 and we will notify you just before then to remind you when class will begin.
Так что это анонс довольно далёкого будущего ;-)
Ага, на Coursera все курсы только в реальном времени, экзамены и контрольные точки тоже строго по графику. Как у студентов.
Летом edX.org приглашает на CS-169.1x - Software as a Service

Re: Python

Добавлено: 24 июн 2013, 22:00
Olej
Виктория писал(а):А чем может помочь простому программисту-труженику функциональное программирование? Изучив эту очередную парадигму, а автоматизации своего труда может и не научишься...
Тем, что технику функционального программирования можно применять "частично", относительно вычислительных фрагментов ы свом привычном императивном стиле.
(я даже специально провокационно и показал 1-2 таких операторов в примерах, которые привёл выше)
А в той части, где применение функционального стиля уместно, то в этих фрагментах можно быть уверенным в отсутствии побочных эффектов и отсутствии сложно вылавливаемых ошибок.

Так что и в рутинной автоматизации своего труда это может оказаться ох как уместным ;-)