Gemensam programmering, m06u01

Idag ägnade vi större delen av lektionen till att tillsammans lösa uppgift m06u01 där vi fick testa på att jobba med externa paket och även kika på hur vi kan använda listor i andra listor.

Här följer koden som nu är utförligt kommenterad.

import numpy as np

# lista som lagrar de olika polynomen
polynomen = []

def print_polynom(lista):
    """
    Funktion som skriver ut polynomet och kvadraten av polynomet.
    :param lista:   lista att göra polynom av
    :return:        inget
    """
    polynom = np.poly1d(lista)
    polynom_kvadrat = polynom ** 2
    print("\nPolynomet:\n{}\nPolynomet i kvadrat:\n{}".format(polynom, polynom_kvadrat))


print('Välkommen till fusk_2000. I denna applikation skall du ange fyra polynom som kvadreras och skrivs ut.')

# Yttre loop som körs fyra gånger
for i in range(4):
    print("\nKonstruerar polynom {}".format(i+1))
    # Räknare som räknar hur många tal som matas in i varje polynom
    tal = 0
    # Inre loop som tar hand om varje specifikt polynom
    while True:
        tal = tal + 1
        # try-konstruktion för att kunna hantera felaktiga inmatningar som skall avbryta inmatningen
        try:
            svar = int(input("Ange heltalskoefficient {}, ange något annat för att avbryta: ".format(tal)))
            # Om tal är 1 så är det den första koefficienten i ett specifikt polynom...
            if tal == 1:
                # Och då måste en ny komponent med en lista skapas i listan "polynomen"
                polynomen.append([])
            # Lägg sedan till värdet i en ny komponent i listan polynomen[i]
            polynomen[i].append(svar)
        # Om konverteringen till ett heltal på rad 29 misslyckades så fångas felet upp här...
        except:
            # ... och break gör att loopen som startar på rad 25 avbryts
            break

# loopa igenom polynomen och skicka varje lista till funktionen
for p in polynomen:
    print_polynom(p)

Lämna ett svar

Your email address will not be published.

Denna webbplats använder Akismet för att minska skräppost. Lär dig hur din kommentardata bearbetas.