Att använda text i kod

REPETITION

Förra veckan introducerade vi fyra olika datatyper:

  • int – som är heltal
  • float – som är decimaltal
  • boolean – det som antingen är True eller False
  • string – det som är texter

Vi visade också några av de operationer man kan utföra på int och float för att göra beräkningar.
Denna gång tittar vi närmare på strängar. Vad är en sträng?

 

STRÄNG – EN DATATYP FÖR TEXT

En sträng är en datatyp som kan lagra text. Man kan känna igen strängar i koden på att de skrivs omslutna av citationstecken “”.
Allt innanför ” ” blir av sträng-typ, även siffror. Här är några exempel på strängar som tilldelas till olika variabler:
min_variabel = "Marcus"
min_andra_variabel = "9"
min_tredje_variabel = "Här är en lång mening med massa text"

Operatorer man kan använda med strängar

Precis som med heltal och decimaltal, kan man använda operatorerna (+) och (*) tillsammans med strängar. Men eftersom strängar innehåller text och inte siffror, måste man vara beredd på att dessa operationer beter sig lite annorlunda här.

Konkatenering av strängar

Genom att använda operationen för addition (+), så kan man slå samman två strängar med varandra, s.k konkatenering.  T.ex:
print("kod" + "stund") ger utskriften: kodstund

Så det kan bli förvirrande om man använder siffor med “” för då behandlas de som sträng-typer. T.ex:
print("9" + "9") ger utskriften: 99 , vilket kanske inte är vad man väntar sig.

Om vi istället hade använt oss av heltal hade det blivit såhär:
print(9 + 9) ger utskriften: 18

Upprepning av strängar

När vi multiplicerar en sträng med ett heltal, gör det att strängen upprepas flera gånger efter varandra. Tex:
print("ha" * 3) ger utskriften: hahaha , och
print("9" * 2) ger utskriften: 99 , medan
print(9 * 2) ger utskriften: 18

 

INPUT() – GÖR ATT VI KAN MATA IN TEXT I VÅRA PROGRAM

Input är en funktion man kan använda för att göra sin kod och sitt program mer interaktivt. Med input kan man tex ställa en fråga till programmets användare, låta användaren skriva in en text som svar på frågan, och sedan spara undan denna text i en variabel.
namn = input("Vad heter du?")
print("Hej! " + namn) , lägg märke till blanksteget mellan ! och “.

Om man vill skriva i ett tal istället då? Och kanske göra en beräkning på det och skriva ut?
tal = input("Skriv ett tal:")
print(tal * 2) 
, detta funkar ej!
Då typen som sparas i variabeln tal blir en sträng-typ oavsett om du skriver en siffra så som 9. Så hur löser man det? Jo! Med typkonvertering.

 

TYPKONVERTERING – LÅTER OSS ÄNDRA FRÅN EN DATATYP TILL EN ANNAN

Från strängar till siffertyper

Funktionen input ger oss en sträng, men om vi vill använda siffror i strängen för beräkningar, måste vi typkonvertera den. Tex:
tal = int(input("Skriv ett tal:"))
print(tal * 2)
 kommer då ge oss en fungerande utskrift!

För att konvertera en sträng till ett heltal omsluter man strängen med int( ).
För att konvertera en sträng till ett decimaltal omsluter man strängen med float( ).

Från siffertyper till strängar

Om man istället för att konvertera en sträng-typ till ett heltal vill konvertera ett tal till en sträng-typ, omsluter man siffran med str( ). Tex:
alder = 27.5
print("Jag är " + alder) 
, detta funkar ej!
Istället typkonverterar vi på följande vis:
alder = 27.5
print("Jag är " + str(alder))

 

IMPORTERA BIBLIOTEK – LÅTER OSS GÖRA MER AVANCERADE SAKER

För att klara veckans uppgift behöver vi ta hjälp av en funktion som kan beräkna roten ur. Var hittar vi en sådan? Vi skulle kunna definera en egen, men det är både tidsödande och onödigt krångligt. Det finns nämligen färdiga funktioner att använda i s.k bibliotek så man slipper! Vi skall använda ett bibliotek som innehåller massor av spännande matematiska funktioner, nämligen math.

För att använda ett bibliotek så skriver helt enkelt på följande sätt överst i sitt program:
import math
Det är allt! Nu kan vi börja använda dess funktioner, mer specifikt den vi behöver för att räkna ut roten ur uttryck. Då skriver vi så här:
math.sqrt(25) , detta räknar ut roten ur 25. sqrt är en förkortning av engelskans squareroot som på svenska blir kvadratrot.
Om man är sugen på att se vilka fler funktioner som finns fördefinerade i biblioteket math kan man ta en titt på denna länken: math library

 

ANDRA RESURSER – LÄNKAR VI VISAT UNDER FRÅGSTUNDEN

För att få till en cm² i sin kod kan man helt enkelt besöka denna länken för ASCII tecken . Där kan man bläddra bland de olika tecknen och för att få in det i din sträng kan du helt enkelt ‘kopiera’ tecknet och sedan ‘klistra in’ där du vill ha det. Om du vill skriva det i kod gör du på följande vis:

print("Arean på triangeln är 10 cm" + chr(178))

Där 178 är ASCII numret för ² .

Vi använde också en inbyggd funktion för att avrunda ett decimaltal, round(). Detta är en inbyggd funktion som man inte behöver importera för att använda, likt str(), int() och input() som vi redan använt!

För att se fler inbyggda funktioner kan man gå till denna länken: inbyggda funktioner

 

VECKANS ÖVNING – TRIANGELBERÄKNINGAR

Denna veckan skall vi öva lite på det vi lärt oss hittills under kursen. Vi skall göra ett interaktivt program där man skriver in värden för delarna av en rätvinklig triangel, räknar ut arean samt längden av hypotenusan och sedan konkatenerar det i en sträng med svaret som vi sedan skriver ut.

  1. Börja med att importera biblioteket för matematik på andra raden
  2. Definera sedan en variabel för basen till en rätvinklig triangel och fyll i där det finns ‘?’
  3. Gör samma sak för höjden
  4. Fyll i uträkningen av variabeln ‘area’
  5. Skapa en ny variabel för hypotenusan på raden under ‘area’ variabeln, använd dig av math.sqrt(???).
  6. math.sqrt() är en funktion för att räkna ut roten av uttrycket inom parentesen.
  7. Fyll i ??? för variabeln ‘svar’
  8. Slutligen, skriv ut svaret med hjälp av print()-funktionen

SEE ALL Add a note
YOU
Add your Comment