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

Proc to nejede – Python – Fórum – Programujte.comProc to nejede – Python – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
roman
~ Anonymní uživatel
113 příspěvků
10. 2. 2013   #1
-
0
-

Cau,

chcel by som zistit vsetky prvocisla od 1000 do 2000....neviem preco,ale mam tam chybu...pomoze niekto...dik

for n in range (1000, 2000):

x= (2, 2000)

while n % x == 1:

print (n)

Nahlásit jako SPAM
IP: 78.102.168.–
Reklama
Reklama
KIIV+42
God of flame
10. 2. 2013   #2
-
0
-

no jelikoz si nepouzil blok kodu pro tvuj kod, a ani neumis rict co ti presne nefunguje tak to bude odsazeni

+ samozrejme je uplne blbe ten while cyklus a jeho rozsah ... taky zbytek po deleni vypada podezrele, kdyz tam hazes cely pole

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
prosteja
~ Anonymní uživatel
21 příspěvků
10. 2. 2013   #3
-
0
-

Všetky prvočísla od 1000 do 2000? hm..

# -*- coding: utf -*-

def vypis_prvocisla(minimum,maximum):
	for x in range(minimum,maximum+1): # hovoril si ze chces overovat aj 2000
		for h in range(2,x):
			if x%h==0: break
		else: yield x

# a teraz ked sa chces dostat k tym prvocislam
prvocisla=list(x for x in gen(1000,2000))

# a uz len das trebars print(prvocisla); a sledujes vysledok
Nahlásit jako SPAM
IP: 188.167.34.–
prosteja
~ Anonymní uživatel
21 příspěvků
10. 2. 2013   #4
-
0
-

#3 prosteja
Chcel by som sa len opravit, predposledny riadok by mal vyzerat takto:


prvocisla=list(x for x in vypis_prvocisla(1000,2000))
Nahlásit jako SPAM
IP: 188.167.34.–
prosteja
~ Anonymní uživatel
21 příspěvků
10. 2. 2013   #5
-
0
-

#4 prosteja
+ ešte mam chybu v coding: utf, ma tam byt utf-8

Nahlásit jako SPAM
IP: 188.167.34.–
roman
~ Anonymní uživatel
113 příspěvků
10. 2. 2013   #6
-
0
-

#5 prosteja
dik....chcel by som sa este oyptat,co znamena utf-8?......ale ked si napisem kod nevypisu sa mi prvocisla....ypisal si mi len 2000?

Nahlásit jako SPAM
IP: 78.102.168.–
prosteja
~ Anonymní uživatel
21 příspěvků
10. 2. 2013   #7
-
0
-

Ahoj,

# -*- coding: utf-8 -*-

Toto odporúčam používat. Vdaka tomu možeš vo svojom programe používať pismenka s háčkami a čiarkami, t.j. č,dž,š,ť,á,í,é atď atď.

Po tomto kóde sa ti prvočísla nevypíšu samozrejme.

Funkcia, ktorú som napísal vyššie, je generátor, čiže jej obsah získaš až po iterovaní

Preto ak urobíš aj posledný riadok,

prvocisla=list(x for x in vypis_prvocisla(1000,2000))

a potom zavoláš tu premennu prvočísla... takto: print(prvocisla)

stane sa..

No schvalne, vyskušaj to sám, ak by ti to nefungovalo, tak vypíš aj konkrétny typ chyby (celu chybovu hlášku)

Nahlásit jako SPAM
IP: 188.167.34.–
roman
~ Anonymní uživatel
113 příspěvků
10. 2. 2013   #8
-
0
-

#7 prosteja
ahoj....vypiše mi to,ale len cislo 2000....nechapem?

Nahlásit jako SPAM
IP: 78.102.168.–
prosteja
~ Anonymní uživatel
21 příspěvků
10. 2. 2013   #9
-
0
-

Hmm..

mne to v poriadku vypísalo zoznam asi 50 čísiel...

Možno to bude verziou, mne to v Pythone 3.2.3 funguje.

