Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Tyyppimuunnoksen Perusteet | Ristikkäistyyppiset Vuorovaikutukset
Tietotyypit Pythonissa

bookTyyppimuunnoksen Perusteet

Pyyhkäise näyttääksesi valikon

Tyyppimuunnos mahdollistaa siirtymisen Pythonin perusdatatyyppien välillä, jotta arvoja voidaan vertailla, laskea tai esittää.

Muuntaminen int-tyyppiin

int(x) luo kokonaisluvun.

  • Kokonaisluvusta: palauttaa saman luvun;
  • Liukuluvusta: katkaisee kohti nollaa (esimerkiksi, int(2.9) palauttaa 2, int(-2.9) palauttaa -2);
  • Merkkijonosta: merkkijonon täytyy esittää kokonaislukua (valinnaiset välilyönnit ja etumerkki sallittu). Python sallii myös alaviivat numeroiden sisällä, kuten "1_000" — mutta vain jos:
  • Alaviiva on numeroiden välissä;
  • Se ei ole alussa tai lopussa ("_100", "100_");
  • Sitä ei toisteta tai se ei ole desimaalipisteen vieressä ("1__000", "1_.5").

Sallitut muunnokset

1234567
age_input = " 42 " print(int(age_input)) # 42 print(int(2.9)) # 2 print(int(-2.9)) # -2 print(int("7")) # 7 print(int(" -15 ")) # -15 print(int("1_00_0")) # 1000
copy

Nämä aiheuttavat ValueError-virheen

12
int("2.5") # ValueError - not an integer string int("42a") # ValueError
copy

Muuntaminen float-tyyppiin

float(x) luo liukuluvun.

  • Toimii kokonaisluvuille sekä desimaali- tai tieteellisessä muodossa oleville merkkijonoille ("3.14", "1e2", "5E-3");
  • Pilkut eivät ole desimaalipisteitä Pythonissa ("2,5", "2.5");
  • Python sallii alaviivat numeroiden sisällä numeerisissa merkkijonoissa, mutta vain jos:
  • Alaviiva on numeroiden välissä;
  • Se ei ole alussa tai lopussa ("_3.14", "3.14_");
  • Se ei ole desimaalipisteen vieressä tai toistu peräkkäin ("3_.14", "3.__14");
  • Tieteellisessä muodossa tulee noudattaa samoja sääntöjä ("1e_3").

Sallitut muunnokset

1234
print(float(3)) # 3.0 print(float("2.5")) # 2.5 print(float("1e3")) # 1000.0 print(float("1_000.1_234")) # 1000.1234
copy

Nämä aiheuttavat ValueError-virheen

1
float("2,5") # ValueError - use a dot, not a comma
copy

Muuntaminen str-tyyppiin

str(x) luo ihmisen luettavissa olevan merkkijonoesityksen. Suosi f-merkkijonoja viestien rakentamisessa.

123
print(str(42)) # "42" print(str(3.5)) # "3.5" print(f"Ada scored {98} points.")
copy

Muuntaminen bool-tyyppiin

bool(x) noudattaa Pythonin totuusarvosääntöjä.

  • Numerot: 0 on False, mikä tahansa muu numero on True;
  • Merkkijonot: "" (tyhjä) on False, mikä tahansa ei-tyhjä merkkijono on True (myös "0" ja "False").
12345
print(bool(0)) # False print(bool(7)) # True print(bool("")) # False print(bool("0")) # True print(bool("False")) # True
copy

Vältettävät virheet

  • int("2.5") aiheuttaa ValueError-virheen – käytä ensin float(), sitten katkaise tai pyöristä;
  • Paikallinen tapa: "2,5" on virheellinen – käytä "2.5";
  • Totuusarvon yllätys: bool("0") on True – vertaa merkkijonon sisältöä tarvittaessa eksplisiittisesti, esimerkiksi s == "0".

1. Mikä kutsu aiheuttaa ValueError-virheen?

2. Valitse oikea väittämä.

question mark

Mikä kutsu aiheuttaa ValueError-virheen?

Select the correct answer

question mark

Valitse oikea väittämä.

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 1

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 4. Luku 1
some-alt