rolisz's site

Simplu calculator în Python - partea 1

De mai multă vreme tot mă bate gândul să fac ceva in­ter­pre­ta­tor pentru un limbaj mai simplu. Ca o primă aventurare în lumea in­ter­pretării șirurilor de caractere ca in­strucți­u­ni pentru calculator, m-am decis să fac un simplu „cal­cu­la­tor” în Python, care să aibă și suport pentru câteva funcții matematice și pentru variabile.

Basically, ce urmăresc eu e să am un mic progrămel care știe să facă ur­mă­toarele:

7+10*sin(pi/2)/2-3^2  # să dea 3
x = 127-30*ln(e)      # x să aibă valoarea 97
y = x^2 - 60/30*(6+x) # y să aibă 9203

Definiția riguroasă a sintaxei pe care o acceptă programul este următoarea:

<Number> = [0-9]+.?[0-9]* <Identifier> 
continue.

Redirecting Python output from the command line

Today I needed to write a quick script that does some operations on colors. Because I'm trying to learn Vim and I'm trying to master the command line (not the standard Windows one, but Console2 + PyCmd), of course I wrote it with command-line usage in mind. The script starts taking shape, so let's use it. Well, it prints out the desired output. What next? Let's redirect its output to the clipboard. A quick Google search revealed the clip utility, which copies to the clipboard its stdin.

colors.py middle #000 #FFF | clip

Some­thing's wrong - pasting won't work. The output shows up ok in the console, but it won't redirect continue.

Metode speciale în Python

Îmi cer scuze că nu am scris de vreo 2 săpt. Am fost plecat și am fost în pană de idei

Clasele din Python pot avea, pe lângă metodele normale, care se apelează direct, și metode speciale, care nu prea sunt apelate direct (deși se poate), ci Python le apelează atunci când are nevoie de ele. Un exemplu de asemenea metodă specială, pe care toată lumea îl știe, este __init__, care definește con­struc­torul clasei. Acesta nu îl apelăm noi direct, ci Python îl apelează în momentul în care creăm o clasă nouă. Un alt exemplu destul de cunoscut (cel puțin dacă sunteți studenți la UBB) este __str__, care este continue.