11-ámeliy jumıs: Python programmalastırıw tilinde kóplikler (Sets)
[b]Teoriyalıq bólim:
1. Kóplik (Set) túsinigi:[/b]
Kóplik - bul Python tilindegi qáytalanatuǵın elementlerdi saqlap qalmaytuǵın, tártipsiz hám ózgeriwsheń kollekciya bolıp tabıladı. Kóplikler figuralı qawsırmalar {} menen belgilenedi yamasa set() funkciyası arqalı jaratıladı.
[b]2. Kópliklerdiń tiykarǵı qásiyetleri:[/b]
• Qáytalanatuǵın elementlerdi saqlap qalmaydı
• Tártipsiz (indekslengen emes)
• Ózgeriwsheń (mutable)
• Tek ózgermeytuǵın (immutable) elementlerdi saqlawı múmkin
[b]3. Kópliklerdiń artıqmashılıqları:[/b]
• Tez izlew hám elementlerdi tekseriwde
• Qáytalanatuǵın elementlerdi avtomatik túrde joq etiwde
• Matematikalıq kóplik ámellerinde (birlespe, kesispe, ayırma)
[b]4. Kópliklerdiń kemshilikleri:[/b]
• Tártipsiz bolǵanlıǵı sebepli indeks arqalı elementlerge kirise almaymız
• Tek ózgermeytuǵın elementlerdi saqlawı múmkin
[b]Ámeliy bólim:
1. Kóplik jaratıw:[/b]
[b]2. Kóplikke element qosıw:[/b]
[b]3. Kóplikten element óshiriw:[/b]
[b]4. Kóplikler ústin ámellerdi qollanıw:[/b]
[b]5. Kópliklerdi salıstırıw:[/b]
[b]ÁMELIY MÍSALLAR[/b]
[b]1. Studentler dizimin kóplik túrinde saqlap, olardı basqarıw:[/b]
[b]2. Eki klasstıń oqıwshıların salıstırıw:[/b]
[b]3. Sózlerdiń unikallıǵın tekseriwde kópliklerdi qollanıw:[/b]
4. Sanlar kópligi menen islew:[/b]
[b]5. Kóplikler járdeminde dublikatlardı joq etiw:[/b]
[b]6. Kóplikler menen logikalıq operaciyalardı qollanıw:[/b]
[b]7. Kópliklerdi qollanıp, tillerdi úyreniw progressin baqlawǵa mısal:[/b]
1. Kóplik (Set) túsinigi:[/b]
Kóplik - bul Python tilindegi qáytalanatuǵın elementlerdi saqlap qalmaytuǵın, tártipsiz hám ózgeriwsheń kollekciya bolıp tabıladı. Kóplikler figuralı qawsırmalar {} menen belgilenedi yamasa set() funkciyası arqalı jaratıladı.
[b]2. Kópliklerdiń tiykarǵı qásiyetleri:[/b]
• Qáytalanatuǵın elementlerdi saqlap qalmaydı
• Tártipsiz (indekslengen emes)
• Ózgeriwsheń (mutable)
• Tek ózgermeytuǵın (immutable) elementlerdi saqlawı múmkin
[b]3. Kópliklerdiń artıqmashılıqları:[/b]
• Tez izlew hám elementlerdi tekseriwde
• Qáytalanatuǵın elementlerdi avtomatik túrde joq etiwde
• Matematikalıq kóplik ámellerinde (birlespe, kesispe, ayırma)
[b]4. Kópliklerdiń kemshilikleri:[/b]
• Tártipsiz bolǵanlıǵı sebepli indeks arqalı elementlerge kirise almaymız
• Tek ózgermeytuǵın elementlerdi saqlawı múmkin
[b]Ámeliy bólim:
1. Kóplik jaratıw:[/b]
# Figuralı qawsırmalar arqalı
fruits = {'alma', 'almurt', 'banan', 'apelsin'}
# set() funkciyası arqalı
numbers = set([1, 2, 3, 4, 5])
# Bos kóplik
empty_set = set()
[b]2. Kóplikke element qosıw:[/b]
fruits.add('juzim')
print(fruits) # {'alma', 'almurt', 'banan', 'apelsin', 'juzim'}
fruits.update(['ananas', 'qawın'])
print(fruits) # {'alma', 'almurt', 'banan', 'apelsin', 'juzim', 'ananas', 'qawın'}
[b]3. Kóplikten element óshiriw:[/b]
fruits.remove('banan')
print(fruits) # {'alma', 'almurt', 'apelsin', 'juzim', 'ananas', 'qawın'}
# Eger element bolmasa qáte bermeydi
fruits.discard('mango')
[b]4. Kóplikler ústin ámellerdi qollanıw:[/b]
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# Birlespe
union_set = set1.union(set2)
print(union_set) # {1, 2, 3, 4, 5, 6, 7, 8}
# Kesispe
intersection_set = set1.intersection(set2)
print(intersection_set) # {4, 5}
# Ayırma
difference_set = set1.difference(set2)
print(difference_set) # {1, 2, 3}
[b]5. Kópliklerdi salıstırıw:[/b]
set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5}
print(set1.issubset
[b]ÁMELIY MÍSALLAR[/b]
[b]1. Studentler dizimin kóplik túrinde saqlap, olardı basqarıw:[/b]
# Studentler kópligi
students = {'Aliy', 'Ayjan', 'Berdaq', 'Gúlnara', 'Dawlet'}
# Jańa student qosıw
students.add('Jańabay')
print("Jańa student qosılǵannan keyin:", students)
# Bir neshe student qosıw
new_students = {'Marat', 'Sáwle', 'Timur'}
students.update(new_students)
print("Bir neshe student qosılǵannan keyin:", students)
# Studentti óshiriw
students.remove('Aliy')
print("Aliy óshirilgennen keyin:", students)
# Studentti izlew
search_name = 'Gúlnara'
if search_name in students:
print(f"{search_name} student diziminde bar")
else:
print(f"{search_name} student diziminde joq")
[b]2. Eki klasstıń oqıwshıların salıstırıw:[/b]
class_a = {'Aliy', 'Berdaq', 'Gúlnara', 'Jańabay', 'Marat'}
class_b = {'Ayjan', 'Dawlet', 'Gúlnara', 'Sáwle', 'Timur'}
# Eki klassta da bar bolǵan oqıwshılar
common_students = class_a.intersection(class_b)
print("Eki klassta da oqıytugın oqıwshılar:", common_students)
# Tek A klassında bar bolǵan oqıwshılar
only_in_a = class_a.difference(class_b)
print("Tek A klassında oqıytugın oqıwshılar:", only_in_a)
# Barlıq oqıwshılar dizimi
all_students = class_a.union(class_b)
print("Barlıq oqıwshılar:", all_students)
[b]3. Sózlerdiń unikallıǵın tekseriwde kópliklerdi qollanıw:[/b]
text = "Bul bir úlken tekst. Bul tekstte sózler qaytalanıwı múmkin. Biz usı teksttegi unikal sózlerdi tabamız."
# Tekstti sózlerge ajıratıw hám kóplikke aylandırıw
words = set(text.lower().split())
print("Teksttegi unikal sózler sanı:", len(words))
[b]print("Unikal sózler:", words)
4. Sanlar kópligi menen islew:[/b]
numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
# Jup sanlar kópligi
even_numbers = {num for num in numbers if num % 2 == 0}
print("Jup sanlar:", even_numbers)
# Taq sanlar kópligi
odd_numbers = numbers.difference(even_numbers)
print("Taq sanlar:", odd_numbers)
# 5 ten úlken sanlar
greater_than_five = {num for num in numbers if num > 5}
print("5 ten úlken sanlar:", greater_than_five)
[b]5. Kóplikler járdeminde dublikatlardı joq etiw:[/b]
# Dublikatlı dizim
numbers_with_duplicates = [1, 2, 2, 3, 4, 4, 5, 5, 6, 7, 7, 8, 9, 9, 10]
# Kóplik járdeminde dublikatlardı joq etiw
unique_numbers = set(numbers_with_duplicates)
print("Dáslepki dizim:", numbers_with_duplicates)
print("Dublikatları joq etilgen dizim:", list(unique_numbers))
[b]6. Kóplikler menen logikalıq operaciyalardı qollanıw:[/b]
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
C = {3, 4, 5, 9, 10}
# Barlıq úsh kóplikte bar bolǵan elementler
common_elements = A & B & C
print("Barlıq úsh kóplikte bar bolǵan elementler:", common_elements)
# A yamasa B de bar, biraq C de joq bolǵan elementler
in_a_or_b_not_c = (A | B) - C
print("A yamasa B de bar, biraq C de joq bolǵan elementler:", in_a_or_b_not_c)
# Tek ǵana bir kóplikte bar bolǵan elementler
unique_to_one_set = (A ^ B ^ C) - ((A & B) | (B & C) | (A & C))
print("Tek ǵana bir kóplikte bar bolǵan elementler:", unique_to_one_set)
[b]7. Kópliklerdi qollanıp, tillerdi úyreniw progressin baqlawǵa mısal:[/b]
english_words = {"apple", "book", "cat", "dog", "elephant"}
learned_words = set()
def learn_word(word):
if word in english_words:
learned_words.add(word)
print(f"'{word}' sózi úyrenildi!")
else:
print(f"'{word}' sózi dizimde joq.")
def check_progress():
remaining_words = english_words - learned_words
progress = (len(learned_words) / len(english_words)) * 100
print(f"Siz {len(learned_words)} sóz úyrendińiz. ({progress:.2f}% progress)")
print(f"Qalǵan sózler: {remaining_words}")
# Sózlerdi úyreniw
learn_word("apple")
learn_word("book")
learn_word("sun") # Bul sóz dizimde joq
# Progressti tekserip kóriw
check_progress()