Meg lehet oldani ezeket újabb függvények használata nélkül?
win7 Python 3.7 Idle
Egy olyan programot csináltam, ami kiadja, hogy az adott szám negatív vagy pozitív-e, esetleg nulla. Print, int, float, str, input, if, else függvényeket használtam csak.
Az egyetlen hiba, hogy egész szám esetén lebegőpontos számként adja ki a számot a kimenetnél.
x = float(input("x = "))
if x>0:
print(str(x)+' is positive')
else:
if x==0:
print(str(x)+' is a neutral number, so it is neither positive nor negative')
else:
if x<0:
print(str(x)+' is negative')
Illetve egy olyan programot is csináltam, ami megállapítja, hogy egy szám tört vagy egész szám-e.
x = float(input("x = "))
y = int(x)
if x==y:
print(str(x)+' is integer')
else:
print(str(x)+' is fraction')
De itt megint az a gond, mint az előbbinél. Az egész számokat lebegőpontosan adja ki.
Hogyan lehetne megoldani ezen függvények használatával, hogy ne lebegőpontosan adja ki?
Köszönöm szépen a válaszokat.
Ui.: Találtam jegyzeteket, azokból tanulok, az iménti rövidke kódokat is én magam írtam :) A következő feladat az lenne, hogy a program állapítsa meg egy számról, hogy prímszám-e, ugyanezen függvények használatával (amennyiben ez lehetséges a while függvény használata nélkül).
Az egészesnél irasd ki str(y)-t és akkor 5-öt fog kiírni nem 5.0-t.
A másiknál meg nem kell az else ág else ágába még egy if.
Elég
if x>0:
#pozitiv
elif x<0:
#negativ
else:
#ha nem poz vagy neg, akkor 0
Új függvények helyett használd a string osztály format metódusát vagy a százalékjel (%) operátort, ha az még belefér.
Ha az x értékét az elején float-tá alakítod, akkor természetesen float-ként fog megjelenni, mivel te alakítottad azzá. Ha az egész értékű float-ot egészként akarod megjeleníteni, akkor ellenőrizned kell külön, hogy egész szám-e (mint ahogy meg is tetted), és ezután alkalmaznod kell rá az int függvényt.
Prímszám ellenőrzéshez mindenképp célszerű lesz for vagy while ciklust alkalmazni.
"Az egészesnél irasd ki str(y)-t és akkor 5-öt fog kiírni nem 5.0-t."
Köszi, így tényleg egyszerűbb :) Viszont közben én is megoldottam a saját módszeremmel :)
Tehát tulajdonképpen kétféle módon is meg lehetett oldani.
A másikra is találtam megoldást :)
Kérlek nézzétek meg, hogy meg lehet-e oldani egyszerűbben, nekem így sikeredett.
if-elif-else -nél többre szerintem továbbra sincs szükség.
print-et is elég egyszer kiírni, pl így.
x = float(input("x="))
if x==0:
msg = " neither positive or negative"
elif x>0:
msg = " is positive"
else:
msg = " is negative"
if x==int(x):
y=int(x)
else:
y=x
print(str(y)+msg)
Írtam egy olyan programot is, ami egy adott szám abszolút értékét adja ki. Nézzétek meg hogy sikerült.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!