Seznam – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Seznam – Python – Fórum – Programujte.comSeznam – Python – Fórum – Programujte.com

 

13. 1. 2007   #1
-
0
-

Potřeboval bych poradit,jak se dají smazat všechny položky v seznamu.Bluejacker mi poradil ,že to jde udělat jednoduše příkazem

seznam=[]
, ale mě to nejde .Nemáte někdo ještě jednu variantu?

Nahlásit jako SPAM
IP: ...–
geon0
Grafoman
13. 1. 2007   #2
-
0
-

ukaž jednoduchý příklad, jak ti to nejde.

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
14. 1. 2007   #3
-
0
-

To geon:No pokusím se to vysvětlit.Já jsem potřeboval vytvořit seznam zodpovězených otázek k mé hře.A po stisknutí tlačítka F2 v hlavním okně jsem chtěl aby se spustila nova hra.nadefinoval jsem funkci nova_hra a potřebuji ještě vymazat ten seznam zodpovězených otázek a vlastně skoro všechny seznamy,aby to šlo odznova.Jenomže když zmáčknu F2 ,tak se ten seznam nevymaže.Mám sem dát skript?

Nahlásit jako SPAM
IP: ...–
Jakub Vojáček
~ Moderátor
0
Grafoman
14. 1. 2007   #4
-
0
-

asi jo... protože s tvýho popisu mi to moc jasný není...

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
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š
14. 1. 2007   #5
-
0
-

To Blujacker:Já nikdy neuměl moc vysvětlovat,hned ho sem kopnu

Nahlásit jako SPAM
IP: ...–
14. 1. 2007   #6
-
0
-

To Blujacker:

from Tkinter import *

import fileinput
import random

def nova_hra(stisk):
vstup.delete(0,END)
Dalsi()

hlavni=Tk()
hlavni.bind('<F2>',nova_hra)
pouzite=[]
so=[]
otazky=['1 + 5 = ?','Kolik nohou ma srnka?','Kolik nohou ma pavouk?','Kolik nohou ma brouk?']
odpovedi=['6','4','8','6']
global x
x=random.randint(0,len(otazky)-1)

def konec():
t2=Label(hlavni,text='spravnych odpovedi : ' + str(len(so)))
t2.pack(fill=BOTH)
vstup.insert(0,',stisknutim tlacitka "F2" zacnete novou hru.')

def uloz_skore():
jmeno=vstup2.get()
soubor=open('C:/Documents and Settings/uzivatel/Plocha/parba/vysledky.txt','a+')
soubor.write(jmeno + ' : ' + str(len(so))+"""
""")
vstup2.delete(0,END)
vstup.insert(0,'Hotovo!')
vstup.delete(0,END)

def Dalsi():
global
x=random.randint(0,len(otazky)-1)
if len(pouzite)==len(otazky):
t3=Label(hlavni,text='''Vyborne,odpovedel/a jste na vsechny otazky''')
t3.pack(fill=BOTH)
konec()

if x in pouzite:
Dalsi()

else:
pouzite.append(x)
print pouzite
vstup.delete(0,END)
vstup.insert(0,otazky[x])

def OK():
global x
odpoved=vstup2.get()
vstup2.delete(0,END)
if odpoved == odpovedi[x]:
vstup.delete(0,40)
vstup.insert(0,'Spravne!')
so.append("spravna odpoved")

if odpoved != odpovedi[x]:
vstup.delete(0,END)
vstup.insert(0,'spatne,zpravna odpoved je : '+ str(odpovedi[x]))
konec()


t=Label(hlavni,text=""" FEJST HRA by Tom9k

Pokyny:
Vymazte otazku, zadejte spravnou odpoved a dejte OK.
Pro dalsi otazku kliknete na tlacitko "Dalsi".Pokud si chcete ulozit vase skore,
zadejte sve jmeno do vstupni radky a dejte "ulozit".""")

t.pack(fill=BOTH)

vstup=Entry(hlavni)
vstup.pack(fill=BOTH)
vstup.insert(0,otazky[x])
pouzite.append(x)

ram=Frame(hlavni)
ram.pack(fill=BOTH)

vstup2=Entry(ram)
vstup2.pack(side=LEFT)

tl2=Button(ram,text=' OK ',command=OK)
tl2.pack(side=LEFT)

tl1=Button(ram,text=' Dalsi >>',command=Dalsi)
tl1.pack(side=LEFT)

tl3=Button(ram,text='Ulozit skore',command=uloz_skore)
tl3.pack(side=RIGHT)

t4=Label(hlavni)
t4.pack()

ram.focus_set()
hlavni.mainloop()




Nahlásit jako SPAM
IP: ...–
14. 1. 2007   #7
-
0
-

