ebSkola

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.

2.4.13. Lieto mainīgos, datu tipus un pamatkonstrukcijas.

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 nolasa input(), noklusējuma formātā ir teksts.
  • Data types (Datu tipi):
    • str jeb String (Simbolu virkne) - tekstuāla informācija (piemēram, "Spēlētājs").
    • int jeb Integer (Vesels skaitlis) - matemātisks skaitlis bez komatiem (piemēram, 10, -5).
    • float jeb 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.

  1. Ieraksti failā a = "5" un zem tā b = 5.
  2. Pievieno rindu c = 5.5.
  3. Pievieno trīs rindas print(type(a)), print(type(b)), print(type(c)).
  4. Palaid kodu un izlasi, ko izdrukā katrs izsaukums.
  5. Pieraksti README.md failā, kurš no trim ir str, kurš int un kurš float.
  6. 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.

  1. Ieraksti rindu vards = input("Ievadi varoņa vārdu: ").
  2. Ieraksti rindu punkti = int(input("Ievadi bāzes punktus: ")).
  3. Ieraksti rindu reizinatajs = float(input("Ievadi reizinātāju: ")).
  4. Pievieno aprēķinu kopa = punkti * reizinatajs.
  5. Pievieno izvadi print(vards, "ieguva", kopa, "punktus").
  6. 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.

  1. Palaid programmu un bāzes punktu vietā ieraksti vārdu desmit.
  2. Izlasi sarkano paziņojumu un atrodi tajā vārdu ValueError.
  3. Pieraksti, kurā rindā kļūda radās.
  4. Palaid vēlreiz un reizinātāja vietā ieraksti 1,5 ar komatu.
  5. Pieraksti, vai arī šī bija ValueError.
  6. Palaid vēlreiz pareizi, ar punktu: 1.5.
  7. 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.

  1. Nokopē trīs ievades rindas un nomaini mainīgo vārdus uz vards2, punkti2, reizinatajs2.
  2. Izrēķini arī otrā varoņa punktus.
  3. Izdrukā abu varoņu rezultātus divās rindās.
  4. Pievieno rindu, kas izdrukā abu punktu summu.
  5. 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 ir 55, 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 varoņa vārdu: Lācis
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'>