ÖVNINGSUPPGIFT

Uppgift 5 – Pythagoras sats i Python

Försök själv först. Ledtrådar och facit finns längre ner – helt utan inloggning.


Nyckelord: Pythagoras, Datatyp

Skapa Pythagoras sats i Python

I denna uppgift ska vi programmera Pythagoras sats för att beräkna längden av hypotenusan på en rätvinklig triangel. Pythagoras sats säger:

a2 + b2 = c2

Där vinkeln mellan katet a och katet b är rätvinklig (90 grader).

Input från användaren

Använd funktionen input() för att ta input från användaren. Programmet ska först fråga användaren vad längden på katet a är. När längden har angivits ska programmet direkt fråga vad längden på katet b är. Om du behöver repetition på hur man använder funktionen input() så kan du läsa avsnittet: Input i Python.

  • Fråga användaren vad längden på katet a är och vänta på input från användaren. Spara inputen som ett flyttal.
  • Fråga användaren vad längden på katet b är och vänta på input från användaren. Spara inputen som ett flyttal.
Ledtråd

Använd funktionen input för att spara ett värde från användaren:

a = input("Ange värde: ")

Ett flyttal (float) kan sedan sparas med:

a = float(a)

Beräkna Pythagoras sats med hjälp av modulen math

Använd klassen math för att beräkna Pythagoras sats. Läs avsnittet Matematiska operationer i Python med math för att repetera hur du använder dig av av funktionena upphöjt med och roten ur. Programmet ska fråga efter längderna på de två kateterna och sedan skriva ut längden på hypotenusan.

Ledtråd

Använd klassen math för att beräkna kvadraten (pow) och roten ur (sqrt) med följande kod:

math.pow(a, 2)
math.sqrt(a)
Lösning

Svar:

Notera att detta är ett sätt att lösa uppgiften på och att det finns flera andra sätt att lösa uppgiften på!

import math

# Fråga användaren om längden på katet a.
a = input("Ange längden på katet a: ")

# Konvertera värdet till ett flyttal (float)
a = float(a)

# Fråga användaren om längden på katet b
b = input("Ange längden på katet b: ")

# Konvertera värdet till ett flyttal (float)
b = float(b)

# Beräkna hypotenusan
hyp = math.sqrt(math.pow(a, 2) + math.pow(b, 2))

# Skriv ut resultatet
print(f"Längden på hypotenusan är: {hyp}")

Utskriften blir exempelvis:

Ange längden på katet a:
5
Ange längden på katet b:
2
Längden på hypotenusan är: 5.385164807134504

Förklaring: 

Först importerar vi paketet math som innehåller matematiska funktioner som underlättar beräkningarna.

import math

Vi ber användaren om en input med funktionen input().

a = input("Ange längden på katet a: ")

Vi använder float() för att formatera inputen från en textsträng (String) till ett flyttal (float). Notera att om användaren hade skickat in en input som inte hade gått att formatera till ett flyttal så hade programmet kraschat. Exempelvis hade följande kod kraschat för att det inte går att formatera textsträngen "Hej" till en siffra.

a = float("Hej")  # Ger ValueError

Vi antar att användaren skickar in värden i rätt format i denna uppgift.

Vi beräknar upphöjt med hjälp av funktionen pow i klassen math:

math.pow(a, 2); # a^2

Och roten ur med funktionen sqrt i modulen math:

math.sqrt(a);