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?
TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
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: ...–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: ...–asi jo... protože s tvýho popisu mi to moc jasný není...
Nahlásit jako SPAM
IP: ...–To Blujacker:Já nikdy neuměl moc vysvětlovat,hned ho sem kopnu
Nahlásit jako SPAM
IP: ...–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: ...–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: ...–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: ...–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: ...–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: ...–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: ...–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()
Nahlásit jako SPAM
IP: ...–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: ...–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: ...–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: ...–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: ...–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: ...–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
if x in pouzite:
Dalsi()
Nahlásit jako SPAM
IP: ...–To geon:hmm,moc dekuju,jeste se na to mrknu;-)
Nahlásit jako SPAM
IP: ...–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: ...–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: ...–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: ...–okno.after(cas,akce)
a cas je v milisekundach...
Nahlásit jako SPAM
IP: ...–To Blujacker:hmm,dík
Nahlásit jako SPAM
IP: ...–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: ...–myslíš jako celý program? tak to by mohlo být myslím toto:
import sys
sys.exit([1])
Nahlásit jako SPAM
IP: ...–To Blujacker:No ja myslel jakykoliv program ve woknech
Nahlásit jako SPAM
IP: ...–to rušení odpočítávání je lehký:
okno.after_cancel(id)
Nahlásit jako SPAM
IP: ...–podle pořadí:
del seznam[2]
Nahlásit jako SPAM
IP: ...–To Blujacker:A nepamatujes si ,jak byl konkretne ten prikaz tasklist a taskkill?
Nahlásit jako SPAM
IP: ...–
Nahlásit jako SPAM
IP: ...–To Blujacker:Tak jsem to zkoušel,ale nejde mi to,nemohl bys mi dat jednoduchý příklad?
Nahlásit jako SPAM
IP: ...–Uložím si do souboru
import subprocess
proces=subprocess.Popen("ipconfig", stdout=subprocess.PIPE)
print proces.stdout.read()
raw_input()
Nahlásit jako SPAM
IP: ...–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: ...–takovou chybu mi to hází když to pouštím přes IDLE.
Nahlásit jako SPAM
IP: ...–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: ...–tak místo "ipconfig" musíš dát "tasklist" a vypíše to ty procesy...
Nahlásit jako SPAM
IP: ...–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: ...–jj, dyžtak dej v příkazvoý řádce taskkill /? zo to zobrazí možnosti jak ten prcoes vypnout
Nahlásit jako SPAM
IP: ...–To Blujacker:Super,funguje to,diky moc
Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
































© 2003–2026 Programujte.com