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

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 sallitaan).

Sallitut muunnokset

12345678910
# Converting different types of user input to integers age_input = " 42 " temperature_reading = 2.9 negative_balance = -2.9 print(int(age_input)) # 42 → clean string converted to int print(int(temperature_reading)) # 2 → fractional part truncated print(int(negative_balance)) # -2 → also truncates toward zero print(int("7")) # 7 → string number becomes integer print(int(" -15 ")) # -15 → handles spaces and sign
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ä merkinnässä oleville merkkijonoille;
  • Pilkut eivät ole desimaalipisteitä Pythonissa.

Sallitut muunnokset

12345678
# Converting numeric inputs for a shopping calculator quantity = 3 price_str = "2.5" discount_factor = "1e3" # scientific notation for 1000 print(float(quantity)) # 3.0 → integer converted to float print(float(price_str)) # 2.5 → string price converted to float print(float(discount_factor)) # 1000.0 → converts from scientific notation
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.

12345678910
# Formatting a student's exam result student_age = 42 average_score = 3.5 print(str(student_age)) # "42" → number converted to string print(str(average_score)) # "3.5" → float converted to string student_name, final_score = "Ada", 98 report_message = f"{student_name} scored {final_score} points on the exam." print(report_message)
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").
123456789101112
# Checking how different user inputs behave as boolean values login_attempts = 0 notifications = 7 username = "" user_id = "0" status = "False" print(bool(login_attempts)) # False → 0 means no attempts yet print(bool(notifications)) # True → non-zero means new notifications print(bool(username)) # False → empty string means no username entered print(bool(user_id)) # True → any non-empty string is truthy print(bool(status)) # True → text "False" is still a non-empty string
copy

Vältettävät virheet

  • int("2.5") aiheuttaa ValueError-virheen – käytä ensin float(), sitten pyöristä tai katkaise;
  • Paikallinen tapa: "2,5" on virheellinen – käytä "2.5";
  • Alaviivat syötemerkkijonoissa: "1_000" on virheellinen – poista alaviivat ensin: "1_000".replace("_", "");
  • Totuusarvoyllätys: bool("0") on True – vertaa merkkijonon sisältöä suoraan tarvittaessa, esimerkiksi s == "0".

1. Mitä kukin rivi tuottaa?

2. Mikä kutsu aiheuttaa ValueError-poikkeuksen?

3. Valitse oikea väittämä.

question-icon

Mitä kukin rivi tuottaa?

int(3.9)
int(" -8 ")

bool("0")

Click or drag`n`drop items and fill in the blanks

question mark

Mikä kutsu aiheuttaa ValueError-poikkeuksen?

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

Awesome!

Completion rate improved to 3.45

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 sallitaan).

Sallitut muunnokset

12345678910
# Converting different types of user input to integers age_input = " 42 " temperature_reading = 2.9 negative_balance = -2.9 print(int(age_input)) # 42 → clean string converted to int print(int(temperature_reading)) # 2 → fractional part truncated print(int(negative_balance)) # -2 → also truncates toward zero print(int("7")) # 7 → string number becomes integer print(int(" -15 ")) # -15 → handles spaces and sign
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ä merkinnässä oleville merkkijonoille;
  • Pilkut eivät ole desimaalipisteitä Pythonissa.

Sallitut muunnokset

12345678
# Converting numeric inputs for a shopping calculator quantity = 3 price_str = "2.5" discount_factor = "1e3" # scientific notation for 1000 print(float(quantity)) # 3.0 → integer converted to float print(float(price_str)) # 2.5 → string price converted to float print(float(discount_factor)) # 1000.0 → converts from scientific notation
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.

12345678910
# Formatting a student's exam result student_age = 42 average_score = 3.5 print(str(student_age)) # "42" → number converted to string print(str(average_score)) # "3.5" → float converted to string student_name, final_score = "Ada", 98 report_message = f"{student_name} scored {final_score} points on the exam." print(report_message)
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").
123456789101112
# Checking how different user inputs behave as boolean values login_attempts = 0 notifications = 7 username = "" user_id = "0" status = "False" print(bool(login_attempts)) # False → 0 means no attempts yet print(bool(notifications)) # True → non-zero means new notifications print(bool(username)) # False → empty string means no username entered print(bool(user_id)) # True → any non-empty string is truthy print(bool(status)) # True → text "False" is still a non-empty string
copy

Vältettävät virheet

  • int("2.5") aiheuttaa ValueError-virheen – käytä ensin float(), sitten pyöristä tai katkaise;
  • Paikallinen tapa: "2,5" on virheellinen – käytä "2.5";
  • Alaviivat syötemerkkijonoissa: "1_000" on virheellinen – poista alaviivat ensin: "1_000".replace("_", "");
  • Totuusarvoyllätys: bool("0") on True – vertaa merkkijonon sisältöä suoraan tarvittaessa, esimerkiksi s == "0".

1. Mitä kukin rivi tuottaa?

2. Mikä kutsu aiheuttaa ValueError-poikkeuksen?

3. Valitse oikea väittämä.

question-icon

Mitä kukin rivi tuottaa?

int(3.9)
int(" -8 ")

bool("0")

Click or drag`n`drop items and fill in the blanks

question mark

Mikä kutsu aiheuttaa ValueError-poikkeuksen?

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
some-alt