Stránka 1 z 1

Nevytiskne se cely slovnik,python

Napsal: 18 kvě 2020 20:21
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)

Re: Nevytiskne se cely slovnik,python

Napsal: 18 kvě 2020 21:06
od Zakk
výstup:

Kód: Vybrat vše

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

Re: Nevytiskne se cely slovnik,python

Napsal: 18 kvě 2020 21:30
od shockwave
{'first_name': 'albert', 'last_name': 'einstein', 'location': 'prince'}

me jen tohle, nechapu

Re: Nevytiskne se cely slovnik,python

Napsal: 18 kvě 2020 21:39
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)


Re: Nevytiskne se cely slovnik,python

Napsal: 18 kvě 2020 23:33
od shockwave
sem slepej uplne, diky

Re: Nevytiskne se cely slovnik,python

Napsal: 19 kvě 2020 00:34
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..)

Re: Nevytiskne se cely slovnik,python

Napsal: 19 kvě 2020 01:44
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

Re: Nevytiskne se cely slovnik,python

Napsal: 19 kvě 2020 20:07
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))

Re: Nevytiskne se cely slovnik,python

Napsal: 19 kvě 2020 20:53
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: