Jag har skrivit ett program för en kurs vars syfte är att räkna ut och presentera aktieinformation tagen från textfiler i ett kort program.
Jag har fått det att fungera fullt ut, men vad jag har förstått så måste programmet struktureras upp med hjälp av Klasser och ett huvudprogram. Jag har tidigare gjort detta för en mindre uppgift, men jag har ändå inte en susning om hur jag ska göra om mitt nuvarande program. Vore oerhört tacksam om någon kunde hjälpa mig med detta.
def huvudmeny():
print ("----------------Meny----------------")
print ("1. Fundamental analys")
print ("2. Teknisk analys")
print ("3. Rangordning av aktier med avseende på dess betavärde")
print ("4. Avsluta")
val = 0
while True:
try:
val = int(input("Vilket alternativ vill du välja? "));
if val == 1:
fundMeny()
elif val == 2:
tekMeny()
elif val == 3:
print ("\n---------Rangordning av aktier med avseende på dess betavärde---------")
rangordning()
elif val == 4:
exit()
else:
print ("\nSkriv in en siffra mellan 1 och 4")
except ValueError:
print ("\nDet måste vara en siffra!")
def fundMeny():
print ("\nEn fundamental analys kan utföras på följande aktier: ")
print ("1. Ericsson")
print ("2. Electrolux")
print ("3. AstraZeneca")
print ("4. Nokia")
print ("5. Tillbaka till huvudmenyn")
val = 0
while True:
try:
val = int(input("Vilken aktie vill du göra en fundamental analys på? "));
if val == 1:
print(fund("Ericsson"))
elif val == 2:
print(fund("Electrolux"))
elif val == 3:
print(fund("AstraZeneca"))
elif val == 4:
print(fund("Nokia"))
elif val == 5:
huvudmeny()
else:
print ("\nSkriv in en siffra mellan 1 och 4")
except ValueError:
print ("\nDet måste vara en siffra!")
def tekMeny():
print ("\nEn teknisk analys kan utföras för följande aktier:")
print ("1. Ericsson")
print ("2. Electrolux")
print ("3. AstraZeneca")
print ("4. Nokia")
print ("5. Tillbaka till huvudmenyn")
val = 0
while True:
try:
val = int(input("Vilken aktie vill du göra en teknisk analys på? "));
if val == 1:
print ("\n---------Teknisk analys för Ericsson---------" + "\n" + "Kursutveckling: " + "{:.1%}".format(-(1 - kursutveckling("Ericsson"))))
print(hogstaLagsta("Ericsson"))
print("Betavärde: " + "{0:.2f}".format(kursutveckling("Ericsson") / omx()))
elif val == 2:
print ("\n---------Teknisk analys för Eletrolux---------"+ "\n" + "Kursutveckling: " + "{:.1%}".format(-(1 - kursutveckling("Electrolux"))))
print(hogstaLagsta("Electrolux"))
print("Betavärde: " + "{0:.2f}".format(kursutveckling("Electrolux") / omx()))
elif val == 3:
print ("\n---------Teknisk analys för AstraZeneca---------"+ "\n" + "Kursutveckling: " + "{:.1%}".format(-(1 - kursutveckling("AstraZeneca"))))
print(hogstaLagsta("AstraZeneca"))
print("Betavärde: " + "{0:.2f}".format(kursutveckling("AstraZeneca") / omx()))
elif val == 4:
print ("\n---------Teknisk analys för Nokia---------"+ "\n" + "Kursutveckling: " + "{:.1%}".format(-(1 - kursutveckling("Nokia"))))
print(hogstaLagsta("Nokia"))
print("Betavärde: " + "{0:.2f}".format(kursutveckling("Nokia") / omx()))
elif val == 5:
huvudmeny()
else:
print ("\nSkriv in en siffra mellan 1 och 4")
except ValueError:
print ("\nDet måste vara en siffra!")
def rangordning():
lista = [["Ericsson", kursutveckling("Ericsson") / omx()],
["Electrolux", kursutveckling("Electrolux") / omx()],
["AstraZeneca", kursutveckling("AstraZeneca") / omx()],
["Nokia", kursutveckling("Nokia") / omx()]]
lista.sort(key=lambda x: x[1], reverse=True);
for i in range(0,len(lista)):
print(str(i + 1) + ". " + str(lista[i][0]) + " " + str("{0:.2f}".format(lista[i][1])))
def fund(aktie) :
infil = open("fundamenta.txt","r")
data = infil.readline()
data = infil.readline()
while data != "":
data = data.rstrip("\n")
if data == aktie:
data = data.rstrip("\n")
fundData = "\n---------Fundamental analys för " + data + "---------" + "\n"
data = infil.readline()
fundData = fundData + "Företagets soliditet är " + data
data = infil.readline()
fundData = fundData + "Företagets p/e-tal är " + data
data = infil.readline()
fundData = fundData + "Företagets p/s-tal " + data
data = infil.readline()
infil.close()
return fundData
def kursutveckling(aktie):
infil = open("kurser.txt","r")
data = infil.readline()
data = infil.readline()
while data != "":
data = data.rstrip("\n")
if data == aktie:
data = infil.readline()
data = data.rstrip("\n")
data = data.split("\t")
forstaVarde = float(data[1])
for dag in range(1,30):
data = infil.readline()
data = data.rstrip("\n")
data = data.split("\t")
sistaVarde = float(data[1])
data = infil.readline()
infil.close()
kurs = sistaVarde/forstaVarde
return(kurs)
def hogstaLagsta(aktie):
infil = open("kurser.txt","r")
data = infil.readline()
data = infil.readline()
while data != "":
data = data.rstrip("\n")
if data == aktie:
data = infil.readline()
data = data.rstrip("\n")
data = data.split("\t")
hogsta = float(data[1])
lagsta = float(data[1])
for dag in range(1,30):
data = infil.readline()
data = data.rstrip("\n")
data = data.split("\t")
if hogsta < float(data[1]):
hogsta = float(data[1])
if lagsta > float(data[1]):
lagsta = float(data[1])
data = infil.readline()
infil.close()
return("Högsta: " + str(hogsta) + "\n" + "Lägsta: " + str(lagsta))
def omx():
infil = open("omx.txt","r")
data = infil.readline()
data = infil.readline()
data = data.rstrip("\n")
data = data.split("\t")
forstaVarde = float(data[1])
for dag in range(1,30):
data = infil.readline()
data = data.rstrip("\n")
data = data.split("\t")
sistaVarde = float(data[1])
infil.close()
kurs = sistaVarde/forstaVarde
return(kurs)
huvudmeny()