Closed zopletalova closed 3 years ago
baliky
jsou všechny hodnoty datového typu bool, běžně se tedy nedělá, že by si porovnávala True == True
nebo False == True
, protože samotná podmínka pracuje přímo s bool hodnotou. V příkladu níže tedy můžeš za True
vložit jakoukoli proměnnou datového typu bool. [1]pravda =True
if pravda:
print('Je to pravda')
else:
print('Neni to pravda')
A ano v Pythone existuje konstrukce else if, zkracene elif
:
num = 4
if num > 0 :
print('kladne')
elif num < 0:
print('zaporne')
else:
print('nula')
Jinak vnořené podmínku nejsou vždy na škodu, tady v tomto příklady by si například mohla jen jednou kontrolovat zda je cislo ve slovníku a pak vnorit podminku zda je nebo není doručen.
sklad[soucastka] - sklad[soucastka]
, neznamená to prostě, že je na skladě nula kusů ? :) sklad[soucastka] = sklad[soucastka] - mnozstvi
za zkrácený zápis sklad[soucastka] -= mnozstvi
:) ale to je jen doporučenífor i in range()
v cyklu zkrátka procházela string po znacích, nepotřebovala by jsi potom proměnnou morse
.for znak in 'hello':
print(znak, end='')
[1] Dokonce můžeš takto porovnávat i jiné datový typy, můžeš například zkusit zjistit jak vypadabool(1)
,bool(0)
,bool(-1)
, nebo bool('')
a bool('hello')
.
Vesměs všechny poznámky jsou spíše k zamyšlení a vyšperkování již tak pěkného kódu, proto tě prosím pouze o opravu prvního úkolu:
Skvělá práce, jen tak dál 👍
Ahoj Andy, děkuji za připomínky! 👍
Ahoj,
super, takže máš vše splněno ! :-)
Jinak Python si stěžovat nebude, protože jsi neudělala nic špatného, je to zkrátka jen řádek navíc, který je v kontextu programu zbytečný, protože k ničemu neslouží, ale jeho zápis je syntakticky správně :-)
Kromě stringu takto jde procházet i seznamy, respektive jde to oběma způsoby protože seznamy i stringy se dají indexovat stejně.
Užij si víkend!
Andy
@zopletalova Ještě mě napadlo, pokud by tě zajímalo alternativní řešení třeba příkladu 5. ale dá se to použít na více místech. Tak existuje na slovniku metoda get, ktera je hodně podobná zápisu slovnik[klic]
, ale má jednu výhodu, a to že jí můžeš definovat hodnotu kterou vrátí, pokud klíč ve slovníku nenajde :) Konkretne v prikladu 5, by mohla vracet 0 pokud klic ve slovniku neni :)
Ale zminuji to spise doplnkove, protoze na uvodních kurzech se nepouziva, ale mohlo by se stat ze by si ji videla, kdyby si neco o slovnikach hledala na internetu :)
Ahoj Andy @andywaltlova Děkuji moc - zkusila jsem, funguje :-) Už dřív mě ještě napadla otázka - dá se ze slovníku nějak vypsat klíč? Nebo rovnou třeba seznam klíčů?
dictionary = {"Name": "Harry", "Age": 17} key = input("Zadejte klíč: ")
print(dictionary) """Vypíše celý slovník: {'Name': 'Harry', 'Age': 17}"""
print(dictionary.get(key)) """vrátí None, když klíč neexistuje; když existuje, vypíše hodnotu"""
print(dictionary[key]) """vyhodí chybu, když klíč neexistuje; když existuje, vypíše hodnotu"""
Děkuji :-) Z
Ahoj,
ano určitě se dá :)
V dokumentaci je obecně popsano jak slovnik funguje a co se s nim dá vše dělat.
Nejpoužívanější jsou asi tyto tři metody:
dictionary = {"Name": "Harry", "Age": 17}
hodnoty = dictionary.values()
klice = dictionary.keys()
dvojice = dictionary.items()
Vsechny tyto metody nevraci primo listy, ale vraci takzvane view objects, coz te moc nemusi zajimat, protoze jsou to iterovatelne hodnoty stejne jako jsou listy, takze muzes normalne pouzivat operator in
a stejne tak je for cyklem prochazet. Na vsechny promenne klidne muzes zavolat funkci list() a tim se ty view objekty prevedou na obycejne listy :)
V pristi lekci si v souvislosti s for cykly budeme ukazovat, ze se prave daji prochazet klice a hodnot slovniku najednou.
for k,v in dictionary.items():
print(k,v)
Ahoj Andy @andywaltlova moc díky, hodila jsem to "do stroje" a to poslední procházení pomocí cyklu for je přesně to, co jsem hledala 👍 Ještě jednou děkuji moc a už ti dám pokoj, ať se můžeš věnovat taky ostatním 😎 Hezký víkend! Zuzka
Ahoj,
vůbec není zač, zatím jsi první kdo odevzdal :)
Taky přeju krásný víkend! Andy
Zavírám issue, protože je vše splněno, komentovat jde i pod zavřením :)
Ahoj Andy, @andywaltlova odevzdávám úkoly z úterní lekce - aspoň si to myslím :-) Návod jsem nějak jen rychle prolétla, tak snad je vidíš všechny :-) Děkuji předem za zpětnou vazbu Zuzka