2.1 Ievade un datu tipi
Stundas uzdevums: Identificēt galvenos programmēšanas datu tipus, iegūt lietotāja ievadi un konvertēt tekstu skaitļos, lai veidotu interaktīvas programmas.
70 min plāns: Teorija un paraugs (~10 min) · 1. uzdevums (~15 min) - izpēti trīs datu tipus ar type() · 2. uzdevums (~25 min) - uzraksti varoņa punktu rēķinātāju · 3. uzdevums (~20 min) - salauz to ar nepareizu ievadi un izlasi ValueError. Papildu uzdevumu sāc tikai tad, ja pārējie trīs ir gatavi.
Pirms sāc: atver VS Code savā projekta mapē un izveido jaunu failu datu_tipi.py. Visu stundu strādāsi tikai šajā failā.
Teorija: Datu tipi un to pārveidošana
- Input (Ievade): Funkcija
input()aptur programmas izpildi un gaida lietotāja teksta ievadi terminālī. Viss, ko nolasainput(), noklusējuma formātā ir teksts. - Data types (Datu tipi):
strjeb String (Simbolu virkne) - tekstuāla informācija (piemēram, "Spēlētājs").intjeb Integer (Vesels skaitlis) - matemātisks skaitlis bez komatiem (piemēram, 10, -5).floatjeb Floating-point number (Daļskaitlis) - skaitlis ar decimāldaļu (piemēram, 1.5). Python sintaksē atdalītājs ir punkts, nevis komats.
- Type casting (Datu tipu konvertācija): Process, kurā mainām datu formātu. Piemēram, izmantojot funkciju
int(), mēs pasakām datoram tekstu "5" uztvert kā matemātisku skaitli 5.
Praktiskie uzdevumi
1. uzdevums -
Izpēti trīs datu tipus ar type()
Beigās tu redzēsi savām acīm, ka "5" un 5 datoram nav viens un tas pats.
- Ieraksti failā
a = "5"un zem tāb = 5. - Pievieno rindu
c = 5.5. - Pievieno trīs rindas
print(type(a)),print(type(b)),print(type(c)). - Palaid kodu un izlasi, ko izdrukā katrs izsaukums.
- Pieraksti README.md failā, kurš no trim ir
str, kuršintun kuršfloat. - Pievieno rindu
print(a + a)un palaid vēlreiz.
Gatavs, kad: izvadē redzi <class 'str'>, <class 'int'> un <class 'float'>, bet a + a dod 55, nevis 10.
2. uzdevums -
Uzraksti varoņa punktu rēķinātāju
Beigās programma pajautās trīs lietas un izrēķinās varoņa punktus.
- Ieraksti rindu
vards = input("Ievadi varoņa vārdu: "). - Ieraksti rindu
punkti = int(input("Ievadi bāzes punktus: ")). - Ieraksti rindu
reizinatajs = float(input("Ievadi reizinātāju: ")). - Pievieno aprēķinu
kopa = punkti * reizinatajs. - Pievieno izvadi
print(vards, "ieguva", kopa, "punktus"). - Palaid un ievadi: Lācis, 10, 1.5.
Gatavs, kad: programma izdrukā Lācis ieguva 15.0 punktus.
3. uzdevums -
Salauz to ar nepareizu ievadi un izlasi ValueError
Beigās tu zināsi, kāpēc programma avarē, kad lietotājs ievada burtus.
- Palaid programmu un bāzes punktu vietā ieraksti vārdu
desmit. - Izlasi sarkano paziņojumu un atrodi tajā vārdu
ValueError. - Pieraksti, kurā rindā kļūda radās.
- Palaid vēlreiz un reizinātāja vietā ieraksti
1,5ar komatu. - Pieraksti, vai arī šī bija
ValueError. - Palaid vēlreiz pareizi, ar punktu:
1.5. - Pieraksti vienu secinājumu: kāpēc Python daļskaitļos vajag punktu, nevis komatu.
Gatavs, kad: tu vari nosaukt divas ievades, kas programmu avarē, un pateikt, kāpēc.
Papildu uzdevums - Pievieno otru varoni
Ja pamatdarbs ir gatavs, liec programmai salīdzināt divus varoņus.
- Nokopē trīs ievades rindas un nomaini mainīgo vārdus uz
vards2,punkti2,reizinatajs2. - Izrēķini arī otrā varoņa punktus.
- Izdrukā abu varoņu rezultātus divās rindās.
- Pievieno rindu, kas izdrukā abu punktu summu.
- Palaid un pārbaudi ar diviem dažādiem varoņiem.
Gatavs, kad: programma izdrukā abu varoņu punktus un to summu, un summa tiešām sakrīt.
Biežākās kļūdas (un kā tās labot):
- ValueError (Vērtības kļūda): Rodas, mēģinot pārvērst par int burtus (piemēram, rakstot vārdu "desmit"). Pārliecinies, ka terminālī ievadi tikai ciparus.
- SyntaxError (Sintakses kļūda) ar iekavām: Pārveidojot ievadi, bieži tiek aizmirsta beigu iekava. Pārliecinies, ka komanda
int(input("Teksts: "))beidzas ar divām aizverošajām iekavām)). - String concatenation (Simbolu virkņu apvienošana): Ja, saskaitot
5 + 5, rezultāts ir55, Tu datoram liec saskaitīt tekstus. Esi aizmirsis izmantot datu tipu konvertāciju (int()).
Koda piemērs: Ievade un konvertācija
# Teksta ievade (String)
vards = input("Ievadi varoņa vārdu: ")
# Skaitļu ievade un konvertācija (Integer un Float)
punkti = int(input("Ievadi bāzes punktus: "))
reizinatajs = float(input("Ievadi bonusa reizinātāju (piem., 1.5): "))
# Matemātiska darbība
kopejie_punkti = punkti * reizinatajs
# Rezultāta izvade
print(vards, "kopā ieguva", kopejie_punkti, "punktus!")
print("Rezultāta datu tips ir:", type(kopejie_punkti))
Ievadi bāzes punktus: 10
Ievadi bonusa reizinātāju (piem., 1.5): 1.5
Lācis kopā ieguva 15.0 punktus!
Rezultāta datu tips ir: <class 'float'>