To Blujacker:Já tu hru snad nikdy nedodělam :ms_0140: Jo to mazani je blbě a to sem si myslel,že sem na to kápnul konečně

Nahlásit jako SPAM
IP: ...–
14. 1. 2007   #8
-
0
-

To Blujacker:Teď sem si všimnul,že jsem tam nechal execfile ,tak si budeš muset místo toho dat dva seznamy (otazky a odpovedi),sorry.Ono je to vlastně celý nějaký divný ,to uvidíš,když to spustíš

Nahlásit jako SPAM
IP: ...–
geon0
Grafoman
14. 1. 2007   #9
-
0
-

Nemůžeš si to opravit tak, aby nám to fungovalo ihned, abychom nemuseli nejdřív 15 minut tvůj script upravovat, aby nám to vůbec fungovalo, abychom pak zjistitli, kde že je vlastně ta chyba? Proč tam jsou prázdné řádky mezi řádky? Nemůžeš používat relativní cesty? - protože ne každý uživatel se jmenuje "uzivatel" ....


To Blujacker: doufám, že mu vše neopravíš a nepřineseš na stříbrném podnose ;-)

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
14. 1. 2007   #10
-
0
-

To geon:Já se omlouvám ,uvědomil jsem si to až po té,co jsem do poslal.Bohužel nevím jak se dělají relativní cesty :ms_0188:

Nahlásit jako SPAM
IP: ...–
Jakub Vojáček
~ Moderátor
0
Grafoman
14. 1. 2007   #11
-
0
-

To geon: Neboj, nechám ho s tím potrápit jako ty mě dřív :-)

To tom9k: Nelíbí se mi tam ta vnořená funkce mazani. pak pojmenování funkcí. musím se vždy podívat jakou má to tlačítko funkci místo aby mi to bylo jasný. Místo fce1 třeba FunkceDalsi nebo tak něco. Dále bych asi ty soubory ukládal do pracovního adresáře. Ten zjistíš pomocí modulu os:



>>> import os
>>> os.getcwd()
'C:\\Python24'

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
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š
Jakub Vojáček
~ Moderátor
0
Grafoman
14. 1. 2007   #12
-
0
-

tady je malá ukázka jak by to mohlo vypadat. Musel by sis k tomu udělat to načítání otázek, funkci novy_hry, ukládání a tak...Snad si s tím poradíš



# -*- coding: cp1250 -*-
from Tkinter import*
import random
otazky=["kolik je 5*5?","kolik je 2*2?"]
odpovedi=["25","4"]
def Ok():
if vstup.get() == odpovedi[x]:
print "dobre"
else:
print "spatne"
UdelejOtazku()
def UdelejOtazku():
global x
vstup.delete(0,END)
x=random.randint(0,len(otazky)-1)
stitek["text"] = otazky[x]
okno=Tk()
okno.title(u'Ukázka')
stitek=Label()
stitek.pack()
vstup=Entry()
vstup.pack()
Button(text="Ok",command=Ok).pack()
UdelejOtazku()
mainloop()

To geon: Snad se to nepočítá jako naservování na stříbrném podnose

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
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š
geon0
Grafoman
14. 1. 2007   #13
-
0
-

To tom9k: dobrý, není probém to opravit, máš tam tlačítko Editovat

To Blujacker: Nesouhlas. Pro začátečníky je nejlepší mít pracovní složku ve složce, kde mají script ;-) Ostatně ani já nemám pracovní složku, tam kde uvádíš, ale ve svým domovský složce mám složku "Python", tedy "C:\Documents and Settings\geon\Dokumenty\Python"

To tom9k: relativní cesta je když .... vyhgodíš to c:\doc.............. a necháš tam jen "vysledky.txt", apod. Tyto soubory pak budou vždy na stejném místě, jako tvůj script, a to bude platit pro každého, komu svůj script pošleš ...


Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
Jakub Vojáček
~ Moderátor
0
Grafoman
14. 1. 2007   #14
-
0
-

To geon: Já to tam taky nemám. Ale sem mu ukazoval jak se zjistí aktuální pracovní adresář a ukazoval sem to v shellu. Já většinou mám rpo každý větší program vlastní adresář, takže třeba: C:\Documents and Settings\Blu\Plocha\Moje tvorba\MaRo

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
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š
geon0
Grafoman
14. 1. 2007   #15
-
0
-

co vy všichni máte s tou plochou? :-) plocha je nejmíň vhodné a bezpečné místo, alespon u mne, špatně přstupné z různých managerů, lehce přístupné pro vaše lamovské spoluvlastníky počíatče, pokud jedete na stejný učet, a tudfíž lehce zranitelné, když se třeba pohádáte se sestrou ;-)

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
Jakub Vojáček
~ Moderátor
0
Grafoman
14. 1. 2007   #16
-
0
-

