<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=TI%2FSekwencje</id>
	<title>TI/Sekwencje - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=TI%2FSekwencje"/>
	<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=TI/Sekwencje&amp;action=history"/>
	<updated>2026-04-19T15:41:53Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=TI/Sekwencje&amp;diff=3782&amp;oldid=prev</id>
		<title>Tspus: /* Lista */</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=TI/Sekwencje&amp;diff=3782&amp;oldid=prev"/>
		<updated>2015-06-12T15:08:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Lista&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;pl&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← poprzednia wersja&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Wersja z 15:08, 12 cze 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l56&quot; &gt;Linia 56:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 56:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Rezultat&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;Rezultat&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang='&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;shell_example&lt;/del&gt;'&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang='&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;bash&lt;/ins&gt;'&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mam 4 rzeczy do kupienia.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mam 4 rzeczy do kupienia.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Te rzeczy to: jabłko mango marchew kiwi&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Te rzeczy to: jabłko mango marchew kiwi&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tspus</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=TI/Sekwencje&amp;diff=1600&amp;oldid=prev</id>
		<title>Jarekz: /* Wprowadzenie */</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=TI/Sekwencje&amp;diff=1600&amp;oldid=prev"/>
		<updated>2015-05-22T19:57:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Wprowadzenie&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;pl&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← poprzednia wersja&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Wersja z 19:57, 22 maj 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot; &gt;Linia 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;!-- podstawowe, nie wbudowane, bo wbudowanych jest więcej, np. frozenset --&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;!-- podstawowe, nie wbudowane, bo wbudowanych jest więcej, np. frozenset --&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Tak naprawdę są to klasy &amp;amp;mdash; odpowiednio &amp;lt;tt&amp;gt;list&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;tuple&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;dict&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;set&amp;lt;/tt&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Tak naprawdę są to klasy &amp;amp;mdash; odpowiednio &amp;lt;tt&amp;gt;list&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;tuple&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;dict&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;set&amp;lt;/tt&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Jeśli chcesz wiedzieć więcej o klasach i obiektach, to zajrzyj do rozdziału [[TI\Programowanie zorientowane obiektowo|Programowanie zorientowane obiektowo]].&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Niemniej, aby poprawnie używać obiektów, wystarczy wiedzieć, że obiekty pewnej klasy mają wspólne zachowanie zdefiniowane przez tę klasę. Oznacza to między innymi, że obiekty mają pewien zbiór metod, czyli funkcji które można uruchamiać pisząć &amp;lt;tt&amp;gt;obiekt.metoda()&amp;lt;/tt&amp;gt;.  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Niemniej, aby poprawnie używać obiektów, wystarczy wiedzieć, że obiekty pewnej klasy mają wspólne zachowanie zdefiniowane przez tę klasę. Oznacza to między innymi, że obiekty mają pewien zbiór metod, czyli funkcji które można uruchamiać pisząć &amp;lt;tt&amp;gt;obiekt.metoda()&amp;lt;/tt&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Lista==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Lista==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jarekz</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=TI/Sekwencje&amp;diff=1599&amp;oldid=prev</id>
		<title>Jarekz: Utworzono nową stronę &quot; ==Wprowadzenie== Struktury danych to typy danych posiadających pewną wewnętrzną organizację/strukturę. Struktury danych tworzymy łącząc w określony sposób pr...&quot;</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=TI/Sekwencje&amp;diff=1599&amp;oldid=prev"/>
		<updated>2015-05-22T19:56:27Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot; ==Wprowadzenie== Struktury danych to typy danych posiadających pewną wewnętrzną organizację/strukturę. Struktury danych tworzymy łącząc w określony sposób pr...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
==Wprowadzenie==&lt;br /&gt;
Struktury danych to typy danych posiadających pewną wewnętrzną organizację/strukturę. Struktury danych tworzymy łącząc w określony sposób prostsze typy danych. &lt;br /&gt;
Przykładem może być książka telefoniczna, gdzie odpowiednio organizując i łącząc proste typy: napis (zawierający nazwisko) i int (zawierający numer telefonu) tworzymy nowy typ danych określający jak jest zbudowany pojedynczy wpisy do książki telefonicznej.&lt;br /&gt;
&lt;br /&gt;
W Pythonie istnieją cztery podstawowe struktury danych &amp;amp;mdash; lista, krotka, słownik i zbiór.&lt;br /&gt;
&amp;lt;!-- podstawowe, nie wbudowane, bo wbudowanych jest więcej, np. frozenset --&amp;gt;&lt;br /&gt;
Tak naprawdę są to klasy &amp;amp;mdash; odpowiednio &amp;lt;tt&amp;gt;list&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;tuple&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;dict&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;set&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Jeśli chcesz wiedzieć więcej o klasach i obiektach, to zajrzyj do rozdziału [[TI\Programowanie zorientowane obiektowo|Programowanie zorientowane obiektowo]].&lt;br /&gt;
Niemniej, aby poprawnie używać obiektów, wystarczy wiedzieć, że obiekty pewnej klasy mają wspólne zachowanie zdefiniowane przez tę klasę. Oznacza to między innymi, że obiekty mają pewien zbiór metod, czyli funkcji które można uruchamiać pisząć &amp;lt;tt&amp;gt;obiekt.metoda()&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
==Lista==&lt;br /&gt;
Lista to struktura, która zawiera uporządkowaną sekwencję obiektów. Tych obiektów może być zero, wtedy lista jest pusta, lub dowolnie dużo. Ten sam obiekt może występować na liście wielokrotnie.&lt;br /&gt;
Dwie najważniejsze operacje, jakie można wykonać na liście, to:&lt;br /&gt;
# sekwencyjne działania na obiektach od zerowego do ostatniego. Dzięki temu można użyć listy do iterowania pętli. Wyrażenie &amp;lt;tt&amp;gt;for element in lista:&amp;lt;/tt&amp;gt; rozpoczyna pętlę, w której dostępny jest kolejno każdy element listy. &lt;br /&gt;
# wydobycie z listy obiektu o danym indeksie. Używamy to tego operatora indeksowania &amp;lt;tt&amp;gt;[]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Łatwo sobie to wyobrazić za pomocą listy zakupów, na której masz zapisane rzeczy do kupienia. Jedyna różnica jest taka, że na liście zakupów zazwyczaj rzeczy wpisuje się jedną pod drugą, zaś w Pythonie listę zapisuje się rozdzieląc przecinkami obiekty.&lt;br /&gt;
&lt;br /&gt;
Najprostszym sposobem uzyskania listy jest właśnie zapisanie w treści programu&lt;br /&gt;
ciągu &amp;amp;bdquo;rzeczy&amp;amp;ldquo; rozdzielonych przecinkami, wszystko objęte nawiasami kwadratowymi. Innym sposobem jest wywołanie funkcji, która zwróci listę.&lt;br /&gt;
&lt;br /&gt;
Do listy można dodawać elementy i je z niej usuwać. Te operacje zmieniają listę, więc mówimy, że lista jest ''zmiennym typem danych''.&lt;br /&gt;
&lt;br /&gt;
=== Przykład użycia listy ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# Nazwa pliku: lista.py&lt;br /&gt;
&lt;br /&gt;
# To moja lista zakupów:&lt;br /&gt;
lista = ['jabłko', 'mango', 'marchew', 'kiwi']&lt;br /&gt;
&lt;br /&gt;
print 'Mam', len(lista), 'rzeczy do kupienia.'&lt;br /&gt;
&lt;br /&gt;
print 'Te rzeczy to:',&lt;br /&gt;
for i in lista:&lt;br /&gt;
    print i,&lt;br /&gt;
