Spis treści:
- łańcuch znaków (string),
- wprowadzanie i prezentowanie danych (raw_input, print),
- zadania.
Poprzednia lekcja: Lekcja 1 (podstawowe typy liczbowe, operatory, rzutowanie)
Następna lekcja: Lekcja 3 (warunki)
W zmiennych oprócz liczb można przechowywać również inne dane. Przykładem tego mogą być wyrazy, zdania itp. czyli coś co w programowaniu nazywa się łańcuchem znaków np. 'abc', 'Ala ma kota.', "kino", "zielony samochód". Jak widać z powyższych przykładów łańcuchy musza być umieszczone w apostrofach lub cudzysłowach.
Przykładowy kod programu sprawdzający typy poszczególnych wartości
http://ideone.com/oexpNJ
Dla wszystkich wartości program daje odpowiedź:
Czyli wszystkie ze sprawdzanych wartości są typu str czyli string.
Spróbujmy na stringach wykonać działania arytmetyczne:
http://ideone.com/dUY5A2
odpowiedź programu jest następująca:
Analizując powyższe:
- mnożenie stringa przez liczbę całkowitą powoduje jego powielenie odpowiednią ilość razy,
- dodawanie powoduje doklejenie odpowiedniej litery lub całego zestawu znaków,
- str(23) powoduje odczytanie liczby 23 jako ciągu znaków (rzutowanie).
Aby sprawdzić z ilu znaków składa się dany łańcuch wystarczy użyć funkcji len:
http://ideone.com/zyXqRK
Efekt działania powyższego programu:
Zamiast całego stringa można użyć tylko jego części. Aby to zrobić należy w nawiasie kwadratowym podać, którą literę lub litery chcemy wyłuskać:
Odpowiedź programu:
Odwołując się do konkretnej litery należy pamiętać, że ich numeracja w ciągu zaczyna się od 0 (linie 3, 4 i 5). Wartości ujemne w nawiasach kwadratowych powodują wypisanie konkretnej litery od końca ciągu (linie 6 i 7). Wpisane zakresy a:b powodują oddanie liter ciągu znajdujących się w tym zakresie (linie 8 i 9).
W linii 5 został umieszczony komentarz. Jest to fragment kodu źródłowego, który nie będzie brany pod uwagę podczas wykonywania programu.
- komentarze umieszczone tylko w jednej linii poprzedza się znakiem #,
- komentarze obejmujące więcej niż jedna linię umieszcza się między potrójnymi apostrofami lub cudzysłowami.
Odpowiedź programu:
Dzięki komentarzom można opisać swój program w celu ułatwienia, sobie lub innym, późniejszej jego analizy.
Komunikację między użytkownikiem a programem można uzyskać dzięki funkcji raw_input(wiadomośćDlaUżytkownika). W przypadku gdy interpretuje się programy lokalnie (np. na swoim komputerze pliki z rozszerzeniem py) program będzie czekał na podanie jakiejś wartości i potwierdzenie tego faktu przyciskiem Enter. Jeżeli jednak uczymy się programować w serwisie ideone.com trzeba wejść w zakładkę "dane wejściowe" i wpisać wartość lub wartości, których będzie potrzebował program.
Dla podanego imienia Krzysztof program zwraca następująca odpowiedź:
Dzięki instrukcji print, która wypisuje komunikaty dla użytkownika komunikacja użytkownika z programem może odbywać się w dwie strony.
Może zdarzyć się sytuacja, w której zależy programiście na tym by wpisywane przez użytkownika dane były rozpoznawane jako dane reprezentujące konkretny typ np. float. By poradzić sobie z takim problemem możemy odpowiednio rzutować wartości zwracane przez funkcje raw_input.
4
4
program daje odpowiedź:
Poprzednia lekcja: Lekcja 1 (podstawowe typy liczbowe, operatory, rzutowanie)
Następna lekcja: Lekcja 3 (warunki)
Zadania
1. Jaka będzie odpowiedź programu w poniższych przypadkach (w przypadku dowolnego błędu odpowiedź to error)
a. print 4 * "a"
b. print "Ala " + "ma"
c. print "Ala ma " * "kota."
d. print "Ala ma kota."[2]
e. print "Ala ma kota."[:5]
f. print "Ala ma kota."[5:]
2. Jaka będzie odpowiedź poniższego skryptu?
3. Napisz skrypt, który przyjmie od użytkownika liczbę całkowitą (np. 2), podniesie ją do dziesiątej potęgi i wypisze wynik potęgowania na ekran.
Poprzednia lekcja: Lekcja 1 (podstawowe typy liczbowe, operatory, rzutowanie)
Następna lekcja: Lekcja 3 (warunki)
- łańcuch znaków (string),
- wprowadzanie i prezentowanie danych (raw_input, print),
- zadania.
Poprzednia lekcja: Lekcja 1 (podstawowe typy liczbowe, operatory, rzutowanie)
Następna lekcja: Lekcja 3 (warunki)
W zmiennych oprócz liczb można przechowywać również inne dane. Przykładem tego mogą być wyrazy, zdania itp. czyli coś co w programowaniu nazywa się łańcuchem znaków np. 'abc', 'Ala ma kota.', "kino", "zielony samochód". Jak widać z powyższych przykładów łańcuchy musza być umieszczone w apostrofach lub cudzysłowach.
Przykładowy kod programu sprawdzający typy poszczególnych wartości
1 2 3 4 | print type("Ala ma kota") print type("A") print type('A') print type('dobra ksiazka') |
<type 'str'>
Czyli wszystkie ze sprawdzanych wartości są typu str czyli string.
Spróbujmy na stringach wykonać działania arytmetyczne:
1 2 3 4 | print "a" * 3 print "abc" * 3 print "abc" + "b" print "abc" + str(23) |
odpowiedź programu jest następująca:
aaa abcabcabc abcb abc23
Analizując powyższe:
- mnożenie stringa przez liczbę całkowitą powoduje jego powielenie odpowiednią ilość razy,
- dodawanie powoduje doklejenie odpowiedniej litery lub całego zestawu znaków,
- str(23) powoduje odczytanie liczby 23 jako ciągu znaków (rzutowanie).
Aby sprawdzić z ilu znaków składa się dany łańcuch wystarczy użyć funkcji len:
1 2 | print len("Ala ma kota") print len(str(2014)) |
11 4
Zamiast całego stringa można użyć tylko jego części. Aby to zrobić należy w nawiasie kwadratowym podać, którą literę lub litery chcemy wyłuskać:
1 2 3 4 5 6 7 8 9 | ciagZnakow = "komputer"; print len(ciagZnakow); print ciagZnakow[0]; print ciagZnakow[4]; # print ciagZnakow[10]; <- błąd print ciagZnakow[-1]; print ciagZnakow[-8]; print ciagZnakow[3:6]; print ciagZnakow[3:18]; |
8 k u r k put puter
Odwołując się do konkretnej litery należy pamiętać, że ich numeracja w ciągu zaczyna się od 0 (linie 3, 4 i 5). Wartości ujemne w nawiasach kwadratowych powodują wypisanie konkretnej litery od końca ciągu (linie 6 i 7). Wpisane zakresy a:b powodują oddanie liter ciągu znajdujących się w tym zakresie (linie 8 i 9).
W linii 5 został umieszczony komentarz. Jest to fragment kodu źródłowego, który nie będzie brany pod uwagę podczas wykonywania programu.
- komentarze umieszczone tylko w jednej linii poprzedza się znakiem #,
- komentarze obejmujące więcej niż jedna linię umieszcza się między potrójnymi apostrofami lub cudzysłowami.
1 2 3 4 5 6 7 8 9 10 | # komentarz w jendej linii a = 2 print a ** 10 """ 1. linia komentarza 2. linia komentarza 3. linia komentarza 4. linia komentarza """ print a**2 |
Odpowiedź programu:
1024 4
Dzięki komentarzom można opisać swój program w celu ułatwienia, sobie lub innym, późniejszej jego analizy.
Komunikację między użytkownikiem a programem można uzyskać dzięki funkcji raw_input(wiadomośćDlaUżytkownika). W przypadku gdy interpretuje się programy lokalnie (np. na swoim komputerze pliki z rozszerzeniem py) program będzie czekał na podanie jakiejś wartości i potwierdzenie tego faktu przyciskiem Enter. Jeżeli jednak uczymy się programować w serwisie ideone.com trzeba wejść w zakładkę "dane wejściowe" i wpisać wartość lub wartości, których będzie potrzebował program.
1 2 3 | imie = raw_input("Podaj swoje imie: ") print "\n" print "Masz ladne imie, " + imie + "." |
Podaj swoje imie: Masz ladne imie, Krzysztof.
Dzięki instrukcji print, która wypisuje komunikaty dla użytkownika komunikacja użytkownika z programem może odbywać się w dwie strony.
Może zdarzyć się sytuacja, w której zależy programiście na tym by wpisywane przez użytkownika dane były rozpoznawane jako dane reprezentujące konkretny typ np. float. By poradzić sobie z takim problemem możemy odpowiednio rzutować wartości zwracane przez funkcje raw_input.
Dla danych:
1 2 3 4 a = float(raw_input()); print 2 / a a = int(raw_input()); print 2 / a
4
4
program daje odpowiedź:
0.5 0Standardowo raw_input oddaje wartość w postaci stringa. Bez rzutowania nie możnaby wykonać dzielenia.
Poprzednia lekcja: Lekcja 1 (podstawowe typy liczbowe, operatory, rzutowanie)
Następna lekcja: Lekcja 3 (warunki)
Zadania
1. Jaka będzie odpowiedź programu w poniższych przypadkach (w przypadku dowolnego błędu odpowiedź to error)
a. print 4 * "a"
b. print "Ala " + "ma"
c. print "Ala ma " * "kota."
d. print "Ala ma kota."[2]
e. print "Ala ma kota."[:5]
f. print "Ala ma kota."[5:]
2. Jaka będzie odpowiedź poniższego skryptu?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | slowo1 = "Ala" slowo2 = "ma" slowo3 = "kota" print slowo1+slowo2+slowo3 print slowo1 + " " + slowo2 + " " + slowo3 slowo3 = "psa" print slowo1 + " " + slowo2 + " " + slowo3 slowo1 = slowo2 * 2 print slowo1 == "Ala" print slowo1 + " " + slowo3 print slowo1 and "Ala" print 'a' in slowo3 print slowo1[::2] print (slowo1+slowo2+slowo3)[::2] |
Poprzednia lekcja: Lekcja 1 (podstawowe typy liczbowe, operatory, rzutowanie)
Następna lekcja: Lekcja 3 (warunki)
Komentarze