Vůbec si s tím nevim rady. Nevim jak a kde mám použít řetězec for. Pomůže mi prosím někdo????????????????????
Fórum › Python
Výzva v článku Znovu a znovu a znovu
použiješ ho v případě že chceš něco opakovat... místo:
print "ahoj"
print "ahoj"
print "ahoj"
stačí použít
for x in range(3):
print "ahoj"
výsledek je v tomto případě stejný ale později jsou cykly k nezaplacení.
Dále se příkaz for dá použít k procházení posloupností:
seznam=["jedna","dva","tri"]
for prvek in seznam:
print prvek#postupne vypíše všechny prvky seznamu
snad jsem pomohl....
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
Tak tohle mi už funguje:
import random
x=random.randint(1,10)
y=random.randint(1,50)
print x,"*",y
z=input("Zadejte vysledek prikladu:")
if z<x*y:
print "Spatne! Vysledek je:",x*y
if z>x*y:
print "Spatne! Vysledek je:",x*y
if z==x*y:
print "Spravne! Vysledek je opravdu:",x*y
raw_input()
Ale nevim jak to mám napsat aby se to opakovalo
Tak tohle už mi funguje:
import random
x=random.randint(1,10)
y=random.randint(1,50)
for z in range (10):
print x,"*",y
input("Zadejte vysledek prikladu:")
if z==x*y:
print "Spravne! Vysledek je skutecne:",x*y
else:
print "Spatne! Vysledek je:",x*y
raw_input()
Ale pořád se mi objevuje: Spatne!...
1)dal bych to generování náodných čísel do cyklu...
2)ten input musíš uložit do proměnné:
z=input()
3) v cyklu for nedávej jako proměnnou "z"..
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
import random
x = random.randint(1,10)
y = random.randint(1,50)
for opakovani in range (10):
print x,"*",y
z = input("Zadejte cislo: ")
if z == x * y:
print "Sprvne, vysledek je opravdu ",x*y
else:
print "Spatne, spravne je",x*y
1) po spuštění F5 se mi jako první objeví prázdný řádek a až po odklepnutí Enter se mi vypíší čísla a pokyn k zadání čísla
2)při opakování se mi vypisují stále stejná náhodná čísla jako v prvním příkladu. Je zde doporučení zacyklit generování náhodných čísel, ale nevím jak
toť zatím vše :-) Nekamenujte mě, jsem naprostý programátorský láma (tzn tohle je moje první setkání s programováním)
1) Používáš ten editor co je v základí distribuci (python IDLE)? Tam je problém že když máš ve skriptu raw_input() a nic do toho nezdáš a restartuješ shell tak než ti se ti rozeběhne novej program tak musíš ten enter stejně zmáčknout
2) Stačí přidat to:
x = random.randint(1,10)
do toho cyklu:
for opakovani in range (10):
x = random.randint(1,10)
a to stejný i s "y".
Nikdo tě tady nebude urážet že si lama a tak.. Stačí se slušně zeptat a čekat na odpověd;-)
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
To Blujacker:1) Jj, přesně ten editor používám. Ve skriptu raw_input() nemám, a zatím jsem na to nenarazil, takže zatím nevím ani co to znamená :-)
2) Mám tedy přesunout řádky x a y až pod příkaz for ? No asi zbytečná otázka, jdu to vyzkoušet. Díky
raw_input() je stejný jako input() s tím rozdílem že raw_input vrací řetězec a input číslo.
Ano, stačí je přesunout a odsadit.
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
Ještě "prozatím" jedna otázka - v řetězci je po for hodnota, která je v příkladu označená jako x a dále se s ní pracuje. V případě tohoto skriptu tam však mohu zadat co chci a nikde se s tím už nepracuje. Co mi uniklo za informaci ?
Edit: Za předchozí rady děkuji, už to funguje :-)
tak si zkoušej vypisovat v každém cyklu hodnotu opakování:
print opakovani
zjištíš že na počátku má hodnotu 0 a postupně se její hodnota zvětšuje. V tvém případě by se to dalo použít k počítání pokusů, ale já bych větší využití viděl v procházení posloupností:
for prvek in ["A","B","V","D"]:
print prvek
prochází seznamem a vypisuje postupně jeho položky...
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
daww píše:#
# Ještě "prozatím" jedna otázka - v řetězci je po for hodnota, která je v příkladu označená jako x a dále se s ní pracuje. V případě tohoto skriptu tam však mohu zadat co chci a nikde se s tím už nepracuje. Co mi uniklo za informaci ?#
#Edit: Za předchozí rady děkuji, už to funguje :-)#
#
Tu "hodnotu" po for můžeš, ale nemusíš v cyklu využít. Záleží čistě na tobě, jestli se hodí, nebo si to uděláš tak, aby se hodilo.
Té "hodnotě" se říká proměnná, jen tak pro pořádek ;-)
Chtěl jsem mít příklad na jednom řádku i s vložením čísla. Provedl jsem úpravu kodu, program běží, ale hlásí mi to "špatně" i při správném výsledku. Poradíte kde hledat řešení ?
z = input
for opakovani in range (10):
print "Priklad c:",opakovani + 1
x = random.randint(1,10)
y = random.randint(1,50)
print x,"x",y,"=",z(""),
if z == x * y:
Špatně jsem se vyjádřil: "Priklad c.:" je na jednom radku - to je v poradku. Dále následuje tisk příkladu a v lekci je to udělané tak, že tisk příkladu je na jednom řádku a vložení odpovědi na druhé. Já bych chtěl mít příklat (např 7 * 8) na jednom řádku jako vložení výsledku. To se mi podařilo, ale i při zadání správného výsledku mi to píše Špatně. Ignoruje to tedy funkci je rovno. Kde mám špatnou definici ?
Edit: Tak už to mám. Ale byla to fuška :-)
print x,"x",y,"=",
z=input ("")
if z == x * y:
To daww: ty dva poslední řádky nemusíš mít odsazené a místo
z=input ("")
stačí z=input()
...detaily:)...To katha:ty dva poslední musí mít odsazené
To daww:ten input by měl být v cyklu a ne před ním
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Znovu otvorenie Form1 — založil Tayson
Neprobehne mi znovu scanf — založil Lukas
Static Control se znovu nevykresluje — založil TomyB
WinSock, znovu otevreni socketu — založil _Radek_
Zastavenie a znovu spustenie BackGroundWorker — založil Tayson
Moderátoři diskuze