já všechno zálohuju jak na ftp, usb a na jiný místa na počítači. už sem si na to nák zvykl že to tam mám. Se sestrou se hádám pořád, to jo, ale ona má sbýho uživatele a na můj s nedostane. Ona ani neumí pusit hru, natož cracknout moje heslo ;)

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
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š
14. 1. 2007   #17
-
0
-

Tak sem to opravil,u té funkce nova_hra potřebuju vymazat seznamy jako pouzite a so(spravne odpovedi).Ale nechápu proč,když odpovím na všechny otázky a dám Další,tak se mi python zasekne a musím ho vypnout.To se mi ještě nestalo.Jestli sem to upravil tak,že vám to nepůjde tak se zastřelim.Mimochodem my mame z bratrem jenom jeden profil,ja to dělam tak,že si dam třeba zástupce hry do složky na plochu,tu složku skryju ,změnim ikonu a dam jí na místo ,aby skoro nebyla vidět a můj bratr se k mejm hrám nedostane a neumí si to najít jednóduše v D:/Hry/... :ms_0017: Sice bych si moh v nastavení složky dát ,aby se nezobrazovaly skryté ikony,ale pak bych to musel poslepu hledat.A s mojí pamětí...

Nahlásit jako SPAM
IP: ...–
geon0
Grafoman
14. 1. 2007   #18
-
0
-

u té funkce nova_hra potřebuju vymazat seznamy jako pouzite a so(spravne odpovedi).
tak je vymaž ;-) nejdřív musíš pythonu říct, že proměnné so a pouzite jsou stejné, jako ty mimo funkci (protože ve funkci fungují lokální proměnné, to si někde nastuduj, to je *hodně* důležité). No a pak je smaž, asi takhle:

def nova_hra(stisk):

global so, pouzite
so=[]
pouzite=[]
# ...další tvoje věci


Ale nechápu proč,když odpovím na všechny otázky a dám Další,tak se mi python zasekne a
protože se zacyklí zde:
     if x in pouzite:

Dalsi()

všechny již tam jsou, tak se volá furt samu sebe ;-)
Musíš na to jinak, lépe :-) - spíše bych ty otázky, které již byly, z původního seznamu odstraňoval. Ale jde to i tvým způsobem, ale musíš to domyslet, doladit.

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
14. 1. 2007   #19
-
0
-

To geon:hmm,moc dekuju,jeste se na to mrknu;-)

Nahlásit jako SPAM
IP: ...–
geon0
Grafoman
14. 1. 2007   #20
-
0
-

jo a stejně mi ten tvůj program na první pokus nefungoval - chybělo tam global x, a ještě něco (nějaké odsazení) - no vždyť si to zkus - překopči si ten tvůj kod do svýho editoru a pust ;-)

Nahlásit jako SPAM
IP: ...–
geon. volume doprava.
16. 1. 2007   #21
-
0
-

To geon:No ,to už jsem opravil,ale pořád nevim co tam mam dát místo toho příkazu "Dalsi()" .Vyzkoušel jsem snad všechno a nevím ,čím to nahradit,aby to běhalo dobře

Nahlásit jako SPAM
IP: ...–
Jakub Vojáček
~ Moderátor
0
Grafoman
16. 1. 2007   #22
-
0
-

tak nedávej ty otázky do seznamu pouzite. at se muzou ty otázky opakovat pořád a je to...

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
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š
16. 1. 2007   #23
-
0
-

To Blujacker:no jo,jenomze kdyz ti to bude davat stejny otazky ,tak to bude pekne blby.Nevis,jak udelat casovej limit na odpoved?Asi pres modul time,ale nevim jak

Nahlásit jako SPAM
IP: ...–
Jakub Vojáček
~ Moderátor
0
Grafoman
16. 1. 2007   #24
-
0
-

okno.after(cas,akce)
a cas je v milisekundach...

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
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š
16. 1. 2007   #25
-
0
-

To Blujacker:hmm,dík

Nahlásit jako SPAM
IP: ...–
16. 1. 2007   #26
-
0
-

To Blujacker: Promin ,že tě ještě otravuju,ale nevíš ,jak se dá v pythonu ukončit spuštěný proces?A taky jak se dá přerušit to odpočítávání při tom časovém limitu? :ms_0017:

Nahlásit jako SPAM
IP: ...–
Jakub Vojáček
~ Moderátor
0
Grafoman
16. 1. 2007   #27
-
0
-

myslíš jako celý program? tak to by mohlo být myslím toto:



import sys
sys.exit([1])

jinak z funkce vyskočíš příkazem return a z cyklu break

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
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š
16. 1. 2007   #28
-
0
-

To Blujacker:No ja myslel jakykoliv program ve woknech