&lt;br /&gt;
print '\nMuszę jeszcze kupić ryż.'&lt;br /&gt;
lista.append('ryż')&lt;br /&gt;
print 'Teraz moja lista to:', lista&lt;br /&gt;
&lt;br /&gt;
print 'Posortuję moją listę.'&lt;br /&gt;
lista.sort()&lt;br /&gt;
print 'Posortowana lista to:', lista&lt;br /&gt;
&lt;br /&gt;
print 'Pierwsza rzecz, jaką muszę kupić, to', lista[0]&lt;br /&gt;
rzecz = lista[0]&lt;br /&gt;
del lista[0]&lt;br /&gt;
print 'Kupiłem', rzecz&lt;br /&gt;
print 'Moja lista teraz to:', lista&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Rezultat&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='shell_example'&amp;gt;&lt;br /&gt;
Mam 4 rzeczy do kupienia.&lt;br /&gt;
Te rzeczy to: jabłko mango marchew kiwi&lt;br /&gt;
&lt;br /&gt;
Muszę jeszcze kupić ryż.&lt;br /&gt;
Teraz moja lista to: ['jabłko', 'mango', 'marchew', 'kiwi', 'ryż']&lt;br /&gt;
Posortuję moją listę.&lt;br /&gt;
Posortowana lista to: ['jabłko', 'kiwi', 'mango', 'marchew', 'ryż']&lt;br /&gt;
Pierwsza rzecz, jaką muszę kupić, to jabłko&lt;br /&gt;
Kupiłem jabłko&lt;br /&gt;
Moja lista teraz to: ['kiwi', 'mango', 'marchew', 'ryż']&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Jak to działa?&lt;br /&gt;
Zmienna &amp;lt;tt&amp;gt;lista&amp;lt;/tt&amp;gt; jest listą zakupów kogoś wybierającego się do sklepu. Przechowujemy tam jedynie słowa oznaczające przedmioty do kupienia, ale tak naprawdę lista może zawierać dowolne obiekty, np. liczby czy inne listy.&lt;br /&gt;
&lt;br /&gt;
Użyliśmy też pętli &amp;lt;tt&amp;gt;for...in...&amp;lt;/tt&amp;gt; do przejścia po wszystkich elementach listy. W tym momencie można zauważyć, że lista jest przykładem ''sekwencji''. Ale sekwencje poznasz  [[TI\Programowanie_z_Pythonem/Sekwencje#Sekwencje|trochę później]].&lt;br /&gt;
&lt;br /&gt;
Zauważ, że na końcu polecenia &amp;lt;tt&amp;gt;print&amp;lt;/tt&amp;gt; użyliśmy przecinka. Powoduje to, że Python zakończy wypisywanie spacją, a nie przejściem do nowej linii.&lt;br /&gt;
&lt;br /&gt;
Następnie dodaliśmy obiekt do listy metodą &amp;lt;tt&amp;gt;append&amp;lt;/tt&amp;gt;, po czym sprawdziliśmy, czy to podziałało, po prostu każąc wypisać nową zawartość listy na ekran.&lt;br /&gt;
&lt;br /&gt;
Po tym wszystkim posortowaliśmy listę za pomocą metody &amp;lt;tt&amp;gt;sort&amp;lt;/tt&amp;gt;. Ważne jest to, że &lt;br /&gt;
wynik powstaje przez przestawianie obiektów wewnątrz tej samej listy.&lt;br /&gt;
Innymi słowy, żaden nowy obiekt nie zostaje stworzony, zmienia się tylko kolejność elementów na liście, co nazywamy ''sortowaniem w miejscu''.&lt;br /&gt;
&lt;br /&gt;
Zamiast ''sortowania w miejscu'', można by stworzyć nową listę zawierającą te same elementy w innej kolejności. Do wykonania takiej operacji można wykorzystać funkcję &amp;lt;tt&amp;gt;sorted&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;source lang='py'&amp;gt;posortowana = sorted(lista)&amp;lt;/source&amp;gt; Istotna różnica jest taka, że &amp;lt;tt&amp;gt;posortowana&amp;lt;/tt&amp;gt; jest nowym obiektem, a stara &amp;lt;tt&amp;gt;lista&amp;lt;/tt&amp;gt; pozostaje nienaruszona.&lt;br /&gt;
&lt;br /&gt;
Z tego przykładu widać, że lista jest ''typem zmiennym'', czyli obiekty tej klasy można modyfikować. W przypadku innych typów, jak krotka (&amp;lt;tt&amp;gt;tuple&amp;lt;/tt&amp;gt;) czy napis (&amp;lt;tt&amp;gt;str&amp;lt;/tt&amp;gt;), dysponujemy tylko tym drugim sposobem sortowania. Mówimy, że są to ''typy niezmienne'', przez co rozumiemy, że obiekt tej klasy, raz stworzony, nie może być zmieniony.&lt;br /&gt;
&lt;br /&gt;
Gdy kupiliśmy już jakąś rzecz z listy, chcemy tę pozycję usunąć. Używamy do tego polecenia &amp;lt;tt&amp;gt;del&amp;lt;/tt&amp;gt; &amp;amp;mdash; tutaj chcemy wyrzucić pierwszy (czyli w Pythonie zerowy) element, więc piszemy &amp;lt;tt&amp;gt;del lista[0]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Przydatne metody klasy lista ===&lt;br /&gt;
&lt;br /&gt;
Poniżej prezentujemy metody dla obiektów klasy &amp;lt;tt&amp;gt;list&amp;lt;/tt&amp;gt;. Niech nasza przykładowa lista nazywa się &amp;lt;tt&amp;gt;L&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;L.append(x)&amp;lt;/tt&amp;gt;&lt;br /&gt;
Dodaje element &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt; na koniec listy &amp;lt;tt&amp;gt;L&amp;lt;/tt&amp;gt;. Taki sam efekt daje wyrażenie: &amp;lt;tt&amp;gt;L[len(L):] = [x]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;L.extend(L2)&amp;lt;/tt&amp;gt;&lt;br /&gt;
Wydłuża listę &amp;lt;tt&amp;gt;L&amp;lt;/tt&amp;gt; dodając na jej końcu wszystkie elementy listy &amp;lt;tt&amp;gt;L2&amp;lt;/tt&amp;gt;. Taki sam efekt daje wyrażenie: &amp;lt;tt&amp;gt;L[len(L):] = L2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;L.insert(i, x)&amp;lt;/tt&amp;gt;&lt;br /&gt;
Wstawia element &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt; do listy &amp;lt;tt&amp;gt;L&amp;lt;/tt&amp;gt; na pozycji &amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt;. Dotychczasowe elementy listy &amp;lt;tt&amp;gt;L&amp;lt;/tt&amp;gt; o indeksach od &amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt; do ostatniego mają teraz indeksy zwiększone o 1. Na przykład  &amp;lt;tt&amp;gt;L.insert(0, x)&amp;lt;/tt&amp;gt; wstawia element &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt; na początek listy &amp;lt;tt&amp;gt;L&amp;lt;/tt&amp;gt; natomiast &amp;lt;tt&amp;gt;L.insert(len(L), x)&amp;lt;/tt&amp;gt; dodaje element na koniec listy.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;L.remove(x)&amp;lt;/tt&amp;gt;&lt;br /&gt;
Usuwa z listy &amp;lt;tt&amp;gt;L&amp;lt;/tt&amp;gt; pierwszy napotkany element o wartości &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;. Uwaga: Jeśli takiego elementu nie ma funkcja generuje błąd! &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;L.pop(i)&amp;lt;/tt&amp;gt;&lt;br /&gt;
Usuwa z listy &amp;lt;tt&amp;gt;L&amp;lt;/tt&amp;gt; element o indeksie &amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt; i zwraca jego wartość. Jeśli nie podamy argumetu &amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt; to domyślnie funkcja zostanie zastosowana do ostatniego elementu listy.    &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;L.index(x)&amp;lt;/tt&amp;gt;&lt;br /&gt;
Zwraca pierwszy napotkany na liście &amp;lt;tt&amp;gt;L&amp;lt;/tt&amp;gt; element o wartości &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt;. Uwaga: Jeśli takiego elementu nie ma funkcja generuje błąd! &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;L.count(x)&amp;lt;/tt&amp;gt;&lt;br /&gt;
Zwraca liczbę wystąpień elementu o wartości &amp;lt;tt&amp;gt;x&amp;lt;/tt&amp;gt; na liście &amp;lt;tt&amp;gt;L&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;L.sort()&amp;lt;/tt&amp;gt;&lt;br /&gt;
Sortuje elementy listy &amp;lt;tt&amp;gt;L&amp;lt;/tt&amp;gt; '''w miejscu'''.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;L.reverse()&amp;lt;/tt&amp;gt;&lt;br /&gt;
Odwraca kolejność elementów na liście &amp;lt;tt&amp;gt;L&amp;lt;/tt&amp;gt; '''w miejscu'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; L = [66.25, 333, 333, 1, 1234.5]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print L.count(333), L.count(66.25), L.count('x')&lt;br /&gt;
2 1 0&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; L.insert(2, -1)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; L.append(333)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; L&lt;br /&gt;
[66.25, 333, -1, 333, 1, 1234.5, 333]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; L.index(333)&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; L.remove(333)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; L&lt;br /&gt;
[66.25, -1, 333, 1, 1234.5, 333]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; L.reverse()&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; L&lt;br /&gt;
[333, 1234.5, 1, 333, -1, 66.25]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; L.sort()&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; L&lt;br /&gt;
[-1, 1, 66.25, 333, 333, 1234.5]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zadanie: wariancja i odchylenie standardowe średniej ===&lt;br /&gt;
Napisz program, który wczytuje wyniki pomiaru pewnej wielkości, czyli po prostu listę liczb. &lt;br /&gt;
Niech użytkownik wpisuje liczby podając po jednej w każdej linijce &amp;amp;bdquo;standardowego wejścia&amp;amp;rdquo; &amp;amp;mdash; czyli na przykład wpisując je z klawiatury. Pusta linijka niech oznacza koniec danych.&lt;br /&gt;
&lt;br /&gt;
Po wczytaniu wszystkich liczb, wypisz je w kolejności rosnącej, wraz z odchyleniem każdej liczby od średniej. Następnie wypisz nieobciążoną estymatę wariancji i odchylenia standardowego średniej całej sekwencji.&lt;br /&gt;
&lt;br /&gt;
''Przykład:''&lt;br /&gt;
&amp;lt;source lang='shell_example'&amp;gt;&lt;br /&gt;
Wpisz liczby:&lt;br /&gt;
1&lt;br /&gt;
3&lt;br /&gt;
2.5&lt;br /&gt;
&lt;br /&gt;
Dzięki.&lt;br /&gt;
Posortowane:&lt;br /&gt;
1     -1.167&lt;br /&gt;
2.5    0.333&lt;br /&gt;
3      0.833&lt;br /&gt;
wariancja=1.083&lt;br /&gt;
odchylenie=0.601&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Wskazówka:''&lt;br /&gt;
:wariancja &amp;lt;math&amp;gt;\sigma^2 = \frac{1}{N -1} \sum_{i=1}^{N} (x_i - \mu)^2&amp;lt;/math&amp;gt;&lt;br /&gt;
oraz&lt;br /&gt;
:odchylenie standardowe &amp;lt;math&amp;gt;\sigma = \sqrt{\frac{1}{{N -1}}{\sum_{i=1}^{N} (x_i - \mu)^2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
oraz&lt;br /&gt;
:odchylenie standardowe średniej &amp;lt;math&amp;gt;\bar\sigma = \frac{1}{\sqrt{N}}\sqrt{\frac{1}{{N -1}}{\sum_{i=1}^{N} (x_i - \mu)^2}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Zadanie: outliers ===&lt;br /&gt;
Przez ''outliers'' rozumie się punkty odstające od reszty danych. W przypadku pomiarów takie punkty mogą na przykład pochodzić z błędnie przeprowadzonych pomiarów &amp;amp;mdash; jeśli mierzymy temperaturę termoparą i wszystkie pomiary temperatury dały ok.&amp;amp;nbsp;30&amp;amp;nbsp;mV, a&amp;amp;nbsp;tylko jeden 0&amp;amp;nbsp;mV, to może w tym jednym pomiarze termopara odłączyła się od woltomierza? Niemniej zwyczajny statystyczny rozrzut wyników też może skutkować pomiarami leżącymi daleko od średniej, tyle że z małym prawdopodobieństwem. &lt;br /&gt;
&lt;br /&gt;
W przypadku rozkładu Gaussa 99,7% wyników (średnio) pada w przedziale [&amp;amp;mu;&amp;amp;minus;3&amp;amp;sigma;, &amp;amp;mu;+3&amp;amp;sigma;], gdzie &amp;amp;mu; to średnia, a &amp;amp;sigma; to odchylenie standardowe. Napisz program, który tak jak w poprzednim przykładzie wczyta listę liczb, a następnie wypisze te z nich, które leżą poza przedziałem 3&amp;amp;sigma;. Dla każdej z wypisywanych liczb wypisz też jej kolejność na liście. Na końcu napisz jaki procent liczb znalazł się poza przedziałem 3&amp;amp;sigma;.&lt;br /&gt;
&lt;br /&gt;
=== Zadanie: outliers 2 ===&lt;br /&gt;
W poprzednim przykładzie liczby były wprowadzane przez użytkownika programu. &lt;br /&gt;
Wprowadzanie liczb szybko robi się męczące. Na szczęście można użyć generatora liczb losowych, żeby &amp;amp;bdquo;wprowadzić&amp;amp;rdquo;&lt;br /&gt;
liczby.&lt;br /&gt;
&lt;br /&gt;
Generator liczb pseudolosowych zazwyczaj zwraca po prostu liczby z pewnego przedziału &amp;amp;mdash; np. pomiędzy 0 a 1 &amp;amp;mdash; zgodnie z rozkładem płaskim. Innymi słowy, wylosowanie liczby z dowolnego miejsca w całym przedziale jest tak samo prawdopodobne. Takim generatorem jest funkcja &amp;lt;tt&amp;gt;random.random&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
W naszym przykładzie chcemy mieć liczby które przypominają wyniki pomiarów &amp;amp;mdash; czyli mają raczej rozkład normalny niż płaski. Jeśli dysponujemy generatorem liczb losowych płaskich, to bez problemu można &amp;amp;bdquo;przerobić&amp;amp;rdquo; go na generator liczb z dowolnego rozkładu jeśli tylko znamy dystrybuantę tego rozkładu. Na szczęście ten krok został już za nas wykonany i&amp;amp;nbsp;możemy po prostu skorzystać z funkcji &amp;lt;tt&amp;gt;random.normalvariate&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Funkcja &amp;lt;tt&amp;gt;normalvariate(mu, sigma)&amp;lt;/tt&amp;gt; z modułu &amp;lt;tt&amp;gt;random&amp;lt;/tt&amp;gt; ma dwa parametry &amp;amp;mdash; środek rozkładu i jego szerokość. Zwraca pojedynczą liczbę wylosowaną zgodnie z rozkładem normalnym.&lt;br /&gt;
&lt;br /&gt;
Zmodyfikuj program z poprzedniego przykładu tak, by zamiast wczytywać liczby, generował je automatycznie. Od użytkownika pobierz tylko liczbę liczb ''n'', i pożądane parametry &amp;amp;mu;, &amp;amp;sigma;, a następnie posłuż się funkcją &amp;lt;tt&amp;gt;random.normalvariate&amp;lt;/tt&amp;gt; by wygenerować ''n'' liczb z rozkładu normalnego.&lt;br /&gt;
&lt;br /&gt;
''Przykład:''&lt;br /&gt;
&amp;lt;source lang='shell_example'&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; python outliers2.py&lt;br /&gt;
N= 100                        # 100 wpisane przez użytkownika&lt;br /&gt;
μ= 3                          # 3 wpisane przez użytkownika&lt;br /&gt;
σ= 1                          # 1 wpisane przez użytkownika&lt;br /&gt;
liczby:&lt;br /&gt;
2.93313883,  4.27443167,  3.02747082,  3.74820712,  1.67385955,&lt;br /&gt;
3.91314826,  2.85697077,  3.72747457,  0.83560025,  2.60574017,&lt;br /&gt;
...&lt;br /&gt;
3.90344627,  2.07056563,  2.01952891,  2.81624163,  -0.469027334&lt;br /&gt;
outliers:&lt;br /&gt;
100: -0.469027334&lt;br /&gt;
poza 3σ: 1%&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!-- v = numpy.random.normal(3,1,100)&lt;br /&gt;
     for i in v[numpy.abs(v - v.mean()) &amp;gt; 3*v.var(ddof=1)**0.5]: print i&lt;br /&gt;
  --&amp;gt;&lt;br /&gt;
Pamiętaj, że oczekiwana częstość występowania liczb spoza przedziału &amp;lt;math&amp;gt;3\sigma&amp;lt;/math&amp;gt; to tylko 3‰.&lt;br /&gt;
&lt;br /&gt;
==Krotka==&lt;br /&gt;
'''Krotka to niemodyfikowalna lista.'''&lt;br /&gt;
&lt;br /&gt;
Podobnie jak listy, krotki można wygodnie tworzyć, wykorzystując specjalną notację:&lt;br /&gt;
krotkę definiuje się przez wypisanie jej elementów oddzielonych przecinkami. Często, dla czytelności, warto zamknąć definicję krotki w nawias.&lt;br /&gt;
&lt;br /&gt;
Krotki używa się w sytuacji, gdy chcemy przechowywać '''niezmienną sekwencję''' obiektów.&lt;br /&gt;
&lt;br /&gt;
;Przykład&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# Nazwa pliku: krotka.py&lt;br /&gt;
&lt;br /&gt;
zoo = ('pyton', 'słoń', 'pingwin') # Pamiętaj, że nawiasy są opcjonalne.&lt;br /&gt;
print 'Liczba zwierząt w zoo:', len(zoo)&lt;br /&gt;
&lt;br /&gt;
nowe_zoo = ('małpa', 'wielbłąd', zoo)&lt;br /&gt;
print 'Liczba klatek w nowym zoo:', len(nowe_zoo)&lt;br /&gt;
print 'Wszystkie zwierzęta w nowym zoo to:', nowe_zoo&lt;br /&gt;
print 'Zwierzęta sprowadzone ze starego zoo to:', nowe_zoo[2]&lt;br /&gt;
print 'Ostatnim zwierzęciem sprowadzonym ze starego zoo jest', nowe_zoo[2][2]&lt;br /&gt;
print 'Liczba zwierząt w nowym zoo:',len(nowe_zoo)-1+len(nowe_zoo[2])&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Rezultat&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='shell_example'&amp;gt;&lt;br /&gt;
Liczba zwierząt w zoo: 3&lt;br /&gt;
Liczba klatek w nowym zoo: 3&lt;br /&gt;
Wszystkie zwierzęta w nowym zoo to: ('małpa', 'wielbłąd', ('pyton', 'słoń', 'pingwin'))&lt;br /&gt;
Zwierzęta sprowadzone ze starego zoo to: ('pyton', 'słoń', 'pingwin')&lt;br /&gt;
Ostatnim zwierzęciem sprowadzonym ze starego zoo jest pingwin&lt;br /&gt;
Liczba zwierząt w nowym zoo: 5&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Jak to działa?&lt;br /&gt;
Zmienna &amp;lt;tt&amp;gt;zoo&amp;lt;/tt&amp;gt; odnosi się do krotki złożonej ze zwierząt. Jak widać, dzięki funkcji &amp;lt;tt&amp;gt;len&amp;lt;/tt&amp;gt; możemy sprawdzić długość krotki. To dodatkowo pokazuje, że krotka jest [[#Sekwencje|sekwencją]].&lt;br /&gt;
&lt;br /&gt;
Z powodu zamknięcia starego zoo, przenosimy zwierzęta do nowego. Dlatego też krotka &amp;lt;tt&amp;gt;nowe_zoo&amp;lt;/tt&amp;gt; zawiera kilka zwierząt, które były już tam wcześniej, a także zwierzęta przeniesione ze starego zoo. Wracając do rzeczywistości, zauważ, że krotka w krotce nie traci swojej tożsamości.&lt;br /&gt;
&lt;br /&gt;
Możemy odnieść się do pojedynczego elementu krotki poprzez podanie pozycji tego elementu w nawiasach kwadratowych, zupełnie jak przy listach. Nazywamy to operatorem ''indeksowania''. Uzyskujemy trzeci element w krotce &amp;lt;tt&amp;gt;nowe_zoo&amp;lt;/tt&amp;gt; przez wpisanie &amp;lt;tt&amp;gt;nowe_zoo[2]&amp;lt;/tt&amp;gt; oraz trzeci element w trzecim elemencie tej krotki dzięki &amp;lt;tt&amp;gt;nowe_zoo[2][2]&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== Notacja &amp;amp;bdquo;krotkowa&amp;amp;rdquo; ===&lt;br /&gt;
====Nawiasy====&lt;br /&gt;
Pomimo, że są opcjonalne, warto często użyć nawiasów, by podkreślić, że tworzy się krotkę. Np.&lt;br /&gt;
&amp;lt;source lang='py'&amp;gt;&lt;br /&gt;
a = (1, 2, 3)&lt;br /&gt;
# zamiast&lt;br /&gt;
a = 1, 2, 3&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Z tych dwóch równoważnych wersji, pierwsza wydaje się czytelniejsza.&lt;br /&gt;
&lt;br /&gt;
Odmienna sytuacja występuje w przypadku wypisywania zmiennych.&lt;br /&gt;
Wyrażenia &amp;lt;tt&amp;gt;print 1,2,3&amp;lt;/tt&amp;gt; oraz &amp;lt;tt&amp;gt;print (1,2,3)&amp;lt;/tt&amp;gt; mają różne znaczenia. Za pierwszym razem uzyskamy trzy cyfry oddzielone przecinkami, a za drugim krotkę (czyli te same trzy liczby oddzielone przecinkami, ale jeszcze dodatkowo otoczone nawiasami).&lt;br /&gt;
&lt;br /&gt;
====Krotka pusta lub z 1 elementem====&lt;br /&gt;
Krotkę pustą tworzy się za pomocą pustej pary nawiasów&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &amp;lt;source lang='py'&amp;gt;pusta = ()&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Krotka jednoelementowa to już większy problem. Jeśli napiszesz wyrażenie zawierające pojedynczą zmienną w nawiasach okrągłych, to (teoretycznie), można by to rozumieć jako&lt;br /&gt;
# krotkę jednoelementową&lt;br /&gt;
# jedno-elementowe wyrażenie wzięte w nawias&lt;br /&gt;
Z tych dwóch możliwości twórcy języka wybrali tą drugą.&lt;br /&gt;
Dlatego aby stworzyć krotkę, należy użyć przecinka po pierwszym (i jedynym) jej elemencie.&lt;br /&gt;
Na przykład: &amp;lt;source lang='py'&amp;gt;samotnik = (2, )&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Uwaga dla programujących w Perlu&lt;br /&gt;
Listy w listach nie tracą swojej tożsamości. Nie są one spłaszczane, jak w Perlu. To samo odnosi się do krotki w krotce, krotki w liście, listy w krotce itd. Dla Pythona to po prostu obiekty przechowywane w innym obiekcie, to wszystko.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sekwencje==&lt;br /&gt;
&lt;br /&gt;
Listy, krotki i napisy określamy mianem sekwencji. Kolejność elementów w sekwencji jest ustalona i elementy te są ponumerowane. Jest to cecha wspólna wszystkich sekwencji. Numer elementu w sekwencji jest nazywany ''indeksem''. Podstawową operacją dla sekwencji jest pobranie wartości elementu o zadanym indeksie. &lt;br /&gt;
Ponadto możemy sprawdzić czy dany obiekt jest elementem danej sekwencji (operatory &amp;lt;tt&amp;gt;in&amp;lt;/tt&amp;gt; i &amp;lt;tt&amp;gt;not in&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Wymienione wcześniej trzy typy sekwencji &amp;amp;mdash; lista, krotka i ciąg znaków, mogą być dodatkowo ''pocięte'', dzięki czemu uzyskujemy ''wycinek'', czyli pod-sekwencję zawierającą część obiektów z oryginalnej sekwencji.&lt;br /&gt;
&lt;br /&gt;
Wybieranie elementów przez indeksowanie lub wycinanie pokażemy dokładniej na przykładzie napisu. Napisy są również przykładem sekwencji elementów (liter).&lt;br /&gt;
&lt;br /&gt;
==== Indeksy ====&lt;br /&gt;
&lt;br /&gt;
Indeksując napis odwołujemy się do wybranego znaku. Znaki mogą być liczone od początku napisu (pierwszy ma numer 0) lub od jego końca (ostatni ma numer –1).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
{| style=&amp;quot;text-align:center&amp;quot; cellspacing=&amp;quot;0px&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:red&amp;quot; |0&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:red&amp;quot; |1&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:red&amp;quot; |2&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; | ...&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:blue&amp;quot; | –2&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width:2ex;color:blue&amp;quot; | –1&lt;br /&gt;
| style=&amp;quot;width:2ex&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;darr;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| tekst = &lt;br /&gt;
|&amp;quot;&lt;br /&gt;
! style=&amp;quot;background:#FFFF88&amp;quot; | S&lt;br /&gt;
! &lt;br /&gt;
! style=&amp;quot;background:#FFFF88&amp;quot; | T&lt;br /&gt;
!&lt;br /&gt;
! style=&amp;quot;background:#FFFF88&amp;quot; | R&lt;br /&gt;
!&lt;br /&gt;
! style=&amp;quot;background:#FFFF88&amp;quot; | I&lt;br /&gt;
!&lt;br /&gt;
! style=&amp;quot;background:#FFFF88&amp;quot; | N&lt;br /&gt;
!&lt;br /&gt;
! style=&amp;quot;background:#FFFF88&amp;quot; | G&lt;br /&gt;
|&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;uarr;&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
| style=&amp;quot;background:#FFFF88&amp;quot; |&amp;amp;uarr;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| ]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Na powyższym rysunku &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;czerwone&amp;lt;/span&amp;gt; indeksy są liczone od początku napisu, a &amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt;niebieskie&amp;lt;/span&amp;gt; od jego końca.&lt;br /&gt;
&lt;br /&gt;
Teraz przykłady&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|tekst[0] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;S&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekst[1] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;T&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekst[2] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;R&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekst[&amp;amp;minus;2] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;N&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekst[&amp;amp;minus;0] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || &amp;quot;S&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|tekst[20] || style=&amp;quot;width:3em;text-align:center&amp;quot; | &amp;amp;rarr; || {{color|red|IndexError}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nie ma indeksu &amp;amp;minus;0, bo w Pythonie &amp;lt;tt&amp;gt;&amp;amp;minus;0 == 0&amp;lt;/tt&amp;gt;, więc &amp;amp;minus;0 również wskazuje na początek napisu. &lt;br /&gt;
&lt;br /&gt;
Numery wskazujące na miejsca poza końcem napisu lub przed jego początkiem są błędne, Python zwróci informację o błędzie, tzw. &amp;lt;tt&amp;gt;IndexError&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Przykład drugi&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# Nazwa pliku: sekwencja.py&lt;br /&gt;
&lt;br /&gt;
lista = ['jabłko', 'mango', 'marchew', 'kiwi']&lt;br /&gt;
imie = 'Juliusz'&lt;br /&gt;
&lt;br /&gt;
# Indeksowanie&lt;br /&gt;
print 'Rzecz 0 to', lista[0]&lt;br /&gt;
print 'Rzecz 1 to', lista[1]&lt;br /&gt;
print 'Rzecz 2 to', lista[2]&lt;br /&gt;
print 'Rzecz 3 to', lista[3]&lt;br /&gt;
print 'Rzecz -1 to', lista[-1]&lt;br /&gt;
print 'Rzecz -2 to', lista[-2]&lt;br /&gt;
print 'Litera 0 to', imie[0]&lt;br /&gt;
&lt;br /&gt;
# Cięcie listy.&lt;br /&gt;
print 'Rzeczy od 1 do 3 to', lista[1:3]&lt;br /&gt;
print 'Rzeczy od 2 do końca to', lista[2:]&lt;br /&gt;
print 'Rzeczy od 1 do -1 to', lista[1:-1]&lt;br /&gt;
print 'Rzeczy od początku do końca to', lista[:]&lt;br /&gt;
&lt;br /&gt;
# Cięcie ciągu znaków.&lt;br /&gt;
print 'Litery od 1 do 3 to', imie[1:3]&lt;br /&gt;
print 'Litery od 2 do końca to', imie[2:]&lt;br /&gt;
print 'Litery od 1 do -1 to', imie[1:-1]&lt;br /&gt;
print 'Litery od początku do końca to', imie[:]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Rezultat&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='shell_example'&amp;gt;&lt;br /&gt;
Rzecz 0 to jabłko&lt;br /&gt;
Rzecz 1 to mango&lt;br /&gt;
Rzecz 2 to marchew&lt;br /&gt;
Rzecz 3 to kiwi&lt;br /&gt;
Rzecz -1 to kiwi&lt;br /&gt;
Rzecz -2 to marchew&lt;br /&gt;
Litera 0 to J&lt;br /&gt;
Rzeczy od 1 do 3 to ['mango', 'marchew']&lt;br /&gt;
Rzeczy od 2 do końca to ['marchew', 'kiwi']&lt;br /&gt;
Rzeczy od 1 do -1 to ['mango', 'marchew']&lt;br /&gt;
Rzeczy od początku do końca to ['jabłko', 'mango', 'marchew', 'kiwi']&lt;br /&gt;
Litery od 1 do 3 to ul&lt;br /&gt;
Litery od 2 do końca to liusz&lt;br /&gt;
Litery od 1 do -1 to ulius&lt;br /&gt;
Litery od początku do końca to Juliusz&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Jak to działa?===&lt;br /&gt;
Najpierw używamy indeksów do pobrania wartości poszczególnych elementów sekwencji. Nawiasy kwadratowe są operatorem indeksowania &amp;amp;mdash; gdy przy sekwencji podasz liczbę w nawiasach kwadratowych to uzyskasz element z danej pozycji. Pamiętaj, że w Pythonie, podobnie jak w C i wielu innych językach programowania, sekwencje czy tablice numeruje się od 0, dlatego &amp;lt;tt&amp;gt;lista[0]&amp;lt;/tt&amp;gt; to pierwszy element, a &amp;lt;tt&amp;gt;lista[3]&amp;lt;/tt&amp;gt; to czwarty.&lt;br /&gt;
&lt;br /&gt;
Indeks może też być ujemny, wtedy liczenie zaczyna się od końca sekwencji. Dlatego &amp;lt;tt&amp;gt;lista[-1]&amp;lt;/tt&amp;gt; to ostatni element, a &amp;lt;tt&amp;gt;lista[-2]&amp;lt;/tt&amp;gt; to przedostatni.&lt;br /&gt;
&lt;br /&gt;
Operacja pobierania wycinka jest wykonywana przez podanie obiektu do pocięcia, a następnie dwóch liczb w nawiasie kwadratowym, przedzielonych dwukropkiem. &lt;br /&gt;
&lt;br /&gt;
Pierwsza liczba (przed dwukropkiem) w operacji pobrania wycinka oznacza pozycję startową, zaś druga (za dwukropkiem) wyznacza dokąd cięcie ma zostać wykonane. Jeżeli nie ma pierwszej liczby, to Python zacznie wycinać od początku. Gdy nie ma drugiej, to wytnie aż do końca. Zauważ, że cięcie zaczyna się równo z pozycją startową, ale kończy się ''przed'' pozycją końcową. To znaczy, że pozycja startowa jest zawarta w wyciętym fragmencie, ale pozycja końcowa już nie jest.&lt;br /&gt;
&lt;br /&gt;
W związku z tym, &amp;lt;tt&amp;gt;lista[1:3]&amp;lt;/tt&amp;gt; zwraca elementy 1 i 2, ale nie zwraca już trzeciego, zaś &amp;lt;tt&amp;gt;lista[:]&amp;lt;/tt&amp;gt; (tzw. ''pełny wycinek'') zwraca kopię sekwencji.&lt;br /&gt;
&lt;br /&gt;
Możesz także podać trzeci argument, którym jest ''krok'' cięcia (domyślnie &amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; lista = ['jabłko', 'mango', 'marchew', 'kiwi']&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; lista[::1]&lt;br /&gt;
['jabłko', 'mango', 'marchew', 'kiwi']&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; lista[::2]&lt;br /&gt;
['jabłko', 'marchew']&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; lista[::3]&lt;br /&gt;
['jabłko', 'kiwi']&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; lista[::-1]&lt;br /&gt;
['kiwi', 'marchew', 'mango', 'jabłko']&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jak widzisz, gdy krok wynosi 2, uzyskujemy elementy numer 0, 2, ..., zaś gdy wynosi 3, uzyskujemy elementy numer 0, 3, ... itd.&lt;br /&gt;
&lt;br /&gt;
Wypróbuj różne kombinacje używając interpretera w trybie interaktywnym. Najlepsze jest to, że możesz dokładnie to samo robić na każdym typie sekwencji, czy to lista, czy krotka, czy ciąg znaków!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- {{Solution|title=Przykład na użyteczność wycinka|text=&lt;br /&gt;
{{TI:Indeksowanie napisu/obcięcie cudzysłowów}}}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Zadanie====&lt;br /&gt;
Wytwórz listę liczb naturalnych od 1 do 20. Następnie pobierz z tej sekwencji&lt;br /&gt;
wycinek zawierający wyłącznie liczby parzyste oraz wycinek zawierający liczby&lt;br /&gt;
nieparzyste od ostatniej do pierwszej.&lt;br /&gt;
&lt;br /&gt;
Wybierz co trzecią liczbę zaczynając od 10 i nie przekraczając 20.}}&lt;br /&gt;
&lt;br /&gt;
====Zadanie====&lt;br /&gt;
Masz pewien napis zawierający poszukiwane hasło w nawiasach klamrowych.&lt;br /&gt;
  napis = &amp;quot;dane_użytkownika =     {tajne hasło} login=użytkownik    &amp;quot;&lt;br /&gt;
Napisz funkcję która weźmie napis jako parametr i zwróci samo hasło&lt;br /&gt;
bez nawiasów klamrowych.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Odniesienia==&lt;br /&gt;
Gdy tworzysz obiekt i przypisujesz go do zmiennej, zmienna jedynie ''odnosi się'' do tego obiektu, a nie reprezentuje go. Nazywamy to związywaniem (ang. ''binding'') nazwy z obiektem. Tak więc, nazwa zmiennej jedynie wskazuje miejsce w pamięci komputera, w którym znajdują się określone dane. &lt;br /&gt;
Pociąga to za sobą pewne konsekwencje, które ilustruje poniższy przykład.&lt;br /&gt;
&lt;br /&gt;
;Przykład&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# Nazwa pliku: odniesienie.py&lt;br /&gt;
&lt;br /&gt;
print 'Proste Przypisywanie'&lt;br /&gt;
lista = ['jabłko', 'mango', 'marchew', 'kiwi']&lt;br /&gt;
mojalista = lista # mojalista to tylko inna nazwa dla tej samej zmiennej!&lt;br /&gt;
&lt;br /&gt;
del lista[0] # Kupiłem pierwszą rzecz, więc ją usuwam z listy.&lt;br /&gt;
&lt;br /&gt;
print 'Lista zakupów:', lista&lt;br /&gt;
print 'Moja lista:', mojalista&lt;br /&gt;
# Obydwie listy będą zawierać dokładnie to samo, czyli trzy pozycje.&lt;br /&gt;
# W żadnej z nich nie pojawi się &amp;quot;jabłko&amp;quot;, bo dotyczą tego samego obiektu.&lt;br /&gt;
&lt;br /&gt;
print 'Kopiowanie za pomocą pełnego wycinka'&lt;br /&gt;
mojalista = lista[:] # Stwórz kopię za pomocą pełnego wycinka...&lt;br /&gt;
del mojalista[0] # Usuń pierwszą rzecz...&lt;br /&gt;
&lt;br /&gt;
print 'Lista zakupów:', lista&lt;br /&gt;
print 'Moja lista:', mojalista&lt;br /&gt;
# Teraz te listy będą się różniły.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Rezultat&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='shell_example'&amp;gt;&lt;br /&gt;
Proste Przypisywanie&lt;br /&gt;
Lista zakupów: ['mango', 'marchew', 'kiwi']&lt;br /&gt;
Moja lista: ['mango', 'marchew', 'kiwi']&lt;br /&gt;
Kopiowanie za pomocą pełnego wycinka&lt;br /&gt;
Lista zakupów: ['mango', 'marchew', 'kiwi']&lt;br /&gt;
Moja lista: ['marchew', 'kiwi']&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pamiętaj, że jak chcesz zrobić kopię jakiejś złożonej zmiennej (nie prostej, jak ciąg znaków), to musisz przypisać mu pełny wycinek. Jeżeli zamiast tego po prostu przypiszesz zmiennej inną nazwę, obydwie nazwy będą się odnosić do tego samego obiektu.&lt;br /&gt;
&lt;br /&gt;
;Uwaga dla programujących w Perl&lt;br /&gt;
:Pamiętaj, że przypisanie listy do zmiennej '''nie''' tworzy kopii! Zawsze do skopiowania sekwencji potrzebne jest pobranie pełnego wycinka.&lt;br /&gt;
&lt;br /&gt;
==Więcej o ciągach znaków==&lt;br /&gt;
Już wcześniej omówiliśmy dogłębnie ciągi znaków, więc co jeszcze można dodać? Cóż... Czy wiedziałeś, że to też są obiekty i również mają swoje metody, jak na przykład sprawdzanie, czy w danym tekście jest określone słowo?&lt;br /&gt;
&lt;br /&gt;
Wszystkie ciągi znaków, jakie używasz, mają przypisaną klasę &amp;lt;tt&amp;gt;str&amp;lt;/tt&amp;gt;. Poniżej zaprezentowane jest użycie kilku ciekawych metod tej klasy. Więcej informacji znajdziesz wywołując &amp;lt;tt&amp;gt;help(str)&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
;Przykład&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# Nazwa pliku: str_metody.py&lt;br /&gt;
&lt;br /&gt;
imie = 'Aleksander' # To obiekt klasy str.&lt;br /&gt;
&lt;br /&gt;
if imie.startswith('Ale'):&lt;br /&gt;
    print 'Tak, to imię zaczyna się od &amp;quot;Ale&amp;quot;'&lt;br /&gt;
&lt;br /&gt;
if 'a' in imie:&lt;br /&gt;
    print 'Tak, to imię zawiera literę &amp;quot;a&amp;quot;'&lt;br /&gt;
&lt;br /&gt;
if imie.find('san') != -1:&lt;br /&gt;
    print 'Tak, w tym imieniu jest ciąg &amp;quot;san&amp;quot;'&lt;br /&gt;
&lt;br /&gt;
separator = ' do '&lt;br /&gt;
mojalista = ['Brazylii', 'Rosji', 'Indii', 'Chin']&lt;br /&gt;
print 'Wielka podróż z', separator.join(mojalista)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Rezultat&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang='shell_example'&amp;gt;&lt;br /&gt;
$ python str_metody.py&lt;br /&gt;
Tak, to imię zaczyna się od &amp;quot;Ale&amp;quot;&lt;br /&gt;
Tak, to imię zawiera literę &amp;quot;a&amp;quot;&lt;br /&gt;
Tak, w tym imieniu jest ciąg &amp;quot;san&amp;quot;&lt;br /&gt;
Wielka podróż z Brazylii do Rosji do Indii do Chin&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Jak to działa?===&lt;br /&gt;
Tu widzimy wiele metod w akcji. Metoda &amp;lt;tt&amp;gt;startswith&amp;lt;/tt&amp;gt; sprawdza, czy tekst się zaczyna od podanego ciągu znaków. Operator &amp;lt;tt&amp;gt;in&amp;lt;/tt&amp;gt; sprawdza, czy dany ciąg znaków znajduje się w tym tekście.&lt;br /&gt;
&lt;br /&gt;
Metoda &amp;lt;tt&amp;gt;find&amp;lt;/tt&amp;gt; sprawdza pozycję podanego ciągu znaków w tekście. Zwraca ona &amp;lt;tt&amp;gt;-1&amp;lt;/tt&amp;gt;, gdy nic nie znajdzie. Klasa &amp;lt;tt&amp;gt;str&amp;lt;/tt&amp;gt; ma też ciekawą metodę &amp;lt;tt&amp;gt;join&amp;lt;/tt&amp;gt;, która łączy elementy sekwencji w jeden długi ciąg znaków, używając podanego ciągu jako separatora.&lt;/div&gt;</summary>
		<author><name>Jarekz</name></author>
		
	</entry>
</feed>