Yaliyomo

Wiki 1: Utangulizi wa Python — Setup, print, Variables, Data Types na Operators

Mwezi 1 | Lengo kuu: Mwanafunzi aweze kuandika na kuendesha (run) programu ndogo ya Python inayopokea input, kufanya hesabu, na kuonyesha matokeo.

Maandalizi ya Mwalimu (soma kabla ya wiki kuanza)

  • Install kwenye kompyuta yako ya kwanza (ile utakayo-share screen):
    1. Python 3.12 au zaidi kutoka https://www.python.org/downloads/windows/ — wakati wa ku-install weka tiki "Add python.exe to PATH" (hii ni muhimu sana).
    2. VS Code kutoka https://code.visualstudio.com/
    3. Ndani ya VS Code: Extensions (Ctrl+Shift+X) → tafuta "Python" (ya Microsoft) → Install.
  • Jaribu mwenyewe kabla: fungua PowerShell andika python --version. Ukiona Python 3.12.x (au zaidi) uko tayari. Ukiona ujumbe wa Microsoft Store au "not recognized", angalia sehemu ya "Makosa ya kawaida" ya Kipindi 1.
  • Tengeneza folder C:\Users\<jina>\Documents\python_darasa\wiki01 — kila kipindi tutatengeneza files ndani yake.
  • Kwenye Google Meet: jaribu "Present now → A window → VS Code". Ongeza ukubwa wa herufi VS Code: Ctrl + = mara 3–4 ili mwanafunzi aone vizuri.
  • Soma: https://docs.python.org/3/tutorial/introduction.html. Usijali kuelewa kila kitu.
  • Mwombe mwanafunzi a-install Python na VS Code mwenyewe. Kama hakuweza, Kipindi 1 kitamsaidia.

