Kezdőoldal » Számítástechnika » Programozás » Programozók! Ezt a feladatot...

Nopeman114 kérdése:

Programozók! Ezt a feladatot hogy tudnám szebben megírni?

Figyelt kérdés

import math


f = open("függvénytábla.txt", "w")

angle = float(input("adjon meg egy szöget: "))



f.write(str(angle))

f.write("° sin: ")

f.write(str(round(math.sin(angle),4)))

f.write("\n")


f.write(str(angle))

f.write("° cos: ")

f.write(str(round(math.cos(angle),4)))

f.write("\n")


f.write(str(angle))

f.write("° tan: ")

f.write(str(round(math.tan(angle),4)))

f.write("\n")



f.write(str(angle))

f.write("° ctg: ")

f.write(str(round(1/math.tan(angle),4)))



#f.write(angle,"° cos:",round(math.cos(angle),4))

#f.write(angle,"° tan:",round(math.tan(angle),4))

#f.write(angle,"° ctg:",round(1/math.tan(angle),4))



f.close()


Még kezdő vagyok nagyon. Szerintem for cikklussal meg lehetett volna csinálni, hogy ne legyen ennyi "f.write" a kódban, de nem jöttem rá hogyan.



2020. ápr. 23. 10:41
1 2
 1/18 anonim ***** válasza:
100%
Csinálj egy függvényt az ismétlődő kódból, aminek a bemenete az angle.
2020. ápr. 23. 11:08
Hasznos számodra ez a válasz?
 2/18 anonim ***** válasza:

Nem nagyon tudod szebben megcsinálni, mert az fwrite-okat muszáj megírni.

A for ciklus nem jó ide, mert minden egységben más a szöveg és az érték kiszámolás módja is.


Írhatsz egy függvény, hogy printline(angle, type, value, needNewLine) paraméterekkel, az kicsit segít.

Mondjuk így:


printline(angle, type, value, needNewLine)

f.write(str(angle))

f.write("° "+type+": ")

f.write(str(value))

if (needNewLine)

f.write("\n")



f = open("függvénytábla.txt", "w")

angle = float(input("adjon meg egy szöget: "))

printline(angle, "sin", round(math.sin(angle),4), true)

printline(angle, "cos", round(math.cos(angle),4), true)

printline(angle, "tan", round(math.tan(angle),4), true)

printline(angle, "ctg", round(1/math.tan(angle),4), false)

f.close()

2020. ápr. 23. 12:22
Hasznos számodra ez a válasz?
 3/18 anonim ***** válasza:

#2 mi értelme az angle-n kívül a másik 3 paraméternek és meghívni 4x a függvényt, ha úgyis ki kell írni mindent?

Nem elég ha átadod az angle-t, meghívod 1x a függvényt és az kiír minden szükséges eredményt?

2020. ápr. 23. 12:45
Hasznos számodra ez a válasz?
 4/18 anonim ***** válasza:

"Nem elég ha átadod az angle-t, meghívod 1x a függvényt és az kiír minden szükséges eredményt?"


Akkor pont ugyanott vagy, mint az eredeti feladatban.


A függvény kiemelés lényege pont az a példámban, hogy a kiírás az nem számol, nem csinál semmit, ami nem rá tartozik. Csak kiír és kész.

2020. ápr. 23. 12:55
Hasznos számodra ez a válasz?
 5/18 anonim ***** válasza:
CASE-zel.
2020. ápr. 23. 14:20
Hasznos számodra ez a válasz?
 6/18 anonim ***** válasza:

A függvény használata jó ötlet.

Sőt, többágú szelekcióval megspékelve még egy ciklusba is beágyazható.


Példa:

[link]

(tipp: a Pythonban a trigonometrikus függvények radiánban számolnak!)

2020. ápr. 23. 15:58
Hasznos számodra ez a válasz?
 7/18 A kérdező kommentje:
Köszi mindenkinek, az utolsónak kiváltképp. Ha nem szól hibásan küldöm be😂
2020. ápr. 23. 18:23
 8/18 anonim ***** válasza:
Az is elegáns megoldás, ha magukat a függvényeket (azokra mutató referenciákat) teszed egy tömbbe, és azokat mint tömb-elemeket hívod meg.
2020. ápr. 24. 01:33
Hasznos számodra ez a válasz?
 9/18 anonim ***** válasza:
0%
Még annyit tennék hozzá a többiek ötleteihez, hogy használd a string.format() függvényt, sokkal áttekinthetőbb lesz. Az szerintem sokat segítene még az eredeti megoldásodon is.
2020. ápr. 24. 08:49
Hasznos számodra ez a válasz?
 10/18 anonim ***** válasza:
52%
#9 a string.format használatának 3.6 óta max. korábbi Python verziókkal való kompatibilitás miatt lehet létjogosultsága, az f-string gyorsabb és átláthatóbb.
2020. ápr. 24. 09:07
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!