Ezt lehetne rövidebben? (Python)
x1, y1 = int(input("Számlaloja az első értéknek:")), int(input("Nevezője az első értéknek:"))
x2, y2 = int(input("Számlaloja az első értéknek:")), int(input("Nevezője az első értéknek:"))
print (f"{x1}/{y1} + {x2}/{y2} = {y2*x1}/{y2*y1} + {x2*y1}/{y1*y2} = {(y2*x1)+(x2*y1)}/{y1*y2}")





x1, y1 = int(input("Számlaloja az 1. értéknek:")), int(input("Nevezője az 1. értéknek:"))
x2, y2 = int(input("Számlaloja az 1. értéknek:")), int(input("Nevezője az 1. értéknek:"))
print (f"{x1}/{y1} + {x2}/{y2} = {y2*x1}/{y2*y1} + {x2*y1}/{y1*y2} = {(y2*x1)+(x2*y1)}/{y1*y2}")





Mit szeretnél rövidebben?
Sok a szorzás az f-stringben? Csinálj külön változókat, kettőt a két új számlálónak és egyet a közös nevezőnek.
Hosszú a string? Használj több print-et (az end paramétert állítsd át hogy ne újsorral végződjön) vagy több f-stringet külön sorokban (lehetőleg nem összefűzve hanem külön argumentumként, mert kicsit antipattern stringeket összefűzni a printben...).
Hosszú a bekérő szöveg? Csináld úgy, ahogy a 2-es írta 😁 (és javítsd ki a második sorban, hogy nem első, hanem második)
Még mindig hosszú? Szervezd ki a bekérést egy függvénybe, ami a két számmal tér vissza, a paraméter a sorszám legyen amit beraksz a stringbe (1, 2, vagy "első", "második"...)





Ha nagyon-nagyon meg akarod eroszakolni a nyelvet, akkor ezt csinalhatod:
[(x1, y1),(x2, y2)] = [(int(input(f"Számlaloja a(z) {x} erteknek:")), int(input("Nevezője a(z) {x} értéknek:"))) for x in range(1,3)]
print (f"{x1}/{y1} + {x2}/{y2} = {y2*x1}/{y2*y1} + {x2*y1}/{y1*y2} = {(y2*x1)+(x2*y1)}/{y1*y2}")
De en is inkabb "hosszabbitanam", hogy konnyebben olvashato legyen.





Igen. Pl. Az első érték számlálója, Az első érték nevezője.
Rövidebb is és magyarosabb is.





Bár egy iszonyatosan durva, és felesleges megoldás, szerintem legfeljebb a matematikai elemeket tudod összevonni változók alá.
a = {x1}
b = {y1}
c = {x2}
d = {y2}
ad = {a*d}
bd = {b*d}
bc = {b*c}
print(f"a/b + c/d = ad/bd + bc/bd = (ad+bc)/bd")
Matematikailag ennél többet nem nagyon tehetsz, hogy a fizikálisan rövidebbre vedd. Ráadásul programozási szempontból ez talán még átláthatatlanabb és rosszabb megoldás.
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!