Nahlásit jako SPAM
IP: ...–
Jakub Vojáček
~ Moderátor
0
Grafoman
16. 1. 2007   #29
-
0
-

to rušení odpočítávání je lehký:



okno.after_cancel(id)

přičemž id je hodnota kterou ti vrátila funkce okno.after()


k to mu vypínání procesů, jednou sem si takovej program udělal. vypíše ti do listboxu všechny puštěné procesy a ty je pak můžeš povypínat. využívalo to příkazového řádku. nejřív to načetlo procesy pomocí příkazu tasklist a pak je to vypínalo příkazem taskkill id. ale už sem to asi smazal:(

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
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š
Polarski0
Newbie
17. 1. 2007   #30
-
0
-

Mám seznam s vnořenými dalšímy seznamy ( [[1,1], [1,2], [2,1], [2,2]] ) Jaký příkaz použít pro vymazání určitého daného podseznamu např [2,1] ?

Nahlásit jako SPAM
IP: ...–
Jakub Vojáček
~ Moderátor
0
Grafoman
17. 1. 2007   #31
-
0
-
Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
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š
Polarski0
Newbie
17. 1. 2007   #32
-
0
-

podle pořadí to zvládám taky ale to remove přesně to co potřebuju.

Nahlásit jako SPAM
IP: ...–
22. 1. 2007   #33
-
0
-

To Blujacker:A nepamatujes si ,jak byl konkretne ten prikaz tasklist a taskkill?

Nahlásit jako SPAM
IP: ...–
Jakub Vojáček
~ Moderátor
0
Grafoman
Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
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š
23. 1. 2007   #35
-
0
-

To Blujacker:Tak jsem to zkoušel,ale nejde mi to,nemohl bys mi dat jednoduchý příklad?

Nahlásit jako SPAM
IP: ...–
Jakub Vojáček
~ Moderátor
0
Grafoman
23. 1. 2007   #36
-
0
-

Uložím si do souboru



import subprocess
proces=subprocess.Popen("ipconfig", stdout=subprocess.PIPE)
print proces.stdout.read()
raw_input()

a pak v prohlížeči nebo přes pspad pustím a zobrazí se IP. Používám pythona 2.4

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
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š
23. 1. 2007   #37
-
0
-

To Blujacker:No to jsem právě zkoušel a nefachá mi to.hodí to chyby:

IDLE internal error in runcode()

Traceback (most recent call last):
File "C:\Documents and Settings\uzivatel\Plocha\nic.py", line 3, in <module>
proces=subprocess.Popen("ipconfig", stdout=subprocess.PIPE)
File "C:\Program Files\Python25\lib\subprocess.py", line 581, in __init__
errread, errwrite) = self._get_handles(stdin, stdout, stderr)
File "C:\Program Files\Python25\lib\subprocess.py", line 676, in _get_handles
p2cread = self._make_inheritable(p2cread)
File "C:\Program Files\Python25\lib\subprocess.py", line 717, in _make_inheritable
DUPLICATE_SAME_ACCESS)
TypeError: an integer is required
Nevim,jestli to je tim,že mam 2.5

Nahlásit jako SPAM
IP: ...–
Jakub Vojáček
~ Moderátor
0
Grafoman
23. 1. 2007   #38
-
0
-

takovou chybu mi to hází když to pouštím přes IDLE.

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
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š
23. 1. 2007   #39
-
0
-

To Blujacker:Tak ono mi to nejde jenom přes IDLE,když to spustim normalne,tak to jde.Ale stejně to vypíše IP a ne spuštěné procesy

Nahlásit jako SPAM
IP: ...–
Jakub Vojáček
~ Moderátor
0
Grafoman
23. 1. 2007   #40
-
0
-

tak místo "ipconfig" musíš dát "tasklist" a vypíše to ty procesy...

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
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š
25. 1. 2007   #41
-
0
-

To Blujacker:No jo,ja sem *****.A jak ukoncim ten proces?Normalne zase misto toho tasklist napíšu taskkill a vedle toho zadam název procesu?

Nahlásit jako SPAM
IP: ...–
Jakub Vojáček
~ Moderátor
0
Grafoman
25. 1. 2007   #42
-
0
-

jj, dyžtak dej v příkazvoý řádce taskkill /? zo to zobrazí možnosti jak ten prcoes vypnout

Nahlásit jako SPAM
IP: ...–
Navštivte server Matematika pro každého
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š
25. 1. 2007   #43
-
0
-

To Blujacker:Super,funguje to,diky moc

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×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:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 16 hostů

Podobná vlákna

OS seznam — založil Bengo

C++ Seznam — založil _Daffy_

Linearni seznam — založil pidgin

Download seznam — založil Pavelv

Seznam z raw_input — založil Pepa Rohlik

 

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