Merkkijonot ja syöte
Merkkijono tarkoittaa tekstiä. Pythonissa merkkijono muodostetaan lainausmerkeillä: "tämä on merkkijono"
. Myös heittomerkkejä voi käyttää: 'tämäkin on merkkijono'
, mutta on parempi
käyttää lainausmerkkejä, sillä joissain muissa ohjelmointikielissä heittomerkkejä ei voi
käyttää merkkijonoon.
Merkkijonojen yhdistäminen
Merkkijonoja voi yhdistää +
-merkillä:
jono1 = "Hello"
jono2 = "World!"
print(jono1 + " " + jono2)
Hello World!
Merkkijonoja voi muokata myös kertomalla:
jono = "abc"
pitkajono = jono*5
print(pitkajono)
abcabcabcabcabc
Muiden datatyyppien yhdistäminen merkkijonoon
Jos haluat tulostaa tekstiä, joka sisältää muuttujan arvon, voit tehdä sen näin:
numero = 14
merkkijono = "numero: "
print(merkkijono + str(numero))
numero: 14
Merkkijonoa ei siis voi yhdistää suoraan toiseen datatyyppiin, vaan toinen datatyyppi
täytyy ensin muuntaa merkkijonoksi str
-funktiolla.
Tässä toinen tapa sisällyttää muuttujien arvoja merkkijonoihin:
num = 5
print(f"Numero on {num}.")
Numero on 5.
Merkkijonoja, joihin on tällä tavalla sisällytetty muuttujan arvo, sanotaan usein f-stringeiksi (string on merkkijono englanniksi). F-kirjain ennen merkkijonoa tarkoittaa siis sitä, että merkkijonon sisäisiä aaltosulkeita ei käsitellä tavallisina merkkeinä, vaan niiden sisällä on koodia (esimerkiksi muuttujan nimi), joka muunnetaan osaksi merkkijonoa.
Käyttäjän syöte
Jos haluat pyytää käyttäjää kirjoittamaan jonkun syötteen, jotta voit käyttää sitä koodissasi,
tämä onnistuu input
-komennolla.
syote = input("Anna jokin syöte: ")
print(syote)
Kun tämän koodin ajaa, niin käyttäjältä kysytään syötettä. Käyttäjä voi kirjoittaa jotain ja painaa enteriä, ja sitten tämä syöte tallentuu muuttujaan syote, joka tulostetaan seuraavalla rivillä.
Käyttäjän syöttämä teksti tallentuu aina merkkijonona, vaikka syöte koostuisi numeroista. Jos
haluat muuntaa merkkijonon numeroksi, käytä joko int
- tai float
-funktiota (int muuntaa
merkkijonon kokonaisluvuksi ja float desimaaliluvuksi):
n1 = input("Anna numero: ")
n2 = input("Anna toinen numero: ")
summa = int(n1) + int(n2)
print(f"Lukujen summa on {summa}.")
Tehtävät
Yhdistä kaksi merkkijonoa plussaamalla ja tulosta lopputulos.
yhdistelma = "abc" + "def"
print(yhdistelma)
Yhdistä kaksi merkkijonoa plussaamalla. Tulosta lopputulos kerrottuna kolmella.
yhdistelma = "abc" + "def"
print(yhdistelma*3)
Tallenna muuttujaan jokin arvo, joka ei ole merkkijono (esimerkiksi numero). Tulosta tämän muuttujan arvo osana jotakin merkkijonoa.
paidanHinta = 20
# vaihtoehto 1
print("Paita maksaa " + str(paidanHinta) + " euroa.")
# vaihtoehto 2
print(f"Paita maksaa {paidanHinta} euroa.")
Kysy käyttäjältä ikää ja tallenna se muuttujaan. Tulosta ikä osana merkkijonoa.
ika = input("Minkä ikäinen olet? ")
print(f"Olet {ika} vuotta vanha.")