Дарси 57. Функсияҳои корбарӣ бо рӯйхатҳо - Технологияи иттилоотӣ — синфи 10
Чор функсия барои рӯйхат
Функсия Чӣ медиҳад len(a)андоза – шумораи ҷузъҳо sorted(a)рӯйхати нав , бо тартиби афзуншавӣ (reverse=True – камшавӣ) max(a)калонтарин ҷузъ min(a)хурдтарин ҷузъ
Натиҷа:
Гузаштан аз рӯйхат
Даври for ҷузъҳоро яке-яке мегирад. Агар рақами ҷузъ низ лозим бошад – range(len(a)):
Натиҷа:
Натиҷа:
sorted, max, min
Натиҷа:
sorted(b) рӯйхати нав месозад – b дигар намешавад (ин аз b.sort() фарқ мекунад, ки худи b-ро иваз мекунад).
Натиҷа:
max ва min бо сатрҳо низ кор мекунанд: сатрҳо бо тартиби алифбо муқоиса мешаванд (ҳарфҳои калон ва хурд фарқ мекунанд).
Калонтаринро худамон меёбем
max дар дохил чӣ кор мекунад? Ҷузъи аввалинро «беҳтарин то ҳол» меномем ва ҳар ҷузъи навро бо он муқоиса мекунем: агар калонтар бошад, «беҳтарин» иваз мешавад. Қадам ба қадам тамошо кунед:
Калонтарин ҷузъро бо даври for меёбем
2 biggest = a[0]
3 for i in range(len(a)):
4 if a[i] > biggest:
5 biggest = a[i]
6 print(biggest)
Сатри 1: a = [4, 9, 2, 7]
сатр 1 Сатр иҷро шуд.
навбатӣ Дарси 58. Кори амалӣ бо рӯйхатҳо 1 соат
Ҳамин тавр рӯйхати b аз 10 адад:
Ду тағйирёбанда (mx ва mn) дар як давр: ҳар ҷузъ бо ҳар ду муқоиса мешавад.
Худатон иҷро кунед Лабораторияи функсияҳои рӯйхат санҷида бин! Аз нав
Кор дар синф
Машқҳо
Саволҳо 1. Кадом функсияҳои корбарӣ бо рӯйхатҳоро медонед?
2. Вазифаи функсияи len() аз чӣ иборат аст?
3. Функсияи sorted() кадом амалро иҷро мекунад?
4. Функсияи max() аз min() чӣ фарқ дорад?
5. Оё бо ин функсияҳо индекси ҷузъи рӯйхатро муайян кардан мумкин аст?
6. Андозаи рӯйхат бо кадом функсия муайян карда мешавад?
Супоришҳо 7. Барномаҳои мавзӯъро таҳлил кунед ва функсияҳои корбарӣ бо рӯйхатҳоро шарҳ диҳед.
8. Барномаҳои мавзӯъро иҷро кунед (дар компютер ё дар лаборатория).
9. Ҷузъҳои калонтарин ва хурдтарини рӯйхати [ 5 , 14 , 21 , 3 , 8 , 2 , 1 , 15 , 9 , 27 ] [5, 14, 21, 3, 8, 2, 1, 15, 9, 27] [ 5 , 14 , 21 , 3 , 8 , 2 , 1 , 15 , 9 , 27 ] -ро ёбед.
10. Миқдори ҷузъҳои рӯйхати [ 10 , 11 , 12 , 31 , 415 , 46 , 47 , 48 , 79 ] [10, 11, 12, 31, 415, 46, 47, 48, 79] [ 10 , 11 , 12 , 31 , 415 , 46 , 47 , 48 , 79 ] -ро бо ёрии барнома муайян кунед.
Вазифаи хонагӣ
Саволҳои 1–6-ро шифоҳӣ омода кунед; саволи 5-ро дар дафтар нависед.
Супоришҳои 9 ва 10-ро иҷро кунед.
Вазифаи хонагии онлайнро («ТИ 10 · Вазифаи хонагӣ · Дарси 57») дар саҳифаи «Супоришҳо» иҷро кунед, агар омӯзгор таъин карда бошад.
Хулоса
len(a) – андоза; max(a), min(a) – калонтарин ва хурдтарин; sorted(a) – рӯйхати нави мураттаб, a бетағйир.
for x in a – ҷузъҳо; for i in range(len(a)) – индексҳо.
Калонтаринро бе max низ меёбем: «беҳтарин то ҳол» ва муқоисаи ҳар ҷузъ.
Дар ин дарс
len, sorted, max ва min-ро барои рӯйхат истифода мебаред;
фарқи sorted(a) ва a.sort()-ро мефаҳмед: sorted рӯйхати нав медиҳад;
ҷузъҳои рӯйхатро бо for ва бо range(len(a)) мегузаред;
калонтарин ва хурдтарин ҷузъро бо даври for бе max ва min меёбед.
Такрор (2 дақиқа)
Чӣ чоп мешавад: a = [4, 5], a.append(6), print(len(a))?
Бо кадом усул ҷузъро аз рӯи индекс мебароранд?
Чӣ медиҳад [1, 2, 3, 4][1:3]?
Ҷавоб
3. 2. pop(i). 3. [2, 3].
Вазъият барои андешаронӣ Дар рӯйхати 30 натиҷаи имтиҳон калонтарин, хурдтарин ва шумораи натиҷаҳоро дар як лаҳза ёфтан мехоҳем. Бе компютер шумо чӣ мекунед? Python барои ин чор функсияи тайёр дорад.
Оё медонед? Ин функсияҳо индекси ҷузъро намедиҳанд. Барои индекси калонтарин ҷузъ a.index(max(a)) нависед.
Ҳайвон: Саг
Ҳайвон: Гурба
Ҳайвон: Муш
Ҳайвон: Паланг
Ҳайвон: Хирс
Ҳайвон: Гов
Миқдор = 6
[1, 11, 13, 15, 16, 18, 23, 44]
[11, 44, 16, 13, 1, 18, 15, 23]
[44, 23, 18, 16, 15, 13, 11, 1]
Кори амалӣ
Дар лаборатория мисолҳои max/min ва sorted-ро иҷро кунед.
Супориши 1 – max ва min; 2 – шумораи ҷузъҳо; 3 – калонтаринро бе max ёбед.
Санҷед: sorted(["б", "А", "в"]) чӣ медиҳад? Чаро «А» якум меояд?
Калимаҳои калидӣ len sorted max min даври for муқоиса
Ман дар ин дарс чӣ омӯхтам? Кадомашро аллакай метавонед ва кадомашро боз машқ мекунед?
Ман бо len, max, min, sorted кор мекунам.
Ман медонам, ки sorted рӯйхати нав медиҳад.
Ман калонтаринро бо даври for меёбам.
Нависед: чаро max дар рӯйхати холӣ хато медиҳад?
a = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ]
print ( len ( a ) )
hayvon = [ 'Саг' , 'Гурба' , 'Муш' ,
'Паланг' , 'Хирс' , 'Гов' ]
for hay in hayvon :
print ( 'Ҳайвон:' , hay )
print ( 'Миқдор =' , len ( hayvon ) )
a = [ 7 , 3 , 9 , 3 ]
for i in range ( len ( a ) ) :
print ( i , a [ i ] )
b = [ 11 , 44 , 16 , 13 , 1 , 18 , 15 , 23 ]
print ( sorted ( b ) )
print ( b )
print ( sorted ( b , reverse = True ) )
b = [ 5 , 4 , 1 , 3 , 8 , 12 , 11 , 25 ]
print ( 'max =' , max ( b ) )
print ( 'min =' , min ( b ) )
print ( max ( [ "Нок" , "Анор" , "Себ" ] ) )
Як ҷавобро интихоб кунед A [3, 1, 2]
B [1, 2, 3]
C None
D [3, 2, 1]
Як ҷавобро интихоб кунед A Анор
B Нок
C Себ
D 3
Индекси калонтарин ҷузъи рӯйхати a-ро кадом ифода медиҳад?
Як ҷавобро интихоб кунед A max(a)
B a.index(max(a))
C len(a)
D sorted(a)[-1]
b = [ 15 , 41 , 11 , 31 , 48 , 82 , 1 , 215 , 19 , 29 ]
mx = b [ 0 ]
mn = b [ 0 ]
for x in b :
if x > mx :
mx = x
if x < mn :
mn = x
print ( 'max =' , mx )
print ( 'min =' , mn )
a = [ 5 , 8 , 1 , 9 , 2 ]
print ( len ( a ) )
a = [ 4 , 17 , 9 , 2 ]
print ( max ( a ) - min ( a ) )
a = [ 3 , 1 , 2 ]
sorted ( a )
print ( a )
print ( max ( [ "Нок" , "Анор" , "Себ" ] ) )