Tetek weblog

UTF-8 odpowiedniki polskich liter

Posted by: Tetek on: October 14, 2009

Witam
Dodaje tutaj prosty pythonowy skrypt który zamienia polskie znaki (ąćśżź itp) na ich angielskie odpowiedniki (acszz itp) znaki są zamieniane z utf-8 do standardowych. Według tablicy Kodowania polskich znaków. Z tego co wiem, to nie ma wbudowanej funkcji do takiej operacji. encode(‘ascii’,'ignore’) nie działa do końca tak jak powinno. Ja rozwiązałem to tak:

def odkoduj(tekst):
    polskie = {"\xc4\x84":"A","\xc4\x86":"C",
"\xc4\x98":"E","\xc5\x81":"L","\xc5\x83":"N","\xc3\x93":"O",
"\xc5\x9a":"S","\xc5\xb9":"Z","\xc5\xbb":"Z","\xc4\x85":"a",
"\xc4\x87":"c","\xc4\x99":"e","\xc5\x82":"l","\xc5\x84":"n",
"\xc3\xB3":"o","\xc5\x9b":"s","\xc5\xba":"z","\xc5\xbc":"z"}
    for x in polskie.keys():
        tekst = string.replace(tekst,x,polskie[x])
    return tekst

Kurs Pythona Swachy – Ćwiczenia

Posted by: Tetek on: August 13, 2009

Zaczynając moją przygodę z pythonem naktnałem się na bardzo ciekawy kurs. Kurs Jakuba Swachy który możecie znaleźć na stronie http://uoo.univ.szczecin.pl/~jakubs/ . Bardzo polecam ten kurs osobom chętnym do poznania pythona.  Pomyślałem,  że zamieszcze tutaj moje rozwiązania do niektórych ćwiczeń.  (Pliki .py możecie ściągnąć z widgetu box.net)

Ćwiczenie 11.
Napisz program “numer.py”, który zamieni wprowadzony przez użytkownika ciąg cyfr na formę tekstową:
a) znaki nie będące cyframi mają być ignorowane
b) konwertujemy cyfry, nie liczby, a zatem:
- 911 to “dziewięć jeden jeden”
- 1100 to “jeden jeden zero zero”

import string
cyfry = ('zero', 'jeden', 'dwa', 'trzy', 'cztery', 'pięć', 'sześć', 'siedem', 'osiem', 'dziewięć')
ciag = raw_input('Podaj ciąg cyfr: ')
for x in ciag:
    if x not in string.digits: continue
    print cyfry[int(x)]

Ćwiczenie 12.
Woda zamarza przy 32 stopniach Fahrenheita, a wrze przy 212 stopniach Fahrenheita. Napisz program “stopnie.py”, który wyświetli tabelę przeliczeń stopni Celsjusza na stopnie Fahrenheita w zakresie od –20 do +40 stopni Celsjusza (co 5 stopni). Pamiętaj o wyświetlaniu znaku plus/minus przy temperaturze.

for x in range(-20,45,5):
    print '%+3i' % x, 'to sie równa %+4i' % ((x*9)/5 + 32), 'F'

Ćwiczenie 13.
Napisz program “oceny.py”, który wczytuje od użytkownika kolejne oceny i:
a) sprawdza czy wprowadzona ocena jest na liście dopuszczalnych na wydziale ocen (jeżeli ocena jest na liście dopuszczalnych na wydziale ocen, dodaje ją na listę otrzymanych ocen)
b) jeżeli wciśnięto sam Enter, oznacza to koniec listy otrzymanych ocen
c) wyświetla wyliczoną dla listy otrzymanych ocen średnią arytmetyczną.

wydzial = range(1,7)
dobre = []
oceny = input("podaj swoje oceny: ")
a = 0
for x in oceny:
    if x not in wydzial: continue
    dobre += [x]
for y in dobre:
    a += y
print "Twoja średnia ocen to", "%5.2f" % (float(a)/len(dobre))

Ćwiczenie 14.
Napisz program “tryg.py”, który wczyta od użytkownika wielkość kąta w stopniach i wyświetli wartość czterech podstawowych funkcji trygonometrycznych (sin, cos, tg, ctg) o ile dla danego kąta jest to możliwe.

from math import *
kat = input("Podaj wielkość kąta w stopniach: ")
print "%+5.3f" % sin(radians(kat))
print "%+5.3f" % cos(radians(kat))

if radians(kat)%(pi/2)== 0:
    print "nie ma takiego tangensa"
else:
    print "%+5.3f" % tan(radians(kat))

if radians(kat)%(pi)== 0:
    print "nie ma takiego cotangensa"
else:
    print "%+5.3f" % (1/tan(radians(kat)))

Ćwiczenie 15.
Napisz program “lotto.py”, który wyświetli 6 losowych i nie powtarzających się liczb z zakresu od 1 do 49.

from random import randint
lista = []

def lotto():
    a = randint(1,49)
    if a not in lista:
        lista.append(a)
    else:
        lotto()

for x in range(6):
    lotto()

print lista

Ćwiczenie 18.
Zdefiniuj funkcję “avg”, która dla dowolnej liczby parametrów zwróci ich średnią arytmetyczną (lub 0 dla 0 parametrów).

