Tyyppimuunnoksen 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)palauttaa2,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
Nämä aiheuttavat ValueError-virheen
12int("2.5") # ValueError - not an integer string int("42a") # ValueError
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
Nämä aiheuttavat ValueError-virheen
1float("2,5") # ValueError - use a dot, not a comma
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)
Muuntaminen bool-tyyppiin
bool(x) noudattaa Pythonin totuusarvosääntöjä.
- Numerot:
0onFalse, mikä tahansa muu numero onTrue; - Merkkijonot:
""(tyhjä) onFalse, mikä tahansa ei-tyhjä merkkijono onTrue(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
Vältettävät virheet
int("2.5")aiheuttaaValueError-virheen – käytä ensinfloat(), 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")onTrue– vertaa merkkijonon sisältöä suoraan tarvittaessa, esimerkiksis == "0".
1. Mitä kukin rivi tuottaa?
2. Mikä kutsu aiheuttaa ValueError-poikkeuksen?
3. Valitse oikea väittämä.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.45
Tyyppimuunnoksen 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)palauttaa2,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
Nämä aiheuttavat ValueError-virheen
12int("2.5") # ValueError - not an integer string int("42a") # ValueError
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
Nämä aiheuttavat ValueError-virheen
1float("2,5") # ValueError - use a dot, not a comma
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)
Muuntaminen bool-tyyppiin
bool(x) noudattaa Pythonin totuusarvosääntöjä.
- Numerot:
0onFalse, mikä tahansa muu numero onTrue; - Merkkijonot:
""(tyhjä) onFalse, mikä tahansa ei-tyhjä merkkijono onTrue(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
Vältettävät virheet
int("2.5")aiheuttaaValueError-virheen – käytä ensinfloat(), 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")onTrue– vertaa merkkijonon sisältöä suoraan tarvittaessa, esimerkiksis == "0".
1. Mitä kukin rivi tuottaa?
2. Mikä kutsu aiheuttaa ValueError-poikkeuksen?
3. Valitse oikea väittämä.
Kiitos palautteestasi!