Názory ke článku Python - 3. lekce – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Názory ke článku Python - 3. lekce – Programujte.comNázory ke článku Python - 3. lekce – Programujte.com

 

Názory ke článku Python - 3. lekce

Tomix   NOVÝ
10. 6. 2005

Díky, pěkný.
Možná by to chtělo víc probrat fci split() a zřejmě protikus join().
V manuálu je jich několik druhů, ale nestíhám to angličtinou.

geon   NOVÝ
10. 6. 2005

Uvidím, zkusím, i když bych radši, abyste podobné věci zatím programovali sami, protože to není složité. Abyste se naučili tak důležitou algoritmizaci, základní programovací postupy, a ty se právě cvičí na těchto věcech. Zkus to: pomocí for, if , while... udělat split i join v těch nejzákladnějších podobách. Apropo bez angličtiny to stejně dál nepůjde ;-)

Tomix   NOVÝ
10. 6. 2005

Poradil jsem si bez joinu, ale asi by to snim bylo hezčí.
Pokud se tedy používá ke slučování řetězců.
viz. úkol

geon   NOVÝ
10. 6. 2005

FOR ALL:
Úkoly please bez češtiny v řetězcích, nebo to udělejte správně, jak je psáno v článku - všechny 3 kroky, jinak mi to píše paznaky.... Zkuste si to sami spustit alespoň ve dvou prostředích (DOS (pod windows) + Windows) a uvidíte. Nechme si češtinu na okenní aplikace, tam je to již bez problémů....

geon   NOVÝ
11. 6. 2005

dotaz: "Kolik obsahuje znaků a slov?" - Počet znaků = délka řetězce nebo délka řetězce bez mezer ? (Hnidopich :-) )

odpoved: mezera je taky znak, casto neviditelny, ale presto zabira misto

geon   NOVÝ
11. 6. 2005

Bylo by to jistě kratší,ale pokud mohu soudit, pro začátečníka je lepší, když to udělá pěkně "pěšky" - jako ty. A tak ztrácíš závislost na všelijakých funkcích, a nevzdáváš problém, pokud funkci nebo modul nedokážeš sehnat - prostě si to napíšeš sám. ;-)

Tomix   NOVÝ
12. 6. 2005

V poradně najdou zájemci doplňkový úkol k této kapitole.
http://poradna.programujte.com/viewtopic.php?t=204

geon   NOVÝ
12. 6. 2005

Řešení zasílejte na geon@programujte.com s předmětem "zašifrovaný text - Python 3. lekce". Tak cca za 1 měsíc zveřejníme v Poradně výsledky. Případné dotazy a nápověda v Poradně.

Tomix   NOVÝ
23. 6. 2005

Zdravim,
zkusil jsem to správné použití češtiny,
ale nefunguje mi to u Inputu.
dotaz = u"Kolik kusů ?:"
x = input (dotaz)

vrací v Dosu pod Win chybu - znak na pozici 9 ordinal not in range (128) ......

2. jde to v příkazu print použít nějak přímo? (ne přes string)

geon   NOVÝ
23. 6. 2005

Je to již vedeno jako bug...
Řešení je následující:

dotaz = u"Kolik kusů ?:"
print dotaz,
x = input ()

Doufam že zbylé dvě zásady máš OK. Funguje?

geon   NOVÝ
23. 6. 2005

Přehlídl jsem 2.:
myslíš toto?:
print u"Máme rádi programování"

Tomix   NOVÝ
23. 6. 2005

Ano tou obklikou print >input to funguje.

Ten bod 2 vlastně funguje OK, ale tim, že jsem to zkoušel v jednom příkladu i s tim inputem tak na print u"áéíóů" ani nedošlo.


Tomix   NOVÝ
25. 6. 2005

Mám potíž s tabulátorem.
Vypisuji 10 výsledků na řádek pomocí "\t", ale poslední
už mi skočí na další řádek.
Dá se programově nastavit krok tabulátoru?

geon   NOVÝ
25. 6. 2005

Pokud vím, tak ne.

Snad by se to dalo, pokud používáš více tab za sebou, např. '\t'*pocet, tak programově ošetřit proměnnou počet.

Anebo to programově ošetřit celé, tedy si vytvořit svůj tab, nelépe jako funkci. Pamatovat si na jakých pozicích mají taby být, počítat na jaké jsi aktuální pozici, a vkládat příslušný počet mezer. Mnoho štěstí. :-)

geon   NOVÝ
25. 6. 2005

A ještě existuje metoda řetězců expandtabs(): viz help

příklad: "toto\tje\tale\tspousty\ttabu".expandtabs(4)
Aby to řádně fungovalo, mělo by být číslo v závorce větší než délka nejdelšího řetězce.

Takže netiskout rovnou, ale vytvořit takový řetězec, a pak ho takto vytisknout.

Tomix   NOVÝ
26. 6. 2005

Vyzkoušel jsem, expandtabs(x) funguje, když chci vytisknout naráz předpřipravený řádek.
Nefunguje, ale v tomhle případě:
<pre>
for i in range(1, 11):
for j in range(1, 11):
c=i*j
print "%d\t"%(c),
print "\n"
</pre>