def avg(*a):
    y=0
    for x in a:
        y+=x
    return a and y/float(len(a))or 0

Ćwiczenie I.

Napisz program „liczby_slownie2.py”, który dla wprowadzonej liczby dziesiętnej (z zakresu 1-1999) wyświetli jej wartość zapisaną słownie.

liczby = {0:"zero",1: "jeden ",2:"dwa ",3:"trzy ",4:"cztery ",5:"pięć ",6:"sześć ",
          7:"siedem ",8:"osiem ",9:"dziewięć ",10:"dziesięć ",11:"jedenaście ",12:"dwanaście ",13:"trzynaście ",14:"czternaście ",
          15:"piętnaście ",16:"szesnaście ",17:"siedemnaście ",18:"osiemnaście",19:"dziewiętnaście",40:"czterdzieści",
          100:"sto ",200:"dwieście ",1000:"tysiąc ", 30: "trzydzieści ", 20: "dwadzieścia ",50: "pięćdziesiąt ",
          60: "sześćdziesiąt ",70: "siedemdziesiąt ",80: "osiemdziesiąt ",90: "dziewięćdziesiąt ",
          300: "trzysta ", 400: "czterysta ",500: "pięćset ",600: "sześćset ",700: "siedemset ",800: "osiemset ",900: "dziewięćset "}
r = liczby.keys()
r.sort()
r.reverse()
lr = ""
b = []
def fct(n):
    r = liczby.keys()
    r.sort()
    r.reverse()
    lr = ""
    for i in r:
        while i <= n:
            lr += liczby[i]
            n -= i
            break
    b = str(lr).rstrip('zero')
    return b

x = input("Podaj liczbę całkowitą:")
print  fct(x)

Nokia n91 HDD problem – Solved !

Posted by: Tetek on: November 5, 2007

As you know I’m nokia n91 user. This is the best phone which I’ve ever had. (n-gage,n-gage QD, 6600,w810i, 9300i communicator etc…). Everything was Ok, yesterday I was downloading podcast by wi-fi, (305mb skate video)… In this time I was instaling new programs.. I was so stupid and I was installing programs which i don’t know what they are for.. Installing more and more.. and phone got slowly.. And, It was about 19:00 when the podcast got downloaded. So when I want to connect n91 in USB STORAGE mode it says that HDD is used by some application. Also it don’t want to format HDD for the same reason. I was looking for internet a lot of time to get some tips for it.. I found some post where was wrote “I return my nokia n91 to the servis..” That’s break my down… but I could belive, becouse it looks like software problem, so I clicked a symbian s60 format code (*#7370#), and i stared to format my phone, but it doesn’t work as a result. “that HDD is used by some application” all the time… But I solved this problem.

As you know, or don’t know when remove the back cover the HDD is not working.. So what you must to do in points:
1. Removed back cover
2. Restart phone
3. After restarting put back cover
4. And very fast connect to the usb cable ( very fast because any other app. can’t start working on HDD)
5. Than backup your files
6. Format from Windows/Mac/Linux in FAT32 (WARNING!! DON’T FORMAT YOUR PHONE TO NTFS!! IT WOULDN’T WORK AGAIN!)
7. Now your phone must be working, do a format from a phone (Disk Manager), for sure that’s everything is OK.)
8. Now you can enjoy your nokia n91, and remember to install only useful software.

I decided to install only the best software, so I will write what I have installed on my phone!
And remember to install nokia soft updater and update your soft, it will be more compatible for sure!
I wish I helped you, If you have any problems, please write in comments ;-)
In the next update! Nokia headphones pilot HS-28 ! Amazing thing !

Snownews (RSS dla linuxa)

Posted by: Tetek on: August 30, 2007

Dzisiaj, rano szukając wiadomościm, stwierdziem żę wygodniej będzie mi czytać rss. Tylko gdzie? Na stronach? nie bardzo. W związku z tym zajrzałem do piruta. Najpierw chciałem zainstalować pierwszy z możliwych pakietów po wpisaniu rss, lecz wymagał firefoxa 2.0.0.3 .. a tak owego nie posiadam ( zaraz zakutalizuje). Ostatni na liście, “snownews”. można go także ściągnąć w konsoli.. su – , yum install snownews. SnowNews pokazuje newsy w konsoli. Porusza sie bardzo dynamicznie i płynnie, jest prosty w użyciu. Bardzo łatwo można dodać nowy kanał. Wystarczy kliknąć przycisk “a” i dodać url. Poniżej prezentuje screeny.
snownews5.pngsnownews2.pngsnownews3.pngsnownews

Beryl Manager

Posted by: Tetek on: August 29, 2007

Z tego co zdążyłem zauważyć na google, dużo ludzi ma problem z berylem. Po restarcie fedory nie włączają im sie efekty, chociaż beryl jest w autostarcie. Ja tez należe do tej grupy:D, jednak jest proste rozwiązanie. Klikamy prawym przyciskiem myszy na ikonke beryla i wybieramy: Wybierz Manager Okien ( domyślnie jest Metacity) a jednak działa kiedy ustawi się na “beryl”;)

Jeśli jest ustawione na beryl a nie działa. Nalezy dać metacity i jeszcze raz przełączyć na beryl..

To by było na tyle w pierwszym poście.

Pozdrawiam

My delicious