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).
Illetve ez egy adott szám négyzetét és köbét adja ki:
Viszont ennél két probléma is van.
1. Nem tudok az inputba sorokat kihagyni az x = , x^2 , és az x^3 között. valahogy a \n-t kéne használni, csak kérdés hogy hogyan.
2. Illetve nem tudok műveletet írni az inputba. Tehát ha azt írom, hogy x = 3, akkor lefut a program. De ha azt írom, hogy 3+3, akkor már nem. Hogyan lehetne ezt a két problémát feloldani? (Természetesen magasabb fokú tudás nélkül, tehát kb. azon a szinten, ahol most vagyok.)
Ja, a négyzethez meg köbhöz itt van a kódolás, meg képen is elküldtem, hogy a behúzások látszódjanak.
x = float(input("x = "))
y1a = x**2
y1b = int(x**2)
y2a = x**3
y2b = int(x**3)
if y1a == y1b:
print('x^2 = '+str(int(x))+'^2 = '+str(y1b))
else:
print('x^2 = '+str(x)+'^2 = '+str(y1a))
if y2a == y2b:
print('x^3 = '+str(int(x))+'^3 = '+str(y2b))
else:
print('x^3 = '+str(x)+'^3 = '+str(y2a))
Az input() függvény egy stringgel tér vissza. Az int és a float függvény az int és float alakú stringeket képes átalakítani, olyat, hogy "3+3", nem fog tudni értelmezni. Nem fog műveleteket elvégezni.
Az első problémád pedig értelmetlenül van leírva, milyen inputról van szó? a print-ről? Mutatok egy trükköt, de már más is utalt rá. Ahelyett, hogy +-szal fűzögeted össze a string részleteket:
v1 = 3
v2 = 4
p = v1*v2
print("{0} * {1} = {2}".format(v1, v2, p))
vagy még egyszerűbben (vedd észre az f betűt az idézőjel előtt):
print(f"{v1} * {v2} = {p}")
Ha több sorosat akarsz, simán írd bele a stringbe (idézőjelek közé) a \n-t. Vagy használj háromszoros idézőjelet.
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!