Cyklus for v pythone. 1. časť

Dnes sa pozrieme na cyklus For a jeho využitie v pythone.

Cyklus For je veľmi silný nástroj. V tomto videu si ukážeme len úvod do možností cyklu.

Publikované Kategórie Python

Python – reťazce – str

ZDROJ: http://python.input.sk/

Zopár funkcií a metód pre prácu s reťazcami.

Reťazec je zoznam (pole) zložený zo znakov, to znamená je indexovaný od 0.

STRING

Už poznáme tieto štandardné funkcie:

  • len() – dĺžka reťazca
  • int(), float() – prevod reťazca na celé alebo desatinné číslo
  • bool() – prevod reťazca na True alebo False (ak je prázdny, výsledok bude False)
  • str() – prevod čísla (aj ľubovoľnej inej hodnoty) na reťazec
  • ord(), chr() – prevod do a z Unicode

Okrem nich existujú ešte aj tieto tri užitočné štandardné funkcie:

  • bin() – prevod celého čísla do reťazca, ktorý reprezentuje toto číslo v dvojkovej sústave
  • hex() prevod celého čísla do reťazca, ktorý reprezentuje toto číslo v šestnástkovej sústave
  • oct() – prevod celého čísla do reťazca, ktorý reprezentuje toto číslo v osmičkovej sústave

 

Metódy

  • reťazec.count(podreťazec) – zistí počet výskytov podreťazca v reťazci
  • reťazec.find(podreťazec) – zistí index prvého výskytu podreťazca v reťazci
  • reťazec.lower() – vráti reťazec, v ktorom prevedie všetky písmená na malé
  • retazec.upper() – vráti reťazec, v ktorom prevedie všetky písmená na veľké
  • reťazec.replace(podreťazec1, podreťazec2) – vráti reťazec, v ktorom nahradí všetky výskyty podreťazec1 iným reťazcom podreťazec2
  • reťazec.strip() – vráti reťazec, v ktorom odstráni medzery na začiatku a na konci reťazca (odfiltruje pritom aj iné oddeľovacie znaky ako ‚\n‘ a ‚\t‘)

s=’ahoj drahusik ako sa mas?‘

  • s.capitalize() – dá prvé písmeno v str. na veľké

‚Ahoj drahusik ako sa mas?‘

  • s.swapcase() – otočí malé na veľké a veľké na malé

‚AHOJ DRAHUSIK AKO SA MAS?

  • s.title() – každé písmeno na začiatku slova da veľké

‚Ahoj Drahusik Ako Sa Mas?‘

  •  m.replace(‚ ‚,“)-nahradí reťazec reťazcom

‚AhojDrahusikAkoSaMas?‘

Ukážky:

>>> s=’ahoj drahusik ako sa mas?‘

>>> s

‚ahoj drahusik ako sa mas?‘

>>> s.capitalize

<built-in method capitalize of str object at 0x031868A8> – bez ()

>>> s.capitalize()

‚Ahoj drahusik ako sa mas?‘

>>> s.swapcase()

‚AHOJ DRAHUSIK AKO SA MAS?‘

>>> s.title()

‚Ahoj Drahusik Ako Sa Mas?‘

>>> m=s.title()

>>> m

‚Ahoj Drahusik Ako Sa Mas?‘

>>> m.replace(‚ ‚,“)

‚AhojDrahusikAkoSaMas?‘

Článok pre stiahnutie / tlač. – STR_Retazce

Python: zoznam – hľadanie maxima, hľadanie prvku.

zoznam je indexovaná štruktúra, to znamená každý prvok má svoju pozíciu (adresu) kde sa nachádza, je to ako poradové číslo. Index začína na hodnote 0 tz. nie 1 ako by sa nám možno zdalo logickejšie

p=[9,5,7,8,6,14,78,2,98] – vytvorenie 9 členného zoznamu s názvom p
p[0] na nultej pozícii je číslo 9
p[5] na piatej pozícii je 14

Existuje funkcia max(), ktorá vráti najväčší prvok zoznamu, ale v algoritme si ukážeme ako nájsť maximum bez tejto funkcie.

Zistenie najväčšej hodnoty v zozname

Do pomocnej premennej najvac si dáme prvý člen zoznamu –p. Danú premennú najvac porovnávame s ďalšími členmi zoznamu p, ak nájdeme člena v zozname p väčšieho ako je najvac, tak do najvac vložíme nájdenú väčšiu hodnotu. Takto pokračujeme až do konca zoznamu.

