Podstawy bioinformatyki
Podstawowe typy danych
Napisy i ich formatowanie
Joanna Bednarska, Dawid Grabarek
Zakład Chemii Fizycznej i Kwantowej
Katedra Inżynierii i Modelowania Materiałów Zaawansowanych
joanna.bednarska@pwr.edu.pl
dawid.grabarek@pwr.edu.pl
4 listopada 2015
1 / 12
Plan wykładu
1
Rozwiązywanie problemów- imię w ramce
2
Typy danych
Napisy ciąg dalszy
Ważne atrybuty napisów
Formatowanie napisów
2 / 12
Rozwiązywanie problemów- imię w ramce
Jeśli w skrypcie, który produkuje imię w ramce wpiszemy polskie znaki,
wówczas ramka nie wychodzi prawidłowo:
Przykład
******************
* *
* Dawid Grabarek *
* *
******************
*********************
* *
* Aukasz Wolański *
* *
*********************
3 / 12
Rozwiązywanie problemów- imię w ramce
Procedura postępowania w takim przypadku:
Odpowiedz na pytanie co może być zródłem błędu:
zmiennia imie
zmienna dl
Haszujemy (#) wszystko co wykorzystuje zmienną imie i nakazujemy
jedynie jej wydrukowanie. Zahaszowane linijki nie są interpretowane
przez interpreter.
Wykonujemy skrypt i powtarzamy haszowanie dla zmiennej dl
Porównujemy wyniki. To przeważnie pozwoli nam ustalić zródło błędu
4 / 12
Atrybuty
Definicja
Atrybut - element składni języka programowania, który określa
konkretną właściwość nadaną wybranemu elementowi, a
także operacje, które mogą być na elemencie wykonywane.
Przykład
>>> x=7
>>> dir(x) #Wyświetl atrybuty konkretnego obiektu
typu int
>>> dir(int) #Wyświetl atrybuty obiektu typu int
>>> dir(float)
>>> dir(str)
5 / 12
Napis- ważne atrybuty
Przykład
>>> a= Bardzo ważny napis. Na dodatek dłuuuuugi.
>>> dir(a) #Wyświetl atrybuty napisu
>>> a.count( N )
1
>>> a.count( n ) #Istnieje różnica między dużą i
2 małą literą
>>> a.count( . )
2
>>> a.count( ) #Można liczyć spacje i znaki
5 interpunkcyjne
>>> a.count( azd )
0
>>> a.index( a ) #Wydrukuj najmniejszy indeks (pozycję)
1 na której znajduje się litera a
6 / 12
Napis- ważne atrybuty
Atrybuty islanum, isalpha, isdigit, islower, isspace, istitle, isupper
sprawdzają, czy elementy napisu są jednego rodzaju, np. czy wszystkie są
numerami, dużymi literami, czy napis to tylko spacje, itd.
Wypróbuj działanie różnych atrybutów. Używaj atrybutu doc .
Przykład
>>> a.split() #Zwraca listę słów rozdzielonych spacją
>>> a.split( a ) #Separator można dobrać samodzielnie
>>> slowa=a.split() #Utwórzmy listę słów
>>> spacja= #Napis, będący spacją
>>> spacja.join(slowa) #Połącz spacją elementy
w liście słów
>>> .join(slowa) #Można to też zrobić szybciej
>>> b= To jest napis z spacjami
>>> a.strip() #Porównaj
>>> b.strip()
>>> a.replace( a , ) #Usuń wszystkie a
7 / 12
w kopii napisu
Napis- ważne atrybuty
Przykład
>>> timon= hakuna matata
>>> timon.capitalize() #Zwraca kopię napisu
z pierwszą wielką literą
>>> timon.title()
>>> timon.upper()
>>> timon.lower()
Uwaga
Zauważ, że powyższe atrybuty zwracają kopię obiektu. Sam obiekt
pozostaje niezmieniony.
Aby go zmienić, należy użyć następującej składni:
zmienna=zmienna.atrybut()
8 / 12
Formatowanie napisów
Formatowanie napisów służy utrzymaniu wysokiej kontroli nad tym co
napis ma zawierać.
Przyjrzyjmy się następującemu przykładowi.
Składnia formatowania napisów
x= żaba
Tutaj zostanie wprowadzone słowo pod
zmienną x: %s % x
calk=98.3
zmienn=3.14159
Tutaj będzie liczba typu int: %d, natomiast
tutaj liczby typu float z trzema cyframi
po przecinku: %.3f % (calk, zmienn)
9 / 12
Formatowanie napisów
Najważniejsze kody formatowania
%s- formatowanie napisu
%d- zamiana liczby typu int() na napis
%f- zamiana liczby typu float() na napis
%%- wprowadzenie znaku %
10 / 12
Formatowanie napisów
Więcej kontroli
%20s, %8d- wyrównaj napis/liczbę do prawej z polem napisu o długości
20 znaków, a liczbę 8 znaków. Pole nigdy nie będzie krótsze niż podany
napis/liczba
%.5s- obetnij napis tak, żeby zawierał tylko 5 pierwszych znaków
%10.5s- obetnij napis tak, żeby zawierał tylko 5 pierwszych znaków w
polu o długości 10
%-20d- jak wyżej, ale wyrównanie do lewej
%+7d- wyrównanie do prawej i wstawienie znaku liczby, nawet jeśli jest
ona dodatnia
%10.4f- wyrównanie do prawej, pole o długości 10 znaków i 4 cyfry po
przecinku
%07d- wyrównanie do prawej, pole o długości 7 znaków wypełnione
zerami (poza tym co wypełni sama liczba)
11 / 12
Zadanie domowe
Zad. 1.
Napisz skrypt wektory.py, który ma policzyć kąt pomiędzy dwoma
wektorami na płaszczyznie (tzn. wektor jest dwuwymiarowy). Odpowiedni
wzór powiązany jest z iloczynem skalarnym wektorów.
Niech skrypt pobiera od użytkownika 4 liczby (dwie współrzędne dla
każdego z wektorów).
Uzyj formatowania napisów, aby wynik zaokrąglony był do 2 miejsc po
przecinku.
Zad. 2.
Przepisz skrypt, który wykonywał proste obliczenia (pierwszy skrypt) tak
żeby wynik zaokrąglony był do 3 miejsc po przecinku, a długość całkowita
pola (tzn. razem z liczbą) wynosiła 10 znaków.
Poza tym skrypt ma po każdej funkcji print informować o liczbach, na
których wykonano działania, np.
Wynik dodawania liczb 2, 11: 13
12 / 12
Wyszukiwarka
Podobne podstrony:
Bioinformatics 2011 Zhang 2083 8bioinfoI wyklad03bioinf4Bioinformatics 2012 Vlachakis bioinformatics bts637(3)elementy bioinformatyki wyklad4Bioinformatyka4Bioinformatyka wykładyBioinformatics 2011 Bakan 1575 7(1)Bioinformatyka skrypt3bioinf5bioinformatyczneBD lab1Bioinformatykabioinf2 sylabusybioinfoI wyklad04bioinf1bioinf2bioinformatyczneBD lab2więcej podobnych podstron