Vadovėlis/Kas čia eina?
Įvestis ir kintamieji

Jaučiu, kad atėjo laikas tikrai sudėtingai programai. Štai ji:
print("Stop!") vartotojo_įvestis = input("Kas čia eina? ") print("Gali praeiti,", vartotojo_įvestis )
Kai aš paleidau programą, štai ką mano ekranas parodė:
Stop! Kas čia eina? Benas Gali praeiti, Benas
Pastaba: Jei paleisi kodą spausdamas "F5", Python išvestis bus tik tokia:
Stop! Kas čia eina?
Tu turi įvesti savo vardą į Python apvalkalą ir tada paspausti enter norėdama/s pamatyt likusį tekstą.
Žinoma, kai tu paleisi programą, tavo ekranas atrodys kitaip dėl input()
užklausos.
Kai paleidai programą (juk paleidai, tiesa?), tu turėjai surinkti savo vardą ir tada paspausti Enter.
Programa atspausdino dalį teksto ir tavo vardą. Taip atrodo įvesties pavyzdys.
Programa pasiekia tam tikrą kodo tašką ir laukia vartotojo įvesties, kad duomenis galėtų panaudoti tolimesniuose procesuose.
Žinoma, gauti informaciją iš vartotojo pasaulio nieko verta, jei tos informacijos nėra kur padėti. Ir šioje vietoje atsiranda kintamieji.
Pavyzdinėje programoje vartotojo_įvestis
yra kintamasis. Kintamieji yra kaip dėžės, į kurias galima įdėti norimas informacijos dalis.
Štai programa, parodanti kintamųjų pavyzdžius:
a = 123.4 b23 = 'Šlamštas' vardas = "Benas" b = 432 c = a + b print("a + b yra", c) print("vardas yra", vardas) print("Rūšiuotos dalys, Po vidurnakčio ar", b23)
Štai kokia išvestis:
a + b yra 555.4 vardas yra Benas Rūšiuotos dalys, Po vidurnakčio ar Šlamštas
Kintamieji laiko duomenis. Viršuje aprašytoje programoje kintamieji yra a
, b23
, vardas
, b
ir c
. Pagrindiniai du kintamųjų tipai yra tekstas ir skaičius. Tekstas yra raidžių, skaičių ir kitų simbolių seka. Šiame pavyzdyje b23
ir vardas
yra tekstinio tipo kintamieji. Šlamštas
, Benas
, a + b yra
, vardas yra
, ir Rūšiuotos dalys, Po vidurnakčio ar
šioje programoje yra tiesiog tekstinės reikšmės. Paprastas tekstas yra apsuptas kabučių "
arba '
.
Kitas kintamojo tipas yra skaičius. Atkreipkite dėmesį, kad kintamieji, kurie naudojami saugoti reikšmes, nenaudoja kabučių (" ir '). Jei norite naudoti realias reikšmes, privalote naudoti kabutes.
reikšmė1 == Oho reikšmė2 == "Oho"
Abu pavyzdžiai atrodo vienodai, bet pirmu atveju Python tikrins ar reikšmė, patalpinta kintamajame reikšmė1
, yra tokia pati kaip kintamojo Oho
. Antrame pavyzdyje Python tikrins ar tekstas (konkrečios raidės O
,h
ir o
) yra tokios pat kaip ir reikšmė2
(toliau daugiau paaiškinsiu apie tekstą ir ==
).
Priskyrimai
Gerai, dabar mes turime dėžutes, pavadintas kintamaisiais, taip pat informaciją, kuri gali būti kintamajame. Kompiuteris pamatys tokią eilutę vardas = "Benas"
ir perskaitys ją kaip "Padėk tekstą Benas
į dėžę (ar kintamąjį) vardas
". Vėliau, pamatęs sakinį c = a + b
jį perskaitys kaip "padėt sumą a + b
arba 123.4 + 432
, kas lygu 555.4
, į c
". Dešinė sakinio pusė konvertuosis ir rezultatas bus padėtas į kintamajį kairėje pusėje (c
). Tai yra vadinama priskyrimu. Turėtume nemaišyti priskyrimo ir matematinio lygybės ženklo (=
). Ką reiškia ==
aptarsime vėliau.
O štai ir kitas kintamųjų naudojimo pavyzdys:
a = 1 print(a) a = a + 1 print(a) a = a * 2 print(a)
Ir žinoma štai tokį rezultatą gausime:
1 2 4
Net jei kintamieji yra abiejose lygybės pusėse (pavyzdžiui šlamštas = šlamštas), kompiuteris vis tiek perskaitys taip: "Pirmiausia surask informaciją, kuri patalpinta ir tada surask, kur ją padėti"
Dar viena programa prieš man pabangiant šį skyrių:
skaičius = float(input("Įvesk skaičių: ")) sveikasSkaičius = int(input("Įvesk sveiką skaičių: ")) tekstas = input("Įvesk tekstą: ") print("skaičius =", skaičius) print("skaičius yra", type(skaičius)) print("skaičius * 2 =", skaičius * 2) print("sveikas skaičius =", sveikasSkaičius) print("sveikas skaičius yra", type(sveikasSkaičius)) print("sveikasSkaičius * 2 =", sveikasSkaičius * 2) print("tekstas =", tekstas) print("tekstas yra", type(tekstas)) print("tekstas * 2 =", tekstas * 2)
Rezultatas:
Įvesk skaičių: 12.34 Įvesk sveiką skaičių: -3 Įvesk tekstą: Labas skaičius = 12.34 skaičius yra <class 'float'> skaičius * 2 = 24.68 sveikas skaičius = -3 sveikas skaičius yra <class 'int'> sveikasSkaičius * 2 = -6 tekstas = Labas tekstas yra <class 'str'> tekstas * 2 = LabasLabas
Atkreipk dėmesį, kad kintamasis skaičius
buvo sukurtas su float(input())
, išsaugos, o vėliau atspausdins tokį skaičių, koks buvo įvestas – su kableliu. Kintamasis sveikasSkaičius
, kuris buvo sukurtas su int(input())
, grąžina sveiką skaičių – reikšmę be kablelio. Tuo tarpu tekstas
, kuris buvo sukurtas su input()
, grąžino tekstinę eilutę (gali būti aprašoma ir str(input())
). Jei tu nori, kad vartotojas įvestų skaičių su kableliu, naudok float(input())
kintamojo tipą. Jei nori, kad vartotojas įvestų sveiką skaičių, naudok int(input())
(jeigu vartotojas įves skaičių su kabliu – dalį po kabelio programa tiesiog ignoruos), bet jei nori teksto – naudok input()
.
Antra pusė programos naudoja type()
funkciją, kuri nusako, kokio tipo kintamasis yra. Skaičius yra int
arba float
tipo. Tai yra angliškų žodžių integer (sveikas skaičius) ir floating point (slankusis kablelis, naudojamas daugiausiai skaičiams su kableliu) trumpiniai. Tekstinė eilutė yra str
, trumpinys string (tekstinė eilutė). Sveiki skaičiai ir slankusis kablelis gali būti naudojami matematinėms funkcijoms, tekstas – ne. Atkreipk dėmesį, kai Python'as daugina skaičių iš sveiko skaičiaus gaunamas rezultatas, kurio ir galima tikėtis, tačiau jei tekstas padauginamas iš sveiko skaičiaus – sukuriamos kelios teksto kopijos (pavyzdžiui, tekstas * 2 = LabasLabas
)
Tos pačios operacijos su teksto tipu daro kitokius dalykus nei su skaičiais. Taip pat, kai kurios operacijos veikia tik su skaičiais ir grąžina klaidą, jei bus bandoma panaudoti tesktą. Štai keletas interaktyvių pavyzdžių:
>>> print("Čia" + " " + "yra" + " junginys.") Čia yra junginys. >>> print("Ha, " * 5) Ha, Ha, Ha, Ha, Ha, >>> print("Ha, " * 5 + "ha!") Ha, Ha, Ha, Ha, Ha, ha! >>> print(3 - 1) 2 >>> print("3" - "1") Traceback (most recent call last): File "<string>", line 1, in <module> TypeError: unsupported operand type(s) for -: 'str' and 'str' >>>
Štai sąrašas kelių operacijų su tekstu:
Operacija | Symbolis | Pavyzdys |
---|---|---|
Pakartojimas | *
|
"i" * 5 == "iiiii"
|
Sujungimas | +
|
"Hello, " + "World!" == "Hello, World!"
|
Pagrindinės tipų konvertavimo operacijos:
Operacija | Funkcija | Pavyzdys | Pastabos |
---|---|---|---|
Konvertavimas į sveikąjį skaičių | int | int("3") == 3 | |
Konvertavimas į realųjį skaičių | float | float("3.14") == 3.14 | |
Konvertavimas į tekstinę eilutę | str | str(3) == "3" | Daugaiu apie tai gali paskaityti skyriuje Daugiau apie tekstines eilutes |
Konvertavimas į loginį tipą | bool | bool(1) == True | |
Kintamojo tipo gavimas | type | print(type(kintamasis)) |
Konstantos
Konstanta tai tam tikras nekintamas dydis. Rašant kodą nekintančius dydžius naudinga aprašyti, kaip konstantas. Tai padaro kodą lengviau suprantamą ir lengviau skaitomą. Python kalboje, ne taip kaip kai kuriose kitose kalbose konstantų nėra, tad tam reikia naudoti paprastus kintamuosius. Tam kad būtų aišku jog tai yra konstanta Pitone įprasta konstantas pavadinti didžiosiomis raidėmis.
Konstantų pavyzdžiai:
PI = 3.141592653589793 #Oilerio konstanta E = 2.718281828459045 SEKUNDŽIŲ_VALANDOJE = 3600 #Absoliutis nulis pagal Celsijaus skalę TEMPERATŪRA_ABSOLIUTUS_NULIS = -273.15 NUORODA = "https://pitonas.lt" #Apibrėžiant konstantą galime panaudoti ir aritmetinius veiksmus SEKUNDŽIŲ_PAROJE = 60 * 60 * 24
Parašykime programą, kuri skaičiuoja skritulio plotą, panaudodami π kaip konstantą:
PI = 3.141592653589793 spindulys = float(input("Skritulio spindulys: ")) plotas = PI * spindulys * spindulys print("Skritulio plotas: ", plotas)
Pavyzdžiai
Laikas.py
# ši programa apskaičiuoja laiko priklausomybę nuo greičio ir atstumo print("Įvesk greitį ir atstumą") greitis = float(input("Greitis: ")) atstumas = float(input("Atstumas: ")) laikas = (atstumas / greitis) print("Laikas:", laikas)
Rezultatas:
Įvesk greitį ir atstumą Greitis: 5 Atstumas: 10 Laikas: 2.0
Įvesk greitį ir atstumą Greitis: 3.52 Atstumas: 45.6 Laikas: 12.9545454545
Plotas.py
# Ši programa apskaičiuoja stačiakampio perimetrą ir plotą print("Įveskite stačiakampio informaciją") ilgis = float(input("Ilgis: ")) plotis = float(input("Plotis: ")) perimetras = (2 * ilgis + 2 * plotis) print("Plotas:", ilgis * plotis) print("Perimetras:", perimetras)
Pavyzdžio rezultatas:
Įveskite stačiakampio informaciją Ilgis: 4 Plotis: 3 Plotas: 12.0 Perimetras: 14.0
Įveskite stačiakampio informaciją Ilgis: 2.53 Plotis: 5.2 Plotas: 13.156 Perimetras: 15.46
temperatura.py
# Ši programa konvertuoja temperatūra iš Farenheitų į Celsijų KONVERTAVIMO_KOEFICIENTAS = 5.0 / 9.0 far_temp = float(input("Temperatūra Farenheitais: ")) cels_temp = (far_temp - 32.0) * KONVERTAVIMO_KOEFICIENTAS print("Temperatūra Celsijaus laipsniais:", cels_temp )
Pavyzdžio rezultatas:
Temperatūra Farenheitais: 32 Temperatūra Celsijaus laipsniais: 0.0
Temperatūra Farenheitais: -40 Temperatūra Celsijaus laipsniais: -40.0
Temperatūra Farenheitais: 212 Temperatūra Celsijaus laipsniais: 100.0
Temperatūra Farenheitais: 98.6 Temperatūra Celsijaus laipsniais: 37.0
Pratimai
1. Parašyk programą, kuri priima 2 tekstines reikšmes ir 2 skaičius iš vartotojo įvesties, sujungia tekstus be tarpų ir atvaizduoja gautą rezultatą, o tada sudaugina du skaičius ir atvaizduoja naujoje eilutėje.
Sprendimas | |
---|---|
tekstas1 = input('Tekstas 1: ') tekstas2 = input('Tekstas 2: ') skaičius1 = float(input('Skaičius 1: ')) skaičius2 = float(input('Skaičius 2: ')) print(tekstas1 + tekstas2) print(skaičius1 * skaičius2) |
2. Parašyk programą, kuri paprašytų įvesti savo vardą ir amžių, o ji atspausdintų tekstą “Labas, aš {vardas}. Man {metai} metų.”. Kur {vardas} ir {metai} yra įvesti duomenys.
Sprendimas | |
---|---|
vardas = input("Įvesk savo vardą: ") metai = input("Įvesk savo amžių: ") print("Labas, aš ", vardas, ". Man ", metai, " metų.") |
3. Parašyk programą, kuriai įvestum sekundžių skaičių, o ji išvestų, kiek tai yra minučių.
Sprendimas | |
---|---|
sekundės = int(input("Įvesk sekundžių skaičių: ")) minutės = sekundės / 60 print(sekundės, "s = ", minutės, "min") |