Nevytiskne se cely slovnik,python

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Odpovědět
shockwave
Level 3
Level 3
Příspěvky: 464
Registrován: 10 úno 2011 16:36

Nevytiskne se cely slovnik,python

Příspěvek od shockwave »

Ahoj, podle ucebnice by se mel vytisknout cely slovnik, jde vam tohle prosim:

def build_profile(first, last, **user_info):
"""Build a dictionary containing everything we know about a user."""
profile = {}
profile['first_name'] = first
profile['last_name'] = last
for key, value in user_info.items():
profile[key] = value
return profile

user_profile = build_profile('albert', 'einstein', location='prince', field='math') # oznacene se nevytiskne


print(user_profile)
Uživatelský avatar
Zakk
Level 3.5
Level 3.5
Příspěvky: 728
Registrován: 04 úno 2013 11:06

Re: Nevytiskne se cely slovnik,python

Příspěvek od Zakk »

výstup:

Kód: Vybrat vše

{'first_name': 'albert', 'last_name': 'einstein', 'location': 'prince', 'field': 'math'}
shockwave
Level 3
Level 3
Příspěvky: 464
Registrován: 10 úno 2011 16:36

Re: Nevytiskne se cely slovnik,python

Příspěvek od shockwave »

{'first_name': 'albert', 'last_name': 'einstein', 'location': 'prince'}

me jen tohle, nechapu
Uživatelský avatar
Zakk
Level 3.5
Level 3.5
Příspěvky: 728
Registrován: 04 úno 2013 11:06

Re: Nevytiskne se cely slovnik,python

Příspěvek od Zakk »

jen jsem to zkopíroval :D
a dodělal odsazení
.. nemáš chybu v odsazení ?

Kód: Vybrat vše


def build_profile(first, last, **user_info):
"""Build a dictionary containing everything we know about a user."""
    profile = {}
    profile['first_name'] = first
    profile['last_name'] = last
    for key, value in user_info.items():
    	profile[key] = value
    return profile

user_profile = build_profile('albert', 'einstein', location='prince', field='math') # oznacene se nevytiskne


print(user_profile)

shockwave
Level 3
Level 3
Příspěvky: 464
Registrován: 10 úno 2011 16:36

Re: Nevytiskne se cely slovnik,python

Příspěvek od shockwave »

sem slepej uplne, diky
Uživatelský avatar
Zakk
Level 3.5
Level 3.5
Příspěvky: 728
Registrován: 04 úno 2013 11:06

Re: Nevytiskne se cely slovnik,python

Příspěvek od Zakk »

z mojich ( ne, moc velkých) zkušeností v 90% případů, když je nějakej "podivnej" problém v Pythonovým kódu, tak je někde chyba v odsazení..

upřímně osobně nechápu proč se nemůžou používat "kudrnatý závorky" jako u všech normálních programovacích jazyků.. :D (ale možná dost zastánců Pythonu by se se mnou hádalo..)
shockwave
Level 3
Level 3
Příspěvky: 464
Registrován: 10 úno 2011 16:36

Re: Nevytiskne se cely slovnik,python

Příspěvek od shockwave »

Zakk píše:z mojich ( ne, moc velkých) zkušeností v 90% případů, když je nějakej "podivnej" problém v Pythonovým kódu, tak je někde chyba v odsazení..

upřímně osobně nechápu proč se nemůžou používat "kudrnatý závorky" jako u všech normálních programovacích jazyků.. :D (ale možná dost zastánců Pythonu by se se mnou hádalo..)
je to tak, nezbývá než souhlasit
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7407
Registrován: 23 pro 2010 09:23

Re: Nevytiskne se cely slovnik,python

Příspěvek od faraon »

Vyzkoušel jsem za několik desetiletí celou řadu jazyků, některé používaly {...}, některé begin...end, další zase jiné způsoby, například speciální příkazy různé pro každý příkaz který ukončovaly. A některé z nich nebyly strukturované vůbec! Ale postupem času jsem přišel na to, že odsazování je jeden z nejdůležitějších vynálezů v umění programování.

Zahraj si s tímhle: https://blockly.games/maze?lang=cs Přitom dobře pozoruj odsazení jednotlivých struktur ve složeném programu.

K něčemu podobnému zřejmě dospěl Guido van Rossum, a tak ze svého jazyka ty nepotřebné závorky vyhodil úplně a nahradil je pouhým odsazením. Takže zatímco v jiných jazycích se dají řádky rozházet libovolně, a v programu tím udělat naprostý vizuální bordel, tak v Pythonu se to odsazování prostě dodržovat musí, jinak program nefunguje. Když funguje, je přehlednější. Začátečníkům to sice dělá potíže, ale aspoň se naučí sebedisciplinovanosti. Pokud se to nenaučí, utopí se v digitálním hnoji.

A mimochodem, dalo by se velmi dlouho hádat co je to "normální programovací jazyk". Zdaleka ne všechny dnes běžně používané mají složené závorky, a program může vypadat třeba takhle ;-)

Kód: Vybrat vše

(defun foo (a b c d) (+ a b c d))
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
Uživatelský avatar
Zakk
Level 3.5
Level 3.5
Příspěvky: 728
Registrován: 04 úno 2013 11:06

Re: Nevytiskne se cely slovnik,python

Příspěvek od Zakk »

přesně jsem čekal, že "píchám do vosího hnízda", ale nemohl jsem si to odpustit :D a to "normální" jsem zapomněl dát do uvozovek.. :D .. jinak "normální" pro mě = "c-like".. (nejvíc znám Javu..)

tak se taky trochu rozepíšu.. :D

k Pythonu jsem se dostal až nedavno kvůli Raspberry Pi.. a jako celkově se mi ten jazyk dost líbí,všechno se zapíše krátce a jednoduše a hlavně na všechno je spoustu hotových knihoven (a člověk nemusí nic moc řešit sám od základu..) , ale tohle mě celkem iritovalo..

ono, když jen člověk něco zapomene odsadit a vyskočí hned "indentation error.." tak se nic neděje, horší je když to není syntakticky špatně, ale vytvoří to někde nějakou "záludnost" a člověk pak půl hodiny hledá chybu někde jinde.. :D

samozřejmě, že i se závorkama je pro přehlednost nutnost to správné odsazení dodržovat, ale i tak mi přijdou ty závorky přehlednější ( třeba u rozsáhlejšího kódu, kliknu na tu první závorku a IDE tu druhou zbarví atd..)

je to ale hlavně asi o tom na co si člověk zvykne..

a begin end; taky pamatuju, první jazyk se kterým jsem se ve škole setkal byl Pascal :D ( ale to je jen taková zdlouhavější méně praktická obdoba závorek..)

PS: tak jsem zkusil toho panáčka a ten poslední level mi dal teda docela zabrat :lol:
Odpovědět

Zpět na „Programování a tvorba webu“