Jump to content

bcman

Active Members
  • Posts

    1515
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by bcman

  1. Defapt, are dreptate. Intri pe .com ?i te redirec?ioneaz? pe .net , care, a?a cum a zis ?i el, nu exist?. // Rectific, a scris link-ul gre?it.
  2. ?i ce fac dac? am un fi?ier .chm ?i vreau s?-l citesc într-un e-reader? Se poate converti? ?i dac? da, în ce ar fi cel mai bine s?-l convertesc? (s? nu apar? probleme de compatibilitate etc.)
  3. Ave?i aici un infografic foarte interesant despre e-readere ?i care s-ar putea s? î?i fie de folos, sharkyz.
  4. A mai suferit modific?ri, dar în mare e acela?i.
  5. Mersi, nu auzisem despre aceste tool-uri de backup (în afar? de clonezilla). Îmi place ?i cum ai gândit scheduler-ul. Nu eram sigur cam câte backup-uri s? p?strez.
  6. E a?a greu s? explici sensul unui cuvânt?
  7. Stai lini?tit, ?i la ?sta ?ine 2 s?pt?mâni bateria ?i l-am ?i sc?pat de la etajul 2 ?i merge brici. ON: Alegerea î?i apar?ine. Dac? telefonul actual nu te mul?ume?te ?i cel oferit la schimb î?i face cu ochiul, atunci accept?. În caz contrar, nu o face.
  8. * Articolul original a fost scris de mine, Bogdan Condurache, pentru Wolrdit* Vom continua subiectul dezb?tut în articolul anterior, deoarece, atât despre liste, cât ?i despre tuples mai sunt multe de spus. S? începem cu un mic exemplu în care o propozi?ie citit? de la tastatur? va fi afi?at? într-un chenar, în centrul ferestrei. # Prints a sentence in a centered "box" of correct width # Note that the integer division operator (//) only works in Pytho # 2.2 and newer. In earlier versions, simply use plain division (/ sentence = raw_input("Sentence: ") screen_width = 80 text_width = len(sentence) box_width = text_width + 6 left_margin = (screen_width - box_width) // 2 print print ' ' * left_margin + '+' + '-' * (box_width-2) + '+' print ' ' * left_margin + '| ' + ' ' * text_width + ' |' print ' ' * left_margin + '| ' + sentence + ' |' print ' ' * left_margin + '| ' + ' ' * text_width + ' |' print ' ' * left_margin + '+' + '-' * (box_width-2) + '+' print raw_input() #programul va astepta apasarea unei taste inainte de inchidere Exemplul este destul de u?or de în?eles, de aceea nu voi insista asupra lui ?i vom trece mai departe. Apartenen?a >>> permisiuni = 'ab' >>> 'a' in permisiuni True >>> 'w' in permisiuni False >>> utilizatori = ('Andrei', 'Cristi', 'Bogdan') >>> raw_input('nume: ') in utilizatori nume: Bogdan True >>> raw_input('nume: ') in utilizatori nume: Dinozaur False Dup? cum a?i putut observa, prin intermediul in se verific? apartenen?a unui string (sau list? sau tuple) într-un alt string (sau list? sau tuple). Un exemplu pentru observa?ia de mai sus: >>> subiect = '!!! Important !!!' >>> '!!!' in subiect True Exemplul urm?tor este un program ce con?ine o „baz? de date” (defapt este o banal? list?) preconceput? ?i verific? dac? combina?ia user – parol? citit? de la tastatur? se afl? în list?. Am fost nevoit s? folosesc instruc?iunea if. Pentru a v-o explica pe scurt, pot spune c? aceast? instruc?iune verific? dac? declara?ia imediat urm?toare (denumit? ?i condi?ie) este adev?rat? ?i, în caz afirmativ, comanda de dup? condi?ie va fi executat?. db = [ ['andrei', '1337'], ['bogdan', '8080'], ['raul', '2425'], ['ionut', '7331'] ] nume = raw_input('Nume: ') passw = raw_input('Parola: ') if [nume, passw] in db: print 'Acceptat' În cazul de fa??, prin if se verific? dac? lista alc?tuit? din nume ?i parol? este prezent? în lista denumit? db ?i dac? da, se va afi?a Acceptat. Func?ii utile Am folosit în primul exemplu de azi func?ia len() , care returneaz? lungimea unui string. Aceasta al?turi de min() ?i max() pot fi foarte utile în utilizarea stringurilor. Exemplele de ma jos explic? foarte bine utilizarea acestor func?ii. >>> numbers = [100, 34, 678] >>> len(numbers) 3 >>> max(numbers) 678 >>> min(numbers) 34 >>> max(2, 3) 3 >>> min(9, 3, 2, 5) 2 Func?ia list Avantajul unei liste este c?, spre deosebire de un string, poate fi manipulat. De aceea se poate dovedi util în unele cazuri s? transformi un string în list? ?i, eventual, invers. >>> list('WorldIT') ['W', 'o', 'r', 'l', 'd', 'I', 'T'] >>> convert = list('WorldIT') >>> convert ['W', 'o', 'r', 'l', 'd', 'I', 'T'] >>> convert2 = ''.join(convert) >>> convert2 'WorldIT' >>> type(convert) <type 'list'> >>> type(convert2) <type 'str'> Despre join voi spune mai multe într-un articol viitor. Opera?ii de baz? cu listele V-am tot spus c? o list? poate fi modificat?. Ei, a sosit timpul s? vede?i cum pute?i modifica o list?, lucru care e destul de simplu. >>> a = [1, 2, 3] >>> a[1] = 5 >>> a [1, 5, 3] Aten?ie, nu se poate modifica o valoare care nu exist? (în cazul de fa??, nu a? putea modifica a[5]). Pentru a ?terge ?i a ad?uga (la sfâr?it) elemente în list? se folose?te del, respectiv append (care este o metod? – method): >>> del a[2] >>> a [1, 5] >>> a.append(9) >>> a [1, 5, 9] O alt? metod? folosit? pentru a modifica (de data aceasta p?r?i mai mari) dintr-o list? este aceea de a te folosi de slicing: >>> name = list('Perl') >>> name[1:] = list('ython') >>> name ['P', 'y', 't', 'h', 'o', 'n'] În urm?torul exemplu, acest? metod? este folosit? pentru a înlocui caractere de la cap?tul listei (similar cu del, iar în alte cazuri se poate folosi în locul lui append): >>> numbers = [1, 5] >>> numbers[1:1] = [2, 3, 4] >>> numbers [1, 2, 3, 4, 5] Methods Alte câteva metode utile ar fi: count – num?r? de câte ori apare un obiect într-o list? >>> ['to', 'be', 'or', 'not', 'to', 'be'].count('to') 2 >>> x = [[1, 2], 1, 1, [2, 1, [1, 2]]] >>> x.count(1) 2 >>> x.count([1, 2]) 1 extend – asem?n?toare cu concatenarea, doar c? aceasta modific? lista ini?ial? >>> a = [1, 2, 3] >>> b = [4, 5, 6] >>> a.extend( >>> a [1, 2, 3, 4, 5, 6] index – returneaz? pozi?ia primei apari?ii a unui element în list? >>> knights = ['We', 'are', 'the', 'knights', 'who', 'say', 'ni'] >>> knights.index('who') 4 >>> knights.index('herring') Traceback (innermost last): File "<pyshell#76>", line 1, in ? knights.index('herring') ValueError: list.index(x): x not in list insert – insereaz? un element în list?, pe pozi?ia specificat? >>> numbers = [1, 2, 3, 5, 6, 7] >>> numbers.insert(3, 'four') >>> numbers [1, 2, 3, 'four', 5, 6, 7] pop – elimin? ?i returneaz? un element de pe pozi?ia specificat? >>> x = [1, 2, 3] >>> x.pop() 3 >>> x [1, 2] >>> x.pop(0) 1 >>> x [2] remove – elimin? prima apari?ie a obiectului specificat >>> x = ['to', 'be', 'or', 'not', 'to', 'be'] >>> x.remove('be') >>> x ['to', 'or', 'not', 'to', 'be'] reverse – inverseaz? lista >>> x = [1, 2, 3] >>> x.reverse() >>> x [3, 2, 1] sort – sorteaz? lista >>> x = [4, 6, 2, 1, 7, 9] >>> x.sort() >>> x [1, 2, 4, 6, 7, 9] sortare invers?: >>> x = [4, 6, 2, 1, 7, 9] >>> x.sort(reverse=True) >>> x [9, 7, 6, 4, 2, 1] atribuirea gre?it? dup? sortare: >>> x = [4, 6, 2, 1, 7, 9] >>> y = x.sort() # sort returneaza None >>> print y None atribuirea corect? dup? sortare: >>> x = [4, 6, 2, 1, 7, 9] >>> y = x[:] >>> y.sort() >>> x [4, 6, 2, 1, 7, 9] >>> y [1, 2, 4, 6, 7, 9] Încheiere Nu am mai insistat asupra metodelor, deoarece consider c? sunt u?or de în?eles din exemple. V? recomand s? nu le toci?i, ci, s? le folosi?i cât mai des ?i astfel v? ve?i obi?nui cu cele de care ave?i nevoie. Dac? uita?i cum s? face?i un lucru folosind o metod?, nu e nicio problem?. Pute?i s? c?uta?i pe Google, sau, de ce nu, s? v? folosi?i de acest articol. Voi termina aceast? „serie” data viitoare, când v? voi prezenta mai multe despre tuples. *Am folosit exemple de cod din cartea Beginning Python: From Novice to Professional de Magnus Lie Hetland, ISBN: 159059519X *
      • 1
      • Upvote
  9. Voi vre?i +rep de la unul cu rep power 0. WTF! Scuze de offtopic.
  10. Probabil c? tu nu ai citit/în?eles ce ?i-au dat b?ie?ii. ASP.NET. Google it.
  11. Dac? tot ?tii italian?, nu ai tu timp s? faci o traducere?
  12. * Articolul original a fost scris de mine, Bogdan Condurache, pentru Wolrdit* Rezolvarea temei Rezolvarea a fost scris? de Luca George ?i este cât se poate de corect?. Exercitiul 1: nume = raw_input("Nume : ") print "Salutare, " + nume + "." Exercitiul 2: a = raw_input('Introduceti numele ultimei carti citite: ') print ''Ultima data am citit \'' + a + '\'' Felicit?ri pentru rezolvare! Structuri de date Liste Listele sunt prima structur? de date despre care vom vorbi ast?zi. O list? este defapt un tablou unidimensional ce poate con?ine orice alt tip de date, inclusiv: variabile de tip long (marcate cu un L la sfâr?it), stringuri (f?r? a le separa în caractere) ?i chiar ?i alte liste, a?a cum pute?i vedea în acest exemplu. ion = ['Popescu Ion', 42] george = ['Frunzescu George', 51] database = [ion, george] Dup? cum a?i putut vedea, listele sunt marcate de paranteze p?trate, obiectele listei sunt delimitate de virgul?, iar stringurile sunt scrise între ghilimele pentru a nu fi confundate cu o structur? de date cu acel nume. Listele ?i stringurile suport? indexarea, astfel, dac? am avea: string = ‘Salut’, apelând string[0] se va afi?a ‘S’. Acest lucru de poate folosi cu orice num?r pân? la 4 (stringul are 5 caractere, dar primul este 0). Dac? ne-ar interesa ultima liter? am folosi string[-1] (idem pentru -2, -3…). Indexarea se mai poate face în dou? cazuri, stringuri introduse direct, f?r? a se folosi o structur? de date: >>> ‘Salut’[1] ‘a’ ?i în timpul citirii: >>> nume = raw_input('Introduceti numele: ')[0] Introduceti numele: Bogdan >>> nume 'B' Un exemplu pentru folosirea listelor este programul urm?tor care cite?te o dat? ?i o va afi?a în formatul: 24 mai 2012 # Afisarea datei, primind anul, luna, si ziua ca numere lunile = [ 'ianuarie', 'februarie', 'martie', 'aprilie', 'mai', 'iunie', 'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', 'decembrie' ] an = raw_input('Anul: ') luna = raw_input('Luna (1-12): ') ziua = raw_input('Ziua (1-31): ') luna_numeric = int(luna) ziua_numeric = int(ziua) # Nu uita sa scazi 1 din luna si ziua pentru a obtine indexul corect nume_luna = lunile[luna_numeric-1] print ziua + ' ' + nume_luna + ' ' + an raw_input() Slicing Aceast? tehnic? reprezint? folosirea index?rii într-un interval. Pentru a în?elege cum func?ioneaz?, ave?i exemplul urm?tor: >>> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> numbers[3:6] [4, 5, 6] >>> numbers[0:1] [1] Se poate folosi ?i aici ?mecheria cu numerele negative: >>>numbers[-3:-1] [8, 9] Dar dac? vrem s? folosim ultimele 2 caractere din aceast? list?, ce facem? >>> numbers[-2:0] [] Nu e rezultatul a?teptat. Totu?i, de ce este returnat? o list? goal?? Tot timpul când elementul reprezentat de termenul din stânga apare dup? cel din dreapta (adic?, penultimul element fa?? de primul) este returnat? o list? goal?. Solu?ia problemei este >>> numbers[-2:] [9, 10] Acel spa?iu gol de dup? (sau de dinainte, dup? caz) de : reprezint? cap?tul listei. Se poate folosi ?i astfel: >>> numbers[:3] [1, 2, 3] Defapt, pentru a afi?a întreaga list? se poate folosi ?i: >>> numbers[:] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Se poate specifica ?i un al treilea num?r dup? alte dou? puncte, care reprezint? „saltul” f?cut în timpul parcurgerii >>> numbers[0:10:2] [1, 3, 5, 7, 9] Se poate specifica chiar ?i un num?r negativ >>> numbers[10:0:-2] [10, 8, 6, 4, 2] Adunare ?i multiplicare Pe scurt, adunarea func?ioneaz? astfel: >>> [1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] >>> 'Hello, ' + 'world!' 'Hello, world!' >>> [1, 2, 3] + 'world!' Traceback (innermost last): File "<pyshell#2>", line 1, in ? [1, 2, 3] + 'world!' TypeError: can only concatenate list (not "string") to list iar multiplicarea va afi?a un string de un anumit num?r de ori: >>> 'python' * 5 'pythonpythonpythonpythonpython' >>> [42] * 10 [42, 42, 42, 42, 42, 42, 42, 42, 42, 42] Tuples Ele sunt marcate de paranteze rotunde, iar diferen?a semnificativ? dintre liste ?i tuples este c? cele din urm? NU pot fi modificate. Câteva exemple: >>> 1, 2, 3 (1, 2, 3) >>> (1, 2, 3) (1, 2, 3) >>> 42 42 >>> 42, (42,) >>> (42,) (42,) A?a cum a?i observat, doar scriind mai multe numere, separate de virgul?, vom ob?ine un tuple, iar pentru a crea un tuple cu un singur element, acesta va trebui precedat de virgul?. Not? de final Articolul a ajuns destul de lung ?i am considerat c? voi prezenta restul despre liste ?i tuples în articolul urm?tor. *Am folosit exemple de cod din cartea Beginning Python: From Novice to Professional de Magnus Lie Hetland, ISBN: 159059519X * Tem? De aceast? dat? nu voi da o tem?, aceasta va fi publicat? doar dup? terminarea întregii serii Structuri de date.
  13. * Articolul original a fost scris de mine, Bogdan Condurache, pentru Wolrdit* Hello Worldit Atunci când înve?i un limbaj de programare, primul lucru pe care vrei s?-l ?tii este cum s? afi?ezi celebrul mesaj Hello World. Noi vom face o mic? modificare asupra acestui mesaj. În Python, pentru a afi?a un mesaj se va folosi declara?ia print (print statement). V? invit s? deschide?i interpretorul Python ?i s? introduce?i: print "Hello Worldit!" Dup? ce ap?sa?i tasta „Enter” ve?i observa c? se va afi?a Hello Worldit! . Acum vom folosi o variabil? de tip string pentru a face acela?i lucru. În esen??, o variabil? de tip string este un ?ir de caractere. Pentru a atribui o valoare unei astfel de variabile se va introduce numele variabilei, urmat de egal ?i, între ghilimele, ?irul de caractere. Astfel, vom avea: hi = 'Hello Worldit' print hi Observa?i c? atunci când introduce?i în interpretor hi se va afi?a valoarea acestei variabile între ghilimele, iar atunci când folosi?i declara?ia print valoarea este afi?at?, dar nu ?i ghilimelele. Re?ine?i, într-un program scris în afara interpretorului, scriind hi, nu se va afi?a nimic. Pe lâng? ghilimelele duble ?i cele simple se mai poate folosi ?i ”’ (trei ghilimele simple) pentru a marca un string ce se întinde pe mai multe rânduri. De exemplu: print '''Hello, Worldit''' În interiorul acestora se poate folosi orice alt tip de ghilimele. Pentru a se afi?a un rând gol, se poate folosi sau print sau print "\n" Func?iile input ?i raw_input Pentru a citi o valoare de la tastatur? se va folosi func?ia input, a c?rei parametru este un mesaj ce se va afi?a în consol? înaintea citirii (mesaj introdus între ghilimele). Pentru a re?ine aceast? valoare se va folosi o variabil?, ca în urm?torul exemplu: x = input('mesaj: ') Astfel, se va afi?a mesaj: ?i valoarea citit? va se va atribui variabile x. Func?ia input este folosit? doar pentru a prelua valori numerice. Pentru alt tip de valori se va folosi raw_input exact în acela?i mod. Not? de final Datorit? parteneriatului recent dintre WorldIT ?i RST (strict în ceea ce prive?te seria de tutoriale #wit.py) discu?iile de orice fel legate de subiectul articolului (programe scrise în Python, probleme întâmpinate cu acest limbaj etc.), dar ?i feedback-ul vor putea fi postate în topicul corespunz?tor articolului. Pe lâng? acestea, se vor putea posta ?i rezolv?ri alternative ale temelor (doar dup? ce am postat eu solu?ia în articolul imediat urm?tor, asta pentru a nu-i încurca pe cei ce vor s? rezolve pe cont propriu). Pe scurt, aici va fi locul de discu?ii. Legat de tem?, dac? dori?i s?-mi trimite?i rezolvarea în decurs de o s?pt?mân? (înainte de a o posta eu) pute?i s? o face?i pe email. Tem? 1. S? se scrie un program care cite?te de la tastatur? un nume (s? zicem, Andrei) ?i va afi?a Salut, Andrei. 2. S? se corecteze programul urm?tor: a = input(Introduceti numele ultimei carti citite: ) print 'Ultima data am citit '' + a + ''' Astfel încât s? se afi?eze: Ultima data am citit '<carte>'
      • 1
      • Upvote
  14. bcman

    Programare

    C++ când eram pe a 8a. HTML nu e limbaj de programare.
  15. Eu sunt a noua ?i tot fstream folosesc. La olimpiad?, to?i pe care îi ?tiu folosesc tot fstream.
  16. bcman

    What next?

    Am o întrebare legat? de siteul postat de bogdannbv. Tutorialele video chiar sunt utile pentru a înv??a un limbaj?
  17. Hai s? luam o situa?ie ipotetic?: Înc? nu s-a descoperit c? P?mântul se învârte în jurul Soarelui ?i nu invers. Eu formulez aceast? ipotez? ?i m? apuc de cercet?ri. Biserica (în special cea catolic?) mi-ar fi dat în cap (Crede ?i nu cerceta and bullshits) ?i i-ar fi îndemnat pe oameni împotriva mea (s? se roage pentru mine - adic? se se roage s? mor etc.). Dac? a? fi e?uat a? fi fost declarat eretic, nebun etc. (vezi Arie). Dac? a? fi reu?it, pu?ini ar fi amintit de ce a f?cut biserica ?i nimeni nu ar fi pus-o într-o lumin? prost?. Oh yeah, life's fair. PS: Nu veni?i cu argumente pentru a-i convinge pe ceilal?i s?-?i schimbe religia. E decizia fiec?ruia dintre noi. Veni?i cu argumente care s? r?spund? la întrebarea De ce mi-am ales aceast? credin??? .
  18. Consider c? întrebarea Crede?i într-un zeu? era mai potrivit? ?i se adresa mai multor religii. BTW, mai era un astfel de topic f?cut de Neme acum ceva timp. Îi zicea Credincio?i vs atei sau ceva de genul.
  19. Am testat vreo 10 - 15 (facebook ?i filelist) ?i niciunul nu a mers. Nu crezi c? e cam simpl? parola? Oricum, mersi ps-axl ?i felicit?ri pentru contribu?ia adus? forumului.
  20. A fost la M?ru?? ?i a demonstrat c? nu a fost a?a. Am v?zut ?i eu azi reluarea. El a încercat la acea emisiune s? combat? toate argumentele împotriva sa legate de num?rul de la Românii au Talent.
  21. Nu acesta e subiectul postului, c? Windows 8 nu va permite instalarea Firefox/Chrome?
  22. OK, ai dreptate. Dar tot sunt de p?rere c? ar trebui sus?inut? filozofia din spatele Linux, ?i anume libertatea.
  23. bcman

    va salut :)

    Fail? ON: Bine ai venit!
  24. Am mai postat cineva asta pe forum (totti parc?): Download From Sharecash Successfully - Fud Crypters PS: Nu am testat.
×
×
  • Create New...