Skopíruj sem celý kód, ktorý si TY skopíroval a presný výstup z konzoly/resp. v čom to robíš

Nahlásit jako SPAM
IP: 188.167.34.–
sairon0
Newbie
10. 2. 2013   #10
-
0
-

#7 prosteja
Jen malá poznámka, ten generátorový výraz je zbytečný, stačí dát ten generátor vypis_prvocisla(...) jako argument list(). Jinak je ten kód správně i pro Python < 3 a chyba bude někde u romana. Samozřejmě jsou ale na generování prvočísel sofistikovanější přístupy a hotová řešení, proto, pokud to není v rámci sebevzdělávání, je zbytečné znovu vynalézat kolo...

Nahlásit jako SPAM
IP: 88.102.115.–
ROMAN
~ Anonymní uživatel
113 příspěvků
10. 2. 2013   #11
-
0
-

   

>>> def vypis_prvocisla(minimum,maximum):
	for x in range(minimum,maximum+1):
		for h in range(2,x):
			if x%h==0: break
		else: yield x
		prvocisla=list_a(x for x in vypis_prvocisla(1000,2000))
		print(prvocisla);

		
Nahlásit jako SPAM
IP: 78.102.168.–
prosteja
~ Anonymní uživatel
21 příspěvků
10. 2. 2013   #12
-
0
-

Tá bodkočiarka na konci tam nemá byť.

A taktiež v riadku: prvocisla=list_a NEMA byt list_a ale list, čiže:

def vypis_prvocisla(minimum,maximum):
	for x in range(minimum,maximum+1):
  		for h in range(2,x):
   			if x%h==0: break
 		else: yield x
prvocisla=list(x for x in vypis_prvocisla(1000,2000))
print(prvocisla)


To odsadenie riadkov je dôležité.

Nahlásit jako SPAM
IP: 188.167.34.–
prosteja
~ Anonymní uživatel
21 příspěvků
10. 2. 2013   #13
-
0
-

#12 prosteja
+ ako povedal sairon, ešte lepšie to bude takto:

def vypis_prvocisla(minimum,maximum):
	for x in range(minimum,maximum+1):
  		for h in range(2,x):
   			if x%h==0: break
 		else: yield x
prvocisla=list(vypis_prvocisla(1000,2000)
print(prvocisla)
Nahlásit jako SPAM
IP: 188.167.34.–
prosteja
~ Anonymní uživatel
21 příspěvků
10. 2. 2013   #14
-
0
-

sorry za triplepost, ale sem tam sa vludi preklep 

def vypis_prvocisla(minimum,maximum):
	for x in range(minimum,maximum+1):
  		for h in range(2,x):
   			if x%h==0: break
 		else: yield x
prvocisla=list(vypis_prvocisla(1000,2000))
print(prvocisla)
Nahlásit jako SPAM
IP: 188.167.34.–
ROMAN
~ Anonymní uživatel
113 příspěvků
10. 2. 2013   #15
-
0
-

SyntaxError: inconsistent use of tabs and spaces in indentation

else: yield x
prvocisla=list(vypis_prvocisla(1000,2000))
print(prvocisla)

neviem urobil som to presne ako ty a v riadku else: yield x.....mi vyhazuje sytaxovu chybu

Nahlásit jako SPAM
IP: 78.102.168.–
prosteja
~ Anonymní uživatel
21 příspěvků
11. 2. 2013   #16
-
0
-

V pythone nesmieš v jednom kóde používať medzery aj tabulátory na odsadenie, to je príčina tvojej chyby.

Možno by si to mohol skúsiť prepísať ručne, alebo proste to skopírovať celé presne ako to je,

pretože mne ten kód funguje bez problémov.

Ako hovoril sairon, chyba je zrejme niekde na tvojej strane.

Nahlásit jako SPAM
IP: 188.167.34.–
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, 18 hostů

Podobná vlákna

Nejede mi SDL — založil squirrel1981

Jede/Nejede — založil BegginerOFprogrammer

Nejede mi Pascal na Vistách — založil Marcus

MVC - nejede GlobalFilterCollection — založil Matěj Andrle

 

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