import random #importujeme náhodné čísla
p=[] # vytvoríme prázdny zoznam prvkov s názvom p
n=int(input(‚zadaj pocet prvkov‘))
for i in range(n): # koľko sme si zvolili prvkov n , toľko krát budeme pridávať

p.append(random.randrange(100)) #do zoznamu náhodné číslo do veľkosti 100

print(p) # vypíšeme zoznam p
najvac=p[0] # vytvoríme si premennú do ktorej dáme prvý člen zoznamu
pn=0 #pozícia najväčšieho čísla

for i in range(1, len(p)): #prejdeme všetkými prvkami zoznamu

if najvac < p[i]: #každý prvok pola porovnáme s najvac a ak je väčší ako najvac

najvac=p[i] # do najvac dáme prvok zoznamu, ktorý je väčší ako najvac
pn=i # do pn dáme pozíciu, kde sme väčšie číslo ako najvac našli

print(‚najvacsia hodnota je {} na pozicii {}‘.format(najvac,pn))

 

Hľadanie prvku v zozname

Zadáme si kritérium hľadania, vytvoríme pomocnú premennú ktorú nastavíme mimo rozsah indexov zoznamu aktuálne na zápornú hodnotu.

Zadané kritérium budeme porovnávať so všetkými prvkami zoznamu, ak nájdeme zhodu s niektorým prvkom, odložíme si index pozície kde prišlo k zhode.

Daný algoritmus pokračuje ďalej a tak nájde vlastne výskyt poslednej zhody, nie prvej.

Ak nám stačí prvej zhody, cyklus prehľadávania ukončíme v mieste zhody.

Existuje metóda zoznamu – index() táto vráti hodnotu indexu prvého výskytu.

import random #importujeme náhodne čísla
p=[]# vytvoríme prázdny zoznam prvkov s názvom p
n=int(input(‚zadaj pocet prvkov‘))

for i in range(n): # koľko sme si zvolili prvkov n , toľko krát budeme pridávať

p.append(random.randrange(100)) #do zoznamu náhodné číslo do veľkosti 100

print(p)
hl=int(input(‚zadaj kriterium na hladanie – cislo‘))
phl=-1 #pozícia hľadaného na začiatok mimo rozsah

for i in range(len(p)):#prejdeme všetkými prvkami zoznamu

if hl == p[i]:# ak sa niektorý prvok v zozname p rovná hľadanému prvku hl- kritérium

phl=i # do phl odložím pozíciu kde sa našla zhoda s hľadaným prvkom

if phl >= 0: # ak je pozícia hľadaného väčšia alebo rovná 0, tak sa prvok našiel a v phl máme pozíciu kde sa nachádza hľadaný prvok

print(‚nachadza sa na pozicii {}‘.format(phl))

else:

print(‚nenachadza sa ‚)

 

Python: Cyklus While – NSD, Palindrom

Palindrom

Palindrom je reťazec, alebo číslo, ktoré je pri čítaní od začiatku aj od konca rovnaké.

Daný algoritmus otočí číslo a zistí, či sa aj po otočení rovná pôvodnému.

a=int(input(‚zadaj cislo‘))
pred=a # odložíme si pôvodné číslo
po=0 # počiatočná hodnota pre otočené číslo

while a != 0: # pokiaľ je číslo a iné ako 0

po=po*10+(a % 10) #otočené – po, násobíme 10 a pripočítame k nemu poslednú cifru čísla a
a=a//10 # poslednú cifru čísla odstránime z a

if pred == po : # ak sa číslo a rovná číslu po tak je to palindrom

print(‚cislo je palindrom‘)

else:

print(‚cislo nieje palindrom‘)

 

NSD – najväčší spoločný deliteľ dvoch čísel

Ak sa čísla nerovnajú, zistíme ktoré z nich je väčšie a od toho väčšieho odpočítame menšie. Opakujeme pokiaľ sa čísla nebudú rovnať

a=int(input(‚zadaj cislo 1‘))
b=int(input(‚zadaj cislo 2‘))

while a != b: #pokiaľ sa čísla a,b nerovnajú opakujeme

if a > b : # zisťujeme, ktoré z čísel je väčšie a od väčšieho odpočítame menšie

a = a – b

else:

b = b – a

print(‚najvacsi spolocny delitel je ‚,a)