Szukaj na blogu

Kalkulator zamiast skryptu

Ostatnio umieściłem na blogu skrypty napisane w pythonie. Więc kto go jeszcze nie miał zainstalowanego to pewnie już ma, a jak nadal nie ma to może się zastanawia czy warto instalować kilku megabajtowy program dla uruchomienia kilku kilobajtowego skryptu.

Dlatego chciał bym napisać do czego jeszcze może wykorzystać tego gada osoba która się nie zajmuje programowaniem.

Pierwszym zastosowaniem jest użycie węża jako kalkulatora. Wystarczy go zwyczajnie uruchomić i wpisać 2+2*2 albo co tam chcemy policzyć.


Co potrafi taki kalkulator i w czym jest on lepszy od innych:
  • zachowuje kolejność wykonywania działań, jak widać 2+2*2 to 6
  • potrafi operować na dużych liczbach, np gdy chcemy policzyć 3 do potęgi 3000 to w zwykłym kalkulatorze o ile nie wyśle nas na drzewo bo liczba jest za duża to dostaniemy tylko przybliżony wynik (tzn początek liczby w zapisie wykładniczym). Na próbę można sobie wpisać 3**3000 w pythonie i zobaczyć co dostaniemy.
    Przy okazji mała uwaga aby nie wpaść w pułapkę liczb całkowitych, nie zawsze chcemy aby wynikiem działania na liczbach całkowitych była liczba całkowita np 3/2 da nam liczbę 1 zamiast półtora - dlatego przy dzieleniu lepiej używać liczb niecałkowitych, albo przynajmniej zapisać którąś z liczb tak jak by była ułamkiem np 3.0/2 albo wystarczy nawet 3./2 a dostaniemy wynik w postaci liczby rzeczywistej czyli 1.5
  • posiada wiele różnych funkcji matematycznych, aby z nich skorzystać trzeba wpisać
    from math import *
    i już możemy policzyć np sin(pi/2)
  • potrafi działać na liczbach zespolonych, w tym celu robimy tak jak w poprzednim przykładzie tylko zamiast math piszemy cmath czyli
    from cmath import *
    i dalej możemy policzyć np sqrt(-1), przy obliczeniach można posługiwać się dość intuicyjnym zapisem takich liczb np 2+7j
    Listę dostępnych funkcji matematycznych znaleźć można tutaj i dla liczb zespolonych tutaj 
  • możliwe są obliczenia na ułamkach zwykłych, choć tutaj ich zapis nie jest już taki do końca intuicyjny np aby dodać 1/3 i 1/2 trzeba napisać
    Fraction(1,6)+Fraction(1,3)
    (wcześniej trzeba zrobić jeszcze from fractions import Fraction)
  • możemy definiować własne funkcje np
    def f(x): return x**3-2*x+5 (i 2 razy nacisnąć enter) a potem możemy posługiwać się swoją funkcją pisząc f(cośtam) np  f(-3+2j)
Tutaj już trochę zaczynamy się ocierać o programowanie (no bo własne funkcje i jeszcze te słowo return) więc na tym skończę z kalkulatorem i przejdę do innego nietypowego zastosowania pytona.


A teraz coś z zupełnie innej beczki:

Chcemy udostępnić komuś szybko jakieś pliki, wystarczy jedno polecenie
python -m SimpleHTTPServer
I mamy własny serwer www z zawartością katalogu w którym zostało to polecenie wykonane, drugiej osobie wystarczy tylko powiedzieć aby weszła przeglądarką na adres http://ip.naszego.komputera:8000

Co więcej, nie musi być nawet komputer, warto to sobie zapamiętać gdy będziemy u kogoś znajomego kto nie posiada kabla USB ani czytnika kart pamięci, będziemy mu mogli tym sposobem udostępnić po wifi zdjęcia zrobione telefonem - o ile mamy węża na telefonie ;)

2 komentarze:

  1. Nie wiem, czy dobrze to robię(jestem kompletnym laikiem, jeżeli chodzi o python-a). Ale wchodzę na "Python shell", wpisuje python -m SimpleHTTPServer i wychodzi mi coś takiego:
    SyntaxError: invalid syntax

    Pomocy :(

    OdpowiedzUsuń
    Odpowiedzi
    1. Nie masz wpisywać python w pythonie tylko uruchomić pythona z parametrem -m SimpleHTTPServer

      Usuń