Programozók! Ezt a feladatot hogy tudnám szebben megírni?
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.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
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()
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
#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?
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
"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.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
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:
(tipp: a Pythonban a trigonometrikus függvények radiánban számolnak!)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!