geon   NOVÝ
26. 6. 2005

musíš si ho předpřipravit a ne rovnou tisknout

radek=''
radek=radek+"%d\t"%(c)
radek= radek+"\n"
print radek.expandtabs(4)

radky vložit na správná místa se správným odsazením:-)

zaachi   NOVÝ
28. 2. 2006

cauec. jsem zacatecnik, a zajimalo by mne, jak mam vypsat treba nasledujici:

<pre>for znak in veta:
print znak</pre>

tak, aby se to nevypisovalo po radcich.
diky moc

geon   NOVÝ
2. 3. 2006

<pre>for znak in veta:
print znak,</pre>

ta čárka na konci způsobí, že seto bude tisknout za sebou. Také ale způsobí, že dělá mezeru - znaky budou od sebe odděleny mezerou. I to se pak dá ale řešit ;-)

JumBo_1   NOVÝ
26. 8. 2006

Jaká je syntaxe psaní znaků pomocí jejich decimálních kódů?
Znám to z pascalu: write(#65) mi vypíše "A"
Nevím jestli to napsal dost srozumitelně, moc se v tom nevyznám.

myky   NOVÝ
19. 11. 2006

mam malicky problem v tej ulohe neviem ako mam spravit abymi vypisalo opacny text...a este neviem ako spravit zeby a=A mal som prikaz
for znak in veta:
if znak=="a":
"a"="A"
ale hlasi mi chybu prosim poradte

LuGr   NOVÝ
27. 3. 2007

Pro zkušenější programátory jistě neznamená problém . Já jsem začátečník a u příkladu na split . Pod nadpisem pokročilejší funkce chybí : print veta2 , aby začátečník věřil komentáři o vypsání seznamu slov .)

geon   NOVÝ
27. 3. 2007

fixed

mr.Crow   NOVÝ
26. 4. 2007

ty do "a" přiřazuješ "A" :-) a to přece nejde. To je jako kdybys chtěl do jedničky dát dvojku (1=2) a to je nesmysl. Správně by to mělo být:

for znak in veta:
if znak=="a":
znak="A"

...doufám, v Pythonu neprogramuju, ale takhle mi to příjde logické.

duchaj   NOVÝ
8. 7. 2007

Vymyslel jsem tenhle kod na psaní textu pozpatku. Ale píše to s mezerami mezi jednotlivýma písmenkama... Dá se ty mezery "vyhodit"?

veta="Python je skvely objektove orientovany, interpretovany a interaktivni programovaci jazyk."

i=0
pocet=len(veta)

print "\n"

for i in range(1,pocet+1):
print veta[pocet-i],

m4rt4n   NOVÝ
5. 8. 2007

nechci psát řešení přímo do diskuze, kdyžtak mi napiš. nápověda.:

print veta[pocet-i], nedávej rovnou print, nejprve to ulož do proměnné (použij způsob počítání z předchozí lekce) a print použij až na tuto proměnnou

Ri$o   NOVÝ
24. 10. 2007

ako mam otvorit program v pythone???

Anonymní uživatel   NOVÝ
14. 12. 2007

To m4rt4n: Stale mi to vypisuje pod seba neviem ako mam spravit aby my to pislo do riadku

Víťa   NOVÝ
8. 4. 2009

Jejda, dal jsem se do toho až ted a jediný co jsme vymyslel na nepovinný úkol, tak je tohle



seznam=""
jetam=0
for znak in veta:
#print "znak",znak
for znak1 in seznam:
if znak==znak1: jetam=1
if jetam==0: seznam=seznam+znak
jetam=0

print seznam


funguje to, ale není tu nikdo, kdo by ukázal elegantnější řešení:(

Teddinka1   NOVÝ
9. 6. 2009

Koukám, že co člověk, to jiné řešení :-) Jsem doufala, že tu naleznu nějakou pomoc, ale kopírovat cizí nápad se mi nechce, tak si doopravím to své a pak zašlu, zdali tu ještě funguje opravování úkolů :-)

luci   NOVÝ
12. 11. 2009

znaky = [ ]
for x in veta:
if x not in znaky:
znaky += [x]
print znaky

bych rekla ze takhle je to hezci:)

rodier   NOVÝ
3. 12. 2009

Tak az dotedka jsem vsechno chapal, ale ten domaci ukol teda ne.

Nevim a nikde v tutorialu nevidim, jak spocitat kolik je tam a, e, ..atp

diky za radu

Dolby   NOVÝ
3. 1. 2010

Reagoval na komentář od uživatele luci :
Mne tvoj kod nevratil jeden zoznam znakov ale mnozstvo zoznamov, kde prave ten posledny je ten hladany. Teda zoznam znakov. A nic viac.

