Pomoc s kodem + zobrazeni prikaz radky – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pomoc s kodem  + zobrazeni prikaz radky – Python – Fórum – Programujte.comPomoc s kodem + zobrazeni prikaz radky – Python – Fórum – Programujte.com

 

shockwave
~ Anonymní uživatel
107 příspěvků
20. 11. 2020   #1
-
0
-

Ahoj, poradi nekdo proc nefunguje:  a jak zobrazim vysledek z prikaz radky terminalu.. Dekuji

Vyhodnocuje, zda je cislo prvocislo:

def checkIfPrime(numberToCheck):
    for x in range(2,numberToCheck):
        if (numberToCheck%x == 0):
            return False
            return True

answer = checkIfPrime(3)
print(answer)

Nahlásit jako SPAM
IP: 212.4.155.–
gna
~ Anonymní uživatel
1849 příspěvků
20. 11. 2020   #2
-
0
-

V té funkci máš blbě odsazení a netuším co myslíš tím zobrazením výsledku.

Nahlásit jako SPAM
IP: 213.211.51.–
Pavel
~ Anonymní uživatel
383 příspěvků
20. 11. 2020   #3
-
0
-

Krom toho odsazení, bys měl ošetřit vstup čísel 0 a 1, které nejsou prvočísla. 

Ještě taková drobnost, tenhle algoritmus funguje OK, ale prochází zbytečně mnoho hodnot.

Nakonec, a tohle už je trochu hnidopišství, doporučuju se podívat na https://www.python.org/dev/peps/pep-0008/

Nahlásit jako SPAM
IP: 46.13.186.–
shockwave
~ Anonymní uživatel
107 příspěvků
20. 11. 2020   #4
-
0
-

#1 shockwave
mi to porad vypisuje None

Nahlásit jako SPAM
IP: 212.4.155.–
Pavel
~ Anonymní uživatel
383 příspěvků
20. 11. 2020   #5
-
0
-

   

def is_prime(number):
    for x in range(2, number):
        if (number % x == 0):
            return False
    return True
Nahlásit jako SPAM
IP: 46.13.186.–
Pavel
~ Anonymní uživatel
383 příspěvků
20. 11. 2020   #6
-
0
-

Časově úspornější varianta:

from math import isqrt  # isqrt, Python 3.8


def is_prime(number):
    if number < 2:
        return False
    for x in range(2, isqrt(number) + 1):  
	if not number % x:
	    return False
    return True
Nahlásit jako SPAM
IP: 46.13.186.–
shockwave
~ Anonymní uživatel
107 příspěvků
20. 11. 2020   #7
-
0
-

Dekuji moc #5 Pavel
Jen aby jste mi rozumeli, jsem samouk a v ucebnici maji kod napsan prasacky, s editaci  kodu se nikdo moc neobtezoval: t(akhle to vypada v ucebnici)

def checkIfPrime (numberToCheck): for x in range(2,
numberToCheck): if (numberToCheck%x == 0):
return False return True

Jen kdyby mi jeste nekdo prosim pomohl pochopit proc ve vnitrni casti kodu  f(numberToCheck%x == 0):je False

a u vnejsi casti kodu je True, jakoze cislo je prvnocislo, pokud je  numberToCheck%x nerovno 0, chapu dobre ?

K druhe casti dotazu, kod jsem dal do souboru prime.py, cesta k souboru je v mem pripade: /home/asus-josef/Plocha/prime.py  Jde mi o to,lze soubor spustit i z terminalove radky v Linuxu  (ne  jen napr. z IDLE nebo jineho IDE )? Dekuji moc za pomoc

Nahlásit jako SPAM
IP: 212.4.155.–
Pavel
~ Anonymní uživatel
383 příspěvků
20. 11. 2020   #8
-
0
-

% je modulo operátor, tedy vrací zbytek po dělení, pokud platí numberToCheck % x == 0, znamená to že dané číslo je dělitelné x beze zbytku, a tedy není prvočíslo, tudíž vracíš/return False.

Pokud ve vnitřním for cyklu nevrátíš False, tedy žádné x v intervalu <2, cislo) není dělitelem toho čísla, narazil jsi na prvočíslo a vracíš True.

Nahlásit jako SPAM
IP: 46.13.186.–
Pavel
~ Anonymní uživatel
383 příspěvků
20. 11. 2020   #9
-
0
-

V linuxu se .py skript spouští tuším: python3 /home/asus-josef/Plocha/prime.py

Nahlásit jako SPAM
IP: 46.13.186.–
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, 2 hosté

Podobná vlákna

Pomoc s kodem — založil Shockwave

Pomoc s kodem — založil ask@t

Exception, pomoc s kodem — založil shockwave

Pomoc s kodem, subquery, ALL — založil shockwave

 

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