Python Vadovėlis/Kas čia eina?

Iš wiki.angis.net.
Jump to navigation Jump to search
 ← Labas, Pasauli Turinys Suskaičiuoti iki 10 → 


Įvestis ir kintamieji

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 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!"

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ų
far_temp = float(input("Temperatūra Farenheitais: "))
cels_temp = (far_temp - 32.0) * (5.0 / 9.0)
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

Parašyti 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)
 ← Labas, Pasauli Turinys Suskaičiuoti iki 10 →