ja som skusil vyuzit techniku mojich prarodicov - naokolo blizsie. Ale vrati mi to jeden zoznam. Dfm. ze dobre.
ch=[]
for y in range(0,len(veta)):
counter=0
for z in range(y+1,len(veta)):
if veta[y]==veta[z]:
counter=counter+1
if counter==0:
ch=ch+[veta[y]]
else:
ch=ch

lekiller   NOVÝ
17. 2. 2010

Taky mám problém s tím vypisováním pozpátku.
Když jsem to zkusil dát do proměnné, tak, že uloží do proměnné písmeno u kterého právě je a pak ho vypíše, tak to psalo na každý řádek samostatně, takže za tu proměnnou v print jsem musel dát čárku a tím byl efekt stejný, jako bez proměnné. Hmm
A jedna maličkost, jak to tu je s tím opravováním úkolů? At nemusím ztrácet čas jejich odesiláním, jestli to nefunguje...

Aya   NOVÝ
25. 2. 2010

Reagoval na komentář od uživatele lekiller :

myslím že je to čitelné, ješte by se to nicméně dalo optimalizovat:-)

Aya

#Vytisknete vetu v obráceném poradí písmen.
veta="Python je skvely objektove orientovany, interpretovany a interaktivni programovaci jazyk."
vetapozpatku=""
for i in range(len(veta)-1,-1,-1):
vetapozpatku=vetapozpatku+veta[i]
print vetapozpatku

Aya   NOVÝ
25. 2. 2010

Reagoval na komentář od uživatele lekiller :
jak to je s odesíláním úkolů nevím, nicméně ted jsem se pustil do tohoto tutoriálu abych si oprášil znalosti kvůli jednomu mému projektu... jestli chceš zpětnou vazbu či konzultace tak nemám problém :-)

Petroff   NOVÝ
1. 4. 2010

Zkuste větu zkomprimovat (odeslání textu mobilem)
Každé slovo začíná velkým písmenem a mezery se vypustíAMezerySeVypustí.

<POMOC>
- mezera nemusí být jediný znak, ukazující na začátek nového slova!
- 1.znak slova nemusí být písmeno

Petroff   NOVÝ
2. 4. 2010

Povolíme-li použití funkce pro převod znaku na číselný ASCII kod: kod=ord(znak)
a pro převod nazpět: znak=chr(kod)



male_p=range(ord("a"),ord("z"))
velke_p=range(ord("A"),ord("Z"))
abeceda=male_p+velke_p
posun=ord("A")-ord("a") ### [malé] + posun -> [VELKÉ] ###

veta="Python je skvely objektove orientovany, interpretovany a interaktivni programovaci jazyk."
nova_veta=""
Slovo=True
for zn in veta:
Pismeno=Slovo * (ord(zn) in male_p)
Slovo= zn==" "
nova_veta+=chr(ord(zn)+posun*Pismeno)[Slovo:]
print nova_veta
Funguje perfektně (i při výskytu čísel a jiných nepísmenných znaků ve větě) ...ale neumí zvětšit ěščřžýá atd.

novacik   NOVÝ
24. 10. 2010

Mne funguje aj toto :)
new3 = veta.title()
print new3.replace(' ','',)

bryky   NOVÝ
30. 11. 2010

Reagoval na komentář od uživatele Aya :

Asi nejsnadněji lze větu pozpátku vytisknout takhle :-)

print veta[::-1] #vypise vetu pozpatku

Jenik   NOVÝ
28. 2. 2011

Ahoj, mam (pravdepodobne dost trivialni) problem - kdyz ctu xml z internetu, zlobi me cestina:

# -*- coding: utf-8 -*-
import urllib
stranka=urllib.urlopen("http://www.jizni-morava.cz/xml/objekty.php?kategorie=120")
print stranka.readlines()

Muzete mi prosim poradit?
DIky

Filip B.   NOVÝ
21. 3. 2011

Vytiskněte větu v obráceném pořadí písmen:



for y in (range(len(veta))):
x = x - 1
y += 1
print (veta[x],end='')


Na týchto tutoriáloch sa začínam učiť programovať, je to geniálne spracované.
Ďakujem =) Chcel by som sa spýtať, či by šlo danú úlohu spraviť aj jednoduchšie.

Wrunx   NOVÝ
8. 9. 2011

Extra úkol (jaké všechny znaky jsou ve větě) lze řešit dle mého názoru velmi jednoduše i bez seznamů, ale nechci sem psát řešení abych nezkazil lidem radost že na to přijdou sami; jen napovím že na to stačí jediný příkaz :-)

(Vyzkoušeno v Py 2.7.1)

dalam   NOVÝ
26. 12. 2013

geon

jaksi neviem najst kam odovzdat ulohu...

Rolf   NOVÝ
7. 1. 2014

Skoro nic mi nefunguje :-(((

>>> barva=raw_input('Jaka je tva oblibena barva?: ')
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    barva=raw_input('Jaka je tva oblibena barva?: ')
NameError: name 'raw_input' is not defined

Přidej svůj názor

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo e-mailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Reaguješ na příspěvek:
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové názory e-mailem (pouze pro přihlášené)
Sleduj názory ke článku a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.



Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý