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

čtení ze souboru – Python – Fórum – Programujte.comčtení ze souboru – Python – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
VitPet0
Newbie
6. 9. 2014   #1
-
0
-

Ahoj,

z důvodu fatální chyby ve funkci desifruj ji nelze dokončit. Byl bych tedy rád kdyby jste mi ji pomohli opravit

při postupu zacit hru>>/zadani jmena/ok>>pokracovat se při metodě redlines() zobrazí [ ] a při read() nic.

  • Ne soubor nezůstal otevřený v jiné funkci.
  • Ano jsem si jistý že funkci volám
# -*- coding: utf-8 -*-

from Tkinter import *
from ttk import *
import string



global q
q=0
global w
w=1
global e
e=2
global r
r=3
global t
t=4
global z
z=5
global u
u=6
global i
i=7
global o
o=8
global p
p=9


def desifruj():
	soubor=open('/home/lenka/documents/Alchimist_lab/gamesave.txt','r')
	print soubor.readlines()                                              #zde je chyba
	soubor.close()
	


def konechry():
	pass

def hra(penez,superpenez,lektvary,skore):
	desifruj()
ring = string.ascii_uppercase
def cipher(text):
 
 
	txt = ''
	key = ring[3:] + ring[:3]
	for char in text.upper():
		if char in key:
			txt += key[ ring.index(char) ]
		else:
			txt += char
	global sifra
	sifra=txt
	
def decipher(text):

 
	txt = ''
	key = ring[3:] + ring[:3]
	for char in text.upper():
		if char in key:
			txt += ring[ key.index(char) ]
		else:
			txt += char
	global desifra
	desifra=txt


def poprve():
	divno="krasnezlutouckykunpeldabelskeody"
	cipher(divno)
	global sifdivno
	sifdivno=sifra
	
	
 	

def pred_hra():
	pomoc=0
	poprve()
	soubor=open("/home/lenka/documents/Alchimist_lab/gamesave.txt", "w")
	while 1:
		soubor.write(sifdivno)
		soubor.write("Q")
		pomoc=pomoc+1
		if pomoc==3:
			break
			
	hra(0,0,0,0)

	
	


def nenovy():
	opravdu.destroy()
	jmeno.destroy()
	
	
def vytvorjmeno():
				soubor = open("/home/lenka/documents/Alchimist_lab/jméno.txt", "w")
				soubor.write(vstup.get())
				soubor.close()

def znova():
	vytvorjmeno()
	pred_hra()
		
	

def uloz():
	 
		try:
			soubor = open("/home/lenka/documents/Alchimist_lab/jméno.txt", 'r')
		except IOError:
			vytvorjmeno()
			
			
		else:
			global opravdu
			opravdu=Toplevel(okno)
			opravdu.title("vystraha")
			text=Label(opravdu, text="hra uz je rozehrana, vytorenim nove stavajici hru znicite, chcete pokracovat?")
			text.pack()
			
			ne=Button(opravdu, text="Nevytvaret novou", command=nenovy)
			ne.pack()
			soubor.close()
			
			
			ok=Button(opravdu, text="Pokracovat", command=znova)
			ok.pack()
			
		

    



def jmeno_f():
	global jmeno
	global vstup
	jmeno=Toplevel(okno)
	jmeno.title("jmeno")
	
	napis= Label(jmeno, text="bez hacku a carek!")
	napis.pack()
	
	vstup=Entry(jmeno)
	vstup.pack(fill=BOTH)
	vstup.focus_set()
	
	ok=Button(jmeno, text="OK", command=uloz)
	ok.pack()





okno=Tk()
okno.title("alchimist lab")

start=Button(okno, text="zacit hru", command=jmeno_f)
start.pack()




okno.mainloop()


Nahlásit jako SPAM
IP: 89.176.75.–
Hmmmmmm... Sooooooo Python
Reklama
Reklama
Matěj Andrle+1
Grafoman
6. 9. 2014   #2
-
-1
-
Mimo téma
Kit -

#1 VitPet
Bez debuggeru to nepůjde. Hoď tam nějaký a pošli výsledky... (Kdy, kde co, jak a proč.)

Nahlásit jako SPAM
IP: 78.136.166.–
Kit+11
Guru
6. 9. 2014   #3
-
-1
-
Mimo téma

#1 VitPet
Nějak tvému programu nerozumím. K čemu je "global"? A proč to máš rozházené jak verše od Majakovského? Co jsou proměnné q, w, e, ... ? Taková slova neznám.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:5560:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
VitPet0
Newbie
6. 9. 2014   #4
-
0
-

#2 Matěj Andrle
ach jo zase debugger. Ok jak ho spustit na linuxu??

Nahlásit jako SPAM
IP: 89.176.75.–
Hmmmmmm... Sooooooo Python
Kit+11
Guru
6. 9. 2014   #5
-
-1
-
Mimo téma

#2 Matěj Andrle
K čemu je v Pythonu debugger?

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:5560:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
VitPet0
Newbie
6. 9. 2014   #6
-
0
-

Kit global služí k tomu abych mohl otevírat proměné všude a rozházené to je proto že neumím psát normálně :-(

Nahlásit jako SPAM
IP: 89.176.75.–
Hmmmmmm... Sooooooo Python
VitPet0
Newbie
6. 9. 2014   #7
-
0
-

Debugger zobrazuje obsah proměných v různých částícg programu ale jak ho spustit na linuxu?

Nahlásit jako SPAM
IP: 89.176.75.–
Hmmmmmm... Sooooooo Python
Kit+11
Guru
6. 9. 2014   #8
-
-1
-
Mimo téma

#6 VitPet
Proč potřebuješ otvírat proměnné všude? A proč se tak jmenují?

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:5560:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
VitPet0
Newbie
6. 9. 2014   #9
-
0
-

oni se nejmenují global ale jsou globální a otevírat je potřebuju abych s nimi mohl dále pracovat kdyžtak si to zkus vygooglit

Nahlásit jako SPAM
IP: 89.176.75.–
Hmmmmmm... Sooooooo Python
Kit+11
Guru
6. 9. 2014   #10
-
-1
-
Mimo téma

#7 VitPet
To vím, k čemu se používá debugger. Hodí se například k assembleru. Ale proč k Pythonu?

Na Linux se nevymlouvej. Dělám v něm bez debuggeru. Není potřebný.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:5560:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
VitPet0
Newbie
6. 9. 2014   #11
-
-1
-
Mimo téma
Kit -

jinak teď jsou Simpsonovy za cca 20 min. se vám budu věnovat...

Nahlásit jako SPAM
IP: 89.176.75.–
Hmmmmmm... Sooooooo Python
Matěj Andrle+1
Grafoman
6. 9. 2014   #12
-
0
-

#9 VitPet
Jak asi - linuxovým GDB...

https://wiki.python.org/moin/DebuggingWithGdb

Nahlásit jako SPAM
IP: 78.136.166.–
Kit+11
Guru
6. 9. 2014   #13
-
-2
-
Mimo téma

#9 VitPet
Jak mám vygooglit, co znamená proměnná "q" nebo "e"?

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:5560:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
VitPet0
Newbie
6. 9. 2014   #14
-
0
-

ok ok klid já debbuger nesnáším (tedy ten pythonní) ale občas JE prostě potřeba... jdu na to.

Nahlásit jako SPAM
IP: 89.176.75.–
Hmmmmmm... Sooooooo Python
Kit+11
Guru
6. 9. 2014   #15
-
-2
-
Mimo téma

#14 VitPet
Když nebudeš používat globální proměnné, nebudeš potřebovat debugger.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:5560:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Matěj Andrle+1
Grafoman
6. 9. 2014   #16
-
-1
-
Mimo téma
Kit -

#15 Kit
Od čeho debugger je? Dle mého je to pomocník, co nejen, že ukazuje hodnoty na adresách (v proměnných), avšak také určuje kde je problém a o to tu jde!

Nahlásit jako SPAM
IP: 78.136.166.–
Kit+11
Guru
6. 9. 2014   #17
-
-2
-
Mimo téma

#16 Matěj Andrle
Debugger je zastaralý nástroj, který se dodnes používá při ladění programů v assembleru a jiných procedurálních jazycích. Objektové jazyky ho nepotřebují.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:5560:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
p3can
~ Anonymní uživatel
312 příspěvků
6. 9. 2014   #18
-
0
-
Nerozhodně
Kit -

#17 Kit
zastaraly nastroj jo ? a na tos prisel kde prosimte   

Nahlásit jako SPAM
IP: 77.92.213.–
Kit+11
Guru
6. 9. 2014   #19
-
-2
-
Mimo téma

#18 p3can
V OOP je debugger zbytečný, protože v OOP jsou mnohem lepší nástroje a postupy.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:5560:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
VitPet
~ Anonymní uživatel
42 příspěvků
6. 9. 2014   #20
-
0
-

hhhhhh NE!! prosťe mě debugger nemá rád já to nezvladnu debugger prostě použít nedokážu

Nahlásit jako SPAM
IP: 89.176.75.–
VitPet
~ Anonymní uživatel
42 příspěvků
6. 9. 2014   #21
-
0
-

zkuste si to PROSÍM upravit pro váš počítač a zkusit to na svém protože já a debugger se prostě nemáme rádi 

Nahlásit jako SPAM
IP: 89.176.75.–
KIIV+42
God of flame
6. 9. 2014   #22
-
0
-

#19 Kit
napriklad?

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
VitPet
~ Anonymní uživatel
42 příspěvků
6. 9. 2014   #23
-
0
-

KIIV co například??

Nahlásit jako SPAM
IP: 89.176.75.–
p3can
~ Anonymní uživatel
312 příspěvků
6. 9. 2014   #24
-
0
-
Nerozhodně
Kit -

#19 Kit
zase perlis jo ? xD muzes uvest odkaz na JAKYKOLIV RELEVANTNI zdroj ktery tvrdi ze debugovani je zastarale a objektove jazyky ho nepotrebuji?

a muzes me uvest ty nastroje a postupy ktere se pouzivaji v oop misto debugu ?

Nahlásit jako SPAM
IP: 77.92.213.–
VitPet
~ Anonymní uživatel
42 příspěvků
6. 9. 2014   #25
-
0
-
Nerozhodně
Kit -

hej pls neřešte tu jak je zbytečný nebo suprový dubugger a radši mi pomožte

Nahlásit jako SPAM
IP: 89.176.75.–
p3can
~ Anonymní uživatel
312 příspěvků
6. 9. 2014   #26
-
0
-
Nerozhodně
Kit -

#25 VitPet
rozjed si debuger bez toho nemuzes nic programovat. pokud to nerozjedes delej si aspon napr. inkrementalni vypisky do konzole.

Nahlásit jako SPAM
IP: 77.92.213.–
VitPet
~ Anonymní uživatel
42 příspěvků
6. 9. 2014   #27
-
0
-

to dělám ono krok za krokem to funguje dohromady jako .py NE!

Nahlásit jako SPAM
IP: 89.176.75.–
Matěj Andrle+1
Grafoman
6. 9. 2014   #28
-
0
-

#27 VitPet
Poslal jsem ti odkaz na tutorial a na internetu je jich dalších 10 000 000 000 - tak snad jeden můžeš přečíst - ne?

Nahlásit jako SPAM
IP: 78.136.166.–
VitPet
~ Anonymní uživatel
42 příspěvků
6. 9. 2014   #29
-
0
-

ok zkusím to znova..

Nahlásit jako SPAM
IP: 89.176.75.–
VitPet
~ Anonymní uživatel
42 příspěvků
6. 9. 2014   #30
-
0
-

ach jo mě to prostě nic neříká... zkusím video

Nahlásit jako SPAM
IP: 89.176.75.–
KIIV+42
God of flame
6. 9. 2014   #31
-
0
-

beztak tam mas nejspis jen prazdnej soubor.. zkus v terminalu cat
/home/lenka/documents/Alchimist_lab/gamesave.txt
a pak se uvidi

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
VitPet
~ Anonymní uživatel
42 příspěvků
6. 9. 2014   #32
-
0
-

KIIV odepisuje to co by měl

Nahlásit jako SPAM
IP: 89.176.75.–
Kit+11
Guru
6. 9. 2014   #33
-
-2
-
Mimo téma

#22 KIIV
Například testy. TDD je mnohem lepší než debugger.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:5560:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
VitPet
~ Anonymní uživatel
42 příspěvků
6. 9. 2014   #34
-
0
-

Kit pls už neřeš co je lepší nebo si na to založ vlastní vlákno

Nahlásit jako SPAM
IP: 89.176.75.–
p3can
~ Anonymní uživatel
312 příspěvků
6. 9. 2014   #35
-
0
-
Nerozhodně
Kit -

#33 Kit
jezis xD. radsi kdybys nepsal zkratky co ani nevis co v praxi znamenaji   

Nahlásit jako SPAM
IP: 77.92.213.–
VitPet
~ Anonymní uživatel
42 příspěvků
6. 9. 2014   #36
-
0
-
Nerozhodně
Kit -

tak co pomůžete mi?

Nahlásit jako SPAM
IP: 89.176.75.–
p3can
~ Anonymní uživatel
312 příspěvků
6. 9. 2014   #37
-
0
-

#36 VitPet
no nejak nevim jak ti mame pomoct s prikazem otevrit soubor.

1. budto soubor neexistuje na dane adrese

2. adresa je spatne

3. nemas tam prava

4. soubor je prazdny

soude podle toho ze to pada az pri pokusu cteni tak typuju na variantu 4 coz uz ti psal kiv

Nahlásit jako SPAM
IP: 77.92.213.–
VitPet0
Newbie
6. 9. 2014   #38
-
+1
-
Zajímavé

soubor v zadnem pripade prazdny neni zkousel jsem.

Nahlásit jako SPAM
IP: 89.176.75.–
Hmmmmmm... Sooooooo Python
hanpari0
Návštěvník
7. 9. 2014   #39
-
0
-

#38 VitPet
A je to opravdu ten samý soubor? Nepleteš si cesty? Nemáš třeba dva stejně pojmenované soubory na různých cestách? Správně bys měl udělat toto. Nastavit si proměnnou třeba:

cesta =  "/home/lenka/documents/Alchimist_lab/gamesave.txt"

A tu pak k otevírání toho samého souboru. Takhle nemůžeš vědět, jestli tam nemáš někde chybu.
 

Mimochodem, ty globální proměnné bys opravdu neměl používat :)

Nahlásit jako SPAM
IP: 178.72.234.–
gcx110
Návštěvník
7. 9. 2014   #40
-
+3
-
Zajímavé

#1 VitPet
A co takhle ten soubor zavřít ve funkci pred_hra() ?

P.S. Nauč se psát objektově. Globální proměnné jsou strašné. Používej správce kontextu a zkus si ošetřit práci se soubory.

Nahlásit jako SPAM
IP: 79.110.44.–
VitPet0
Newbie
16. 9. 2014   #41
-
0
-

#40 gcx11
ano na zavření souboru jsem přišel a udělal. A ty globální proměné tam jsoou kvůli pozdějšímu dešífrování gamesavu. hanpari díky za radu skusím to tak

Nahlásit jako SPAM
IP: 89.176.75.–
Hmmmmmm... Sooooooo Python
VitPet0
Newbie
16. 9. 2014   #42
-
0
-

bohužel stejně to nefunguje :-(

Nahlásit jako SPAM
IP: 89.176.75.–
Hmmmmmm... Sooooooo Python
gcx110
Návštěvník
16. 9. 2014   #43
-
0
-

#42 VitPet
Co zase nefunguje? Jakou chybu ti to vyhodilo? Co má ta aplikace vůbec dělat? Být tebou, dřív se naučím OOP, než GUI, protože tak v tom máš akorát bordel.

Nahlásit jako SPAM
IP: 79.110.44.–
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

Cteni souboru. — založil ewzen

Čtení souboru ve VB — založil hansk

Cteni ze souboru — založil Mory

čtení ze souboru — založil Roman

čtení ze souboru — založil Jakub Vojáček

 

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