Python / for давталт
for давталт
Нэг ажлыг олон удаа хийх шаардлага програмд байнга гардаг — жагсаалтын бүх элемент дээр үйлдэл хийх, 1-ээс 100 хүртэл тоолох гэх мэт. Үүнд давталт (loop) ашигладаг. Python-ийн for давталт нь ямар нэг дарааллыг (жагсаалт, string, тоо) элемент бүрт нь давтан боловсруулдаг.
Үндсэн бүтэц
python
жимснүүд = ["алим", "гүйлс", "үзэм"]
for жимс in жимснүүд:
print(жимс)
# алим
# гүйлс
# үзэм
Бүтэц:
for— давталт эхлэх түлхүүр үгжимс— одоогийн элементийг хадгалах түр variablein жимснүүд— аль дарааллыг давтах:— блок эхлэх тэмдэг- Биелүүлэх код 4 зайгаар догол оруулагдана
range() — тоон давталт
range() функц нь тоон дараалал үүсгэдэг — тоолоход хамгийн их хэрэглэгддэг:
python
# range(төгсгөл) — 0-оос эхэлнэ
for i in range(5):
print(i)
# 0, 1, 2, 3, 4
# range(эхлэл, төгсгөл)
for i in range(1, 6):
print(i)
# 1, 2, 3, 4, 5
# range(эхлэл, төгсгөл, алхам)
for i in range(0, 20, 5):
print(i)
# 0, 5, 10, 15
# Буурах дараалал
for i in range(10, 0, -1):
print(i)
# 10, 9, 8, ... 1
String дээр давталт
String нь тэмдэгт тус бүрт давтагддаг:
python
үг = "Python"
for тэмдэгт in үг:
print(тэмдэгт)
# P
# y
# t
# h
# o
# n
# Хэдэн эгшиг байгааг тоолох
эгшиг_тоо = 0
for т in "Улаанбаатар":
if т in "аэиоуАЭИОУ":
эгшиг_тоо += 1
print(f"Эгшгийн тоо: {эгшиг_тоо}")
enumerate() — индекстэй давталт
Элементийн утга болон дугаарыг хамт авахад enumerate() ашигладаг:
python
хичээлүүд = ["Python үндэс", "Функцүүд", "Жагсаалт", "Толь бичиг"]
for дугаар, хичээл in enumerate(хичээлүүд, start=1):
print(f"{дугаар}. {хичээл}")
# 1. Python үндэс
# 2. Функцүүд
# 3. Жагсаалт
# 4. Толь бичиг
break ба continue
break — давталтыг зогсоох
python
тоонууд = [3, 7, 2, 9, 1, 5]
for тоо in тоонууд:
if тоо == 9:
print("9 олдлоо — зогслоо")
break
print(тоо)
# 3
# 7
# 2
# 9 олдлоо — зогслоо
continue — одоогийн давталтыг алгасах
python
for i in range(1, 11):
if i % 2 == 0: # тэгш тоог алгасах
continue
print(i)
# 1, 3, 5, 7, 9 — зөвхөн сондгой тоо
Давхар for давталт (nested loop)
python
# Үржвэрийн хүснэгт — 3x3
for мөр in range(1, 4):
for багана in range(1, 4):
print(f"{мөр * багана:3}", end="")
print()
# 1 2 3
# 2 4 6
# 3 6 9
Бодит жишээ — оюутны оноо шинжлэх
python
оюутнууд = [
{"нэр": "Болд", "оноо": 92},
{"нэр": "Сарнай", "оноо": 78},
{"нэр": "Төгс", "оноо": 85},
{"нэр": "Анар", "оноо": 64},
]
нийт = 0
тэнцсэн = 0
for оюутан in оюутнууд:
нийт += оюутан["оноо"]
if оюутан["оноо"] >= 70:
тэнцсэн += 1
print(f"✓ {оюутан['нэр']}: {оюутан['оноо']}")
else:
print(f"✗ {оюутан['нэр']}: {оюутан['оноо']}")
дундаж = нийт / len(оюутнууд)
print(f"\nДундаж оноо: {дундаж:.1f}")
print(f"Тэнцсэн: {тэнцсэн}/{len(оюутнууд)}")
Гаралт:
код
✓ Болд: 92
✓ Сарнай: 78
✓ Төгс: 85
✗ Анар: 64
Дундаж оноо: 79.8
Тэнцсэн: 3/4
JavaScript-тэй харьцуулбал
javascript
// JavaScript
const fruits = ["алим", "гүйлс", "үзэм"];
for (const fruit of fruits) {
console.log(fruit);
}
for (let i = 0; i < 5; i++) {
console.log(i);
}
python
# Python
жимснүүд = ["алим", "гүйлс", "үзэм"]
for жимс in жимснүүд:
print(жимс)
for i in range(5):
print(i)
Python-д for...of ба for (i=0; i<n; i++) хоёрыг нэгтгэж for...in ба range() болгосон — илүү товч, уншихад хялбар.
Дараагийн хичээлд:
for давталтыг сайн эзэмшлээ! Дараа нь while давталтыг сурна — нөхцөл хангагдаж байх хугацаанд үргэлжлэн давтадаг, тоо тодорхойгүй давталтад хамгийн тохиромжтой хэрэгсэл.