Malengo ya Wiki (mwisho wa wiki mwanafunzi ataweza...)

  1. Ku-install Python na VS Code, na kuendesha file la .py kutoka VS Code na PowerShell.
  2. Kutumia REPL (>>>) kujaribu code fupi.
  3. Kutumia print() na comments (#).
  4. Kutengeneza variables na kujua data types: int, float, str, bool, na kutumia type().
  5. Kupokea data kwa input() na kubadilisha aina ya data (type conversion): int(), float(), str().
  6. Kutumia arithmetic operators (+ - * / // % **), comparison operators (== != < > <= >=) na logical operators (and or not).
  7. Kuandika programu ndogo kamili: mf. kikokotoo cha BMI au cha bei ya bidhaa.

Kipindi 1 — Utangulizi, Setup, REPL, print na comments

Mtiririko wa kipindi

  1. Kujuana, malengo ya kozi, jinsi tutakavyofanya kazi (Meet + VS Code)
  2. Python ni nini? Programu ni nini? Kwa nini Python?
  3. Setup: kuhakikisha Python + VS Code + extension vimewekwa kwa mwanafunzi
  4. REPL: python kwenye PowerShell, kujaribu hesabu
  5. Mapumziko mafupi
  6. File la kwanza salamu.py: print(), kuendesha kwa ▶ na kwa python salamu.py
  7. Comments # na makosa ya kwanza (SyntaxError, NameError)
  8. Zoezi darasani
  9. Q&A + kazi ya nyumbani

Elezo kwa mwalimu (soma kwanza wewe)

  • Programu (program) ni orodha ya maagizo ambayo kompyuta inayafuata kwa mpangilio, mstari kwa mstari, kutoka juu kwenda chini.
  • Python ni lugha ya programu (programming language). Tunaandika maagizo kwenye file lenye mwisho .py, kisha programu inayoitwa interpreter (python.exe) inasoma file hilo na kutekeleza maagizo.
  • VS Code ni "editor" — ni kama Microsoft Word lakini kwa ajili ya code. VS Code yenyewe si Python; inatumia Python uliyo-install.
  • Terminal / PowerShell ni dirisha la kuandika amri (commands) kwa maandishi. Ndani ya VS Code unaifungua kwa Ctrl + ` (kitufe kilicho juu ya Tab).
  • REPL (Read–Eval–Print Loop): ukiandika python kwenye terminal unapata alama >>>. Unaandika mstari mmoja, Python inaujibu papo hapo. Ni kama "kikokotoo cha majaribio". Kutoka: andika exit() au bonyeza Ctrl+Z kisha Enter (Windows).
  • Tofauti muhimu: REPL inaonyesha thamani bila print. Kwenye file, lazima utumie print() ili kuona kitu.
  • print() ni function inayoonyesha maandishi kwenye skrini. Maandishi (text) lazima yawe ndani ya alama za nukuu "..." au '...'.
  • Comment ni mstari unaoanza na #. Python inaupuuza. Ni kwa ajili ya binadamu kusoma.
  • Python ni case-sensitive: print si sawa na Print.

Sema hivi kwa mwanafunzi

  • "Fikiria kompyuta ni mpishi asiyejua kitu chochote. Wewe ndiye unaandika recipe (programu). Mpishi anafuata kila hatua kama ilivyoandikwa — hata ukikosea, atafuata kosa lako! Ndiyo maana tunasema kompyuta ni 'mjinga mwenye kasi sana'."
  • "Python ni lugha ambayo binadamu na kompyuta wote wanaielewa kwa urahisi. Inatumika na Instagram, YouTube, NASA, na kwenye AI."
  • "VS Code ni daftari letu. Terminal ni mahali tunapompa kompyuta amri moja moja."
  • "REPL ni kama kuongea na Python ana kwa ana: unauliza, inajibu papo hapo. File la .py ni kama kumwandikia barua ndefu — inasoma yote kisha inatekeleza."
  • "Comment ni kama kuandika maelezo pembeni ya daftari kwa penseli — mwalimu (Python) hayasomi, ni kwa ajili yako."

Andika code hii live (share screen)

Hatua 1 — Kuangalia Python ipo. Fungua PowerShell (au terminal ndani ya VS Code):

powershell
python --version

Matokeo yanayotarajiwa (namba inaweza kutofautiana):

text
Python 3.12.7

Kama python haifanyi kazi, jaribu py --version (Python Launcher ya Windows).

Hatua 2 — REPL.

powershell
python
python
>>> 2 + 3
5
>>> 10 * 4
40
>>> 7 / 2
3.5
>>> "Habari"
'Habari'
>>> print("Habari Tanzania")
Habari Tanzania
>>> exit()

Mweleze: "Angalia, 'Habari' ilionyeshwa na nukuu — REPL inaonyesha thamani yenyewe. print inaonyesha maandishi 'safi' bila nukuu."

Hatua 3 — File la kwanza. VS Code → File → Open Folder → chagua wiki01. Tengeneza file jipya salamu.py:

python
# Programu yangu ya kwanza
# Mwandishi: <jina la mwanafunzi>

print("Habari, dunia!")
print("Karibu kwenye darasa la Python")
print("Leo ni siku ya kwanza")

Bonyeza ▶ (Run Python File) juu kulia. Matokeo:

text
Habari, dunia!
Karibu kwenye darasa la Python
Leo ni siku ya kwanza

Kisha onyesha njia ya pili kwenye terminal:

powershell
python salamu.py

Hatua 4 — print na vitu vingi.

python
print("Jina:", "Amina")          # print inaweka nafasi (space) kati ya vitu
print("Umri:", 20)
print(5 + 7)                      # inahesabu kwanza, kisha inaonyesha
print("5 + 7")                    # hii ni maandishi tu, haihesabu!
print()                           # mstari mtupu
print("Dar", "Arusha", "Mwanza", sep=" - ")
print("Hakuna mstari mpya", end=" ")
print("<- tuko mstari ule ule")

Matokeo:

text
Jina: Amina
Umri: 20
12
5 + 7

Dar - Arusha - Mwanza
Hakuna mstari mpya <- tuko mstari ule ule

Hatua 5 — Nukuu ndani ya maandishi.

python
print('Alisema "Asante"')
print("It's a nice day")
print("Mstari wa kwanza\nMstari wa pili")   # \n = mstari mpya
print("Jina:\tAmina")                       # \t = tab

Matokeo:

text
Alisema "Asante"
It's a nice day
Mstari wa kwanza
Mstari wa pili
Jina:	Amina

Hatua 6 — Tengeneza kosa makusudi ili mwanafunzi asiogope errors:

python
Print("Habari")
text
NameError: name 'Print' is not defined. Did you mean: 'print'?

"Error si adui — ni Python inakuambia tatizo liko wapi. Soma mstari wa mwisho kwanza."

Maswali ya kumuuliza mwanafunzi

  1. Swali: Tofauti ya REPL na file la .py ni nini? — Jibu: REPL inajibu mstari mmoja papo hapo na haihifadhi kazi; file linahifadhiwa na linaendeshwa lote kwa pamoja.
  2. Swali: print("3 + 4") na print(3 + 4) zinatoa nini? — Jibu: ya kwanza 3 + 4 (maandishi), ya pili 7 (hesabu).
  3. Swali: Mstari unaoanza na # unafanya nini? — Jibu: Hakuna kitu; ni comment, Python inaupuuza.
  4. Swali: Ukiandika print(Habari) bila nukuu itakuwaje? — Jibu: NameError, kwa sababu Python inadhani Habari ni jina la variable.
  5. Swali: Python inasoma file kwa mpangilio gani? — Jibu: Juu kwenda chini, mstari kwa mstari.

Makosa ya kawaida

Kosa Ujumbe wa error Suluhisho
Python haikuwekwa PATH python : The term 'python' is not recognized... au inafungua Microsoft Store Install upya ukiweka tiki "Add python.exe to PATH", au tumia py badala ya python. Funga na ufungue VS Code upya.
Kuandika code ya Python ndani ya PowerShell (si REPL) print : The term 'print' is not recognized au error ya PowerShell Andika python kwanza ili uingie REPL, au weka code kwenye file .py.
Kuandika amri ya PowerShell ndani ya REPL >>> python salamu.py → SyntaxError: invalid syntax Toka REPL kwa exit() kwanza.
Kusahau nukuu NameError: name 'Habari' is not defined Weka maandishi ndani ya "...".
Nukuu hazilingani SyntaxError: unterminated string literal Anza na kumaliza kwa alama ile ile: "..." au '...'.
Kusahau mabano print "Habari" → SyntaxError: Missing parentheses in call to 'print' Tumia print("Habari").
Herufi kubwa Print(...) → NameError Python ni case-sensitive: print.
Hukuhifadhi file Programu inaendesha toleo la zamani Ctrl+S kabla ya kuendesha (au washa File → Auto Save).

Zoezi darasani

  1. Tengeneza kadi.py inayoonyesha kadi ya utambulisho: jina, mji, shule/kazi, na kitu unachokipenda — kila kimoja mstari wake, na comment juu inayoeleza file linafanya nini.
  2. Tumia print moja tu (na \n) kuonyesha mistari mitatu: Moja, Mbili, Tatu.
  3. Kwenye REPL, hesabu: sekunde ngapi ziko kwenye siku moja?
Jibu
python
# kadi.py — inaonyesha kadi ya utambulisho
print("==== KADI YANGU ====")
print("Jina: Amina Juma")
print("Mji: Dodoma")
print("Shule: Sekondari ya Jamhuri")
print("Ninapenda: Mpira wa miguu")
print("====================")
python
print("Moja\nMbili\nTatu")
python
>>> 60 * 60 * 24
86400

Kipindi 2 — Variables, Data Types, type(), input() na Type Conversion

Mtiririko wa kipindi

  1. Marudio ya kazi ya nyumbani (kadi + print)
  2. Variables: ni nini, jinsi ya kutaja (naming rules), kubadilisha thamani
  3. Data types: int, float, str, bool + type()
  4. Mapumziko
  5. input() — kupokea data kutoka kwa mtumiaji
  6. Type conversion: int(), float(), str(), bool()
  7. Zoezi darasani
  8. Q&A + kazi ya nyumbani

Elezo kwa mwalimu (soma kwanza wewe)

  • Variable ni jina linaloshikilia (linaloelekeza kwenye) thamani. umri = 20 maana yake "jina umri sasa linashikilia 20". Alama = si "sawa na" ya hisabati; ni assignment ("weka"). Upande wa kulia unahesabiwa kwanza, kisha matokeo yanawekwa kwenye jina la kushoto.
  • Unaweza kubadilisha thamani: umri = 21 — thamani ya zamani inapotea.
  • Sheria za majina (naming rules): yanaanza na herufi au _; yanaweza kuwa na herufi, namba, _; hayawezi kuwa na nafasi au -; hayawezi kuanza na namba; si maneno ya Python (if, for, class...). Mtindo wa Python: snake_case (herufi ndogo + _), mf. jina_kamili.
  • Data types kuu 4:
    • int — namba kamili: 5, -3, 0, 1_000_000
    • float — namba yenye desimali: 3.14, 2.0, -0.5
    • str (string) — maandishi ndani ya nukuu: "Amina", "25" (hii ni str, si namba!)
    • bool — True au False tu (herufi kubwa mwanzo)
  • type(x) inakuambia aina ya x: type(5) → <class 'int'>.
  • input("ujumbe") inasimamisha programu, inaonyesha ujumbe, inasubiri mtumiaji aandike kitu na kubonyeza Enter. Daima inarudisha str — hata mtumiaji akiandika 25, unapata "25".
  • Type conversion: int("25") → 25; float("2.5") → 2.5; str(25) → "25"; int(3.9) → 3 (inakata desimali, haizungushi); int("2.5") → ValueError; bool(0) → False, bool("") → False, karibu kila kitu kingine → True.
  • Kuunganisha strings: "Habari " + "Amina" → "Habari Amina". Lakini "Umri: " + 20 → TypeError. Suluhisho: "Umri: " + str(20) au print("Umri:", 20).

Sema hivi kwa mwanafunzi

  • "Variable ni kama sanduku lenye lebo. Lebo ni jina (umri), ndani ya sanduku kuna thamani (20). Ukiweka kitu kipya, cha zamani kinatolewa."
  • "Ishara = kwenye Python tunaisoma 'weka'. x = 5 → 'weka 5 kwenye x'. Si swali, ni agizo."
  • "Data types ni kama aina za vitu sokoni: matunda yanapimwa kwa kilo (float), mayai yanahesabiwa moja moja (int), jina la duka ni maandishi (str), na 'duka liko wazi?' jibu ni ndiyo/hapana (bool)."
  • "input() ni kama karani wa benki anayekupa fomu — chochote utakachoandika, anakipokea kama maandishi. Kama unataka kufanya hesabu, lazima ukibadilishe kuwa namba."

Andika code hii live (share screen)

Hatua 1 — variables.py

python
jina = "Baraka"
umri = 19
urefu = 1.72
ni_mwanafunzi = True

print(jina)
print(umri)
print(urefu)
print(ni_mwanafunzi)

Matokeo:

text
Baraka
19
1.72
True

Hatua 2 — Kubadilisha thamani na kutumia variable kwenye hesabu

python
umri = 19
print("Umri sasa:", umri)
umri = umri + 1          # chukua umri wa sasa, ongeza 1, weka tena kwenye umri
print("Mwaka ujao:", umri)

a = 10
b = a                    # b inapata 10
a = 99
print(a, b)              # b haibadiliki

Matokeo:

text
Umri sasa: 19
Mwaka ujao: 20
99 10

Hatua 3 — type()

python
print(type(19))
print(type(1.72))
print(type("Baraka"))
print(type(True))
print(type("19"))        # angalia! hii ni str

Matokeo:

text
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
<class 'str'>

Hatua 4 — input() (file salamu2.py)

python
jina = input("Jina lako ni nani? ")
mji = input("Unaishi mji gani? ")
print("Karibu", jina, "kutoka", mji)

Mfano wa kuendesha:

text
Jina lako ni nani? Neema
Unaishi mji gani? Mbeya
Karibu Neema kutoka Mbeya

Mweleze: "Angalia nafasi baada ya ? ndani ya ujumbe — inafanya mtumiaji aandike baada ya nafasi."

Hatua 5 — Tatizo la input na namba (onyesha kosa kwanza!)

python
umri = input("Una miaka mingapi? ")
print(type(umri))
print(umri + 1)
text
Una miaka mingapi? 20
<class 'str'>
TypeError: can only concatenate str (not "int") to str

Kisha rekebisha:

python
umri = int(input("Una miaka mingapi? "))
print(type(umri))
print("Mwaka ujao utakuwa na miaka", umri + 1)
text
Una miaka mingapi? 20
<class 'int'>
Mwaka ujao utakuwa na miaka 21

Hatua 6 — Conversion zaidi (REPL)

python
>>> int("42")
42
>>> float("3.5")
3.5
>>> int(7.9)
7
>>> round(7.9)
8
>>> str(100) + " shilingi"
'100 shilingi'
>>> "5" + "5"
'55'
>>> int("5") + int("5")
10
>>> bool(0), bool(5), bool(""), bool("hapana")
(False, True, False, True)
>>> int("2.5")
ValueError: invalid literal for int() with base 10: '2.5'
>>> int(float("2.5"))
2

Maswali ya kumuuliza mwanafunzi

  1. x = 5 kisha x = x * 2 — x ni ngapi? — Jibu: 10.
  2. type("3.14") ni nini? — Jibu: <class 'str'> (iko ndani ya nukuu).
  3. Kwa nini input() + hesabu inaleta error? — Jibu: input inarudisha str kila mara; lazima tutumie int() au float().
  4. Jina gani la variable si sahihi: jina_1, 1jina, jina-kwanza, _siri, for? — Jibu: 1jina (inaanza na namba), jina-kwanza (ina -), for (neno la Python).
  5. int(9.99) inatoa nini? — Jibu: 9 (inakata, haizungushi).
  6. "10" + "20" inatoa nini? — Jibu: "1020" — inaunganisha maandishi.

Makosa ya kawaida

Kosa Ujumbe wa error Suluhisho
Kuunganisha str na int TypeError: can only concatenate str (not "int") to str str(namba) au tumia koma kwenye print.
Kutumia variable kabla ya kuitengeneza NameError: name 'jumla' is not defined Weka thamani kwanza; angalia spelling.
Kubadilisha "2.5" kwa int() ValueError: invalid literal for int() with base 10: '2.5' Tumia float().
Mtumiaji anaandika herufi badala ya namba ValueError: invalid literal for int() with base 10: 'ishirini' Kwa sasa: mwambie aandike namba. (Tutajifunza try/except baadaye.)
true badala ya True NameError: name 'true' is not defined True / False herufi kubwa mwanzo.
Nafasi ndani ya jina jina kamili = "Ali" → SyntaxError: invalid syntax jina_kamili.
Kugeuza upande: 5 = x SyntaxError: cannot assign to literal Jina kushoto, thamani kulia: x = 5.

Zoezi darasani

  1. Andika programu inayouliza jina na mwaka wa kuzaliwa, kisha inaonyesha "Habari , mwaka 2026 utatimiza miaka ".
  2. Uliza bei ya kitu (inaweza kuwa na desimali) na idadi, onyesha jumla.
  3. Bila kuendesha, tabiri type() ya: 10, 10.0, "10", 10 > 5. Kisha thibitisha kwa code.
Jibu
python
# zoezi 1
jina = input("Jina lako: ")
mwaka = int(input("Mwaka wa kuzaliwa: "))
umri = 2026 - mwaka
print("Habari", jina + ", mwaka 2026 utatimiza miaka", umri)
python
# zoezi 2
bei = float(input("Bei ya kitu kimoja: "))
idadi = int(input("Idadi: "))
jumla = bei * idadi
print("Jumla ni:", jumla)
python
# zoezi 3: int, float, str, bool
print(type(10), type(10.0), type("10"), type(10 > 5))
# <class 'int'> <class 'float'> <class 'str'> <class 'bool'>

Kipindi 3 — Operators: Arithmetic, Comparison, Logical

Mtiririko wa kipindi

  1. Marudio ya kazi ya nyumbani (input + conversion)
  2. Arithmetic operators: + - * / // % **, mpangilio (precedence), shortcuts +=
  3. Comparison operators: == != < > <= >= — matokeo ni bool
  4. Mapumziko
  5. Logical operators: and, or, not
  6. Mradi mdogo: kikokotoo cha BMI / bei ya duka
  7. Marudio ya wiki nzima
  8. Q&A + kazi ya nyumbani

Elezo kwa mwalimu (soma kwanza wewe)

  • Arithmetic operators: | Operator | Maana | Mfano | Jibu | |---|---|---|---| | + | jumlisha | 7 + 2 | 9 | | - | toa | 7 - 2 | 5 | | * | zidisha | 7 * 2 | 14 | | / | gawa (jibu daima float) | 7 / 2 | 3.5 | | // | gawa, chukua namba kamili (floor division) | 7 // 2 | 3 | | % | baki (modulo) | 7 % 2 | 1 | | ** | kipeo (power) | 7 ** 2 | 49 |

  • Kumbuka: 10 / 2 → 5.0 (float), si 5.

  • % inatumika sana kujua kama namba ni shufwa (even): n % 2 == 0.
  • // na % pamoja: dakika 135 = 135 // 60 saa (2) na 135 % 60 dakika (15).
  • Precedence (mpangilio): ** kwanza, kisha * / // %, kisha + -. Mabano () yanashinda vyote. Ni kama BODMAS.
  • Shortcuts: x += 5 ni sawa na x = x + 5. Pia -=, *=, /=.
  • + na * kwenye strings: "ha" * 3 → "hahaha".
  • Comparison operators zinarudisha True au False: == (sawa?), != (si sawa?), <, >, <=, >=. Muhimu: = ni kuweka; == ni kuuliza "ni sawa?".
  • Logical operators:
    • A and B → True kama zote mbili ni True.
    • A or B → True kama angalau moja ni True.
    • not A → inageuza: not True → False.
  • Python inaruhusu kulinganisha mfululizo: 0 <= alama <= 100.
  • Floats si sahihi 100%: 0.1 + 0.2 → 0.30000000000000004. Hili ni kawaida kwa kompyuta zote. Tumia round(x, 2).

Sema hivi kwa mwanafunzi

  • "// na % ni kama kugawa maembe 17 kwa watoto 5: kila mtoto anapata 17 // 5 = 3, na yanabaki 17 % 5 = 2."
  • "== ni swali: 'hivi hivi viwili ni sawa?' Jibu ni ndiyo (True) au hapana (False)."
  • "and ni kama mlinzi wa klabu anayesema: 'lazima uwe na tiketi na umri zaidi ya 18'. or ni kama mama anayesema: 'nitafurahi ukileta mkate au maziwa' — kimoja kinatosha."
  • "not ni kama kusema 'si kweli kwamba...'."

Andika code hii live (share screen)

Hatua 1 — hesabu.py

python
a = 17
b = 5
print("a + b =", a + b)
print("a - b =", a - b)
print("a * b =", a * b)
print("a / b =", a / b)
print("a // b =", a // b)
print("a % b =", a % b)
print("a ** 2 =", a ** 2)

Matokeo:

text
a + b = 22
a - b = 12
a * b = 85
a / b = 3.4
a // b = 3
a % b = 2
a ** 2 = 289

Hatua 2 — Precedence

python
print(2 + 3 * 4)      # 14, si 20
print((2 + 3) * 4)    # 20
print(2 ** 3 ** 2)    # 512 (inaanza kulia: 3**2=9, 2**9=512)
print(10 - 4 / 2)     # 8.0

Hatua 3 — Mfano halisi: dakika kuwa saa

python
dakika_zote = int(input("Weka dakika: "))
saa = dakika_zote // 60
dakika = dakika_zote % 60
print(dakika_zote, "dakika ni saa", saa, "na dakika", dakika)
text
Weka dakika: 135
135 dakika ni saa 2 na dakika 15

Hatua 4 — Shortcuts

python
salio = 10000
salio -= 2500      # umenunua vocha
salio += 5000      # umepokea pesa
print("Salio:", salio)    # Salio: 12500

Hatua 5 — Comparison

python
x = 10
print(x == 10)    # True
print(x != 10)    # False
print(x > 3)      # True
print(x <= 9)     # False
print("a" == "A") # False (case-sensitive)
alama = 75
print(0 <= alama <= 100)   # True
n = 8
print("Ni shufwa?", n % 2 == 0)   # Ni shufwa? True

Hatua 6 — Logical

python
umri = 20
ana_kitambulisho = True
print(umri >= 18 and ana_kitambulisho)   # True
print(umri < 18 or ana_kitambulisho)     # True
print(not ana_kitambulisho)              # False

mvua = False
jua = True
print("Naenda nje?", jua and not mvua)   # Naenda nje? True

Andika jedwali hili kwenye skrini (truth table):

text
A      B      A and B   A or B
True   True   True      True
True   False  False     True
False  True   False     True
False  False  False     False

Hatua 7 — Mradi mdogo: BMI (bmi.py)

python
# Kikokotoo cha BMI (Body Mass Index)
uzito = float(input("Uzito wako (kg): "))
urefu = float(input("Urefu wako (mita, mf. 1.70): "))

bmi = uzito / urefu ** 2
print("BMI yako ni:", round(bmi, 1))
print("Uzito wa kawaida (18.5 - 24.9)?", 18.5 <= bmi <= 24.9)
text
Uzito wako (kg): 65
Urefu wako (mita, mf. 1.70): 1.70
BMI yako ni: 22.5
Uzito wa kawaida (18.5 - 24.9)? True

Maswali ya kumuuliza mwanafunzi

  1. 20 / 4 inatoa nini? — Jibu: 5.0 (float).
  2. 20 % 6? — Jibu: 2.
  3. Unajuaje kama namba ni witiri (odd)? — Jibu: n % 2 == 1 (au n % 2 != 0).
  4. True and False or True? — Jibu: True (and inafanyika kwanza: False or True → True).
  5. Tofauti ya = na ==? — Jibu: = inaweka thamani; == inalinganisha na kurudisha bool.
  6. "5" == 5? — Jibu: False — aina tofauti (str dhidi ya int).

Makosa ya kawaida

Kosa Ujumbe wa error Suluhisho
Kugawa kwa sifuri ZeroDivisionError: division by zero Hakikisha kigawanyo si 0.
= badala ya == ndani ya print print(x = 5) → TypeError: 'x' is an invalid keyword argument for print() (matoleo mapya: print() got an unexpected keyword argument 'x') Tumia == kulinganisha.
Kusahau kubadilisha input TypeError: unsupported operand type(s) for /: 'str' and 'int' float(input(...)).
Kutarajia / kutoa int Jibu 5.0 badala ya 5 Tumia // kama unataka int.
&&, ||, ! (kutoka lugha nyingine) SyntaxError: invalid syntax Python inatumia and, or, not.
Mpangilio wa hesabu uzito / urefu * urefu inatoa uzito wenyewe Tumia urefu ** 2 au mabano uzito / (urefu * urefu).
Kushangazwa na 0.1 + 0.2 0.30000000000000004 Kawaida; tumia round().

Zoezi darasani

  1. Uliza sekunde (mf. 3725), onyesha saa, dakika na sekunde.
  2. Uliza namba mbili, onyesha kama ya kwanza ni kubwa kuliko ya pili, na kama zote mbili ni chanya (> 0).
  3. Kikokotoo cha bei ya duka: uliza bei ya kitu na idadi; kama jumla ni zaidi ya 50,000 mteja anapata punguzo (discount) — onyesha True/False kama anastahili, na jumla baada ya punguzo la 10% (kwa sasa hesabu jumla * 0.9).
Jibu
python
# zoezi 1
sekunde_zote = int(input("Sekunde: "))
saa = sekunde_zote // 3600
baki = sekunde_zote % 3600
dakika = baki // 60
sekunde = baki % 60
print(saa, "saa,", dakika, "dakika,", sekunde, "sekunde")
# 3725 -> 1 saa, 2 dakika, 5 sekunde
python
# zoezi 2
a = float(input("Namba ya kwanza: "))
b = float(input("Namba ya pili: "))
print("Ya kwanza ni kubwa?", a > b)
print("Zote ni chanya?", a > 0 and b > 0)
python
# zoezi 3
bei = float(input("Bei: "))
idadi = int(input("Idadi: "))
jumla = bei * idadi
print("Jumla:", jumla)
print("Anastahili punguzo?", jumla > 50000)
print("Jumla baada ya punguzo la 10%:", jumla * 0.9)

Kazi ya Nyumbani

(Kazi ya Kipindi 1 inakaguliwa Kipindi 2, ya Kipindi 2 Kipindi 3, ya Kipindi 3 kipindi kijacho.)

KN1 (baada ya Kipindi 1): Tengeneza shairi.py linaloonyesha ubeti mmoja wa shairi au wimbo unaoupenda (mistari 4), kisha mstari wa nyota * 20 ukitumia print("*" * 20). Weka comment juu.

KN2 (baada ya Kipindi 2): Tengeneza wasifu.py linalouliza: jina, umri, urefu (mita), na kama ni mwanafunzi (andika "ndiyo"/"hapana"). Onyesha kila thamani na type() yake. Kisha onyesha umri wake baada ya miaka 10.

KN3 (baada ya Kipindi 3): Tengeneza kibadilishaji.py: uliza kiasi cha shilingi za Tanzania (TZS), badilisha kuwa dola (USD) kwa kiwango 1 USD = 2,600 TZS (tumia variable KIWANGO). Onyesha jibu kwa desimali 2. Pia onyesha True/False kama kiasi kinatosha kununua kitu cha dola 50.

Jibu
python
# shairi.py — ubeti wa shairi
print("Elimu ni bahari, haina mwisho kuogelea")
print("Kila siku ni safari, maarifa kujipatia")
print("Usichoke kusubiri, mafanikio yatakujia")
print("Python tutaijua, kwa bidii na subira")
print("*" * 20)
python
# wasifu.py
jina = input("Jina: ")
umri = int(input("Umri: "))
urefu = float(input("Urefu (m): "))
jibu = input("Wewe ni mwanafunzi? (ndiyo/hapana): ")
ni_mwanafunzi = jibu == "ndiyo"

print(jina, type(jina))
print(umri, type(umri))
print(urefu, type(urefu))
print(ni_mwanafunzi, type(ni_mwanafunzi))
print("Baada ya miaka 10 utakuwa na miaka", umri + 10)

Kumbuka: bool("hapana") ni True (string isiyo tupu) — ndiyo maana tunatumia jibu == "ndiyo". Mwambie mwanafunzi hili ni swali zuri la mjadala.

python
# kibadilishaji.py
KIWANGO = 2600
tzs = float(input("Kiasi (TZS): "))
usd = tzs / KIWANGO
print("Dola:", round(usd, 2))
print("Inatosha kununua kitu cha $50?", usd >= 50)

Ukiulizwa swali usilolijua

Checklist ya mwisho wa wiki

  • Mwanafunzi ana Python 3.12+ na VS Code + Python extension vinavyofanya kazi
  • Anaweza kuendesha file kwa ▶ na kwa python file.py kwenye PowerShell
  • Anajua kuingia na kutoka kwenye REPL
  • Anatumia print() na vitu vingi, sep, end, \n
  • Anaandika comments #
  • Anatengeneza variables kwa majina sahihi (snake_case)
  • Anatofautisha int, float, str, bool na anatumia type()
  • Anajua input() inarudisha str na anatumia int()/float()
  • Anatumia + - * / // % ** na anaelewa precedence
  • Anatofautisha = na ==, na anatumia and, or, not
  • Anasoma ujumbe wa error (mstari wa mwisho) bila hofu