Алгоритм 14.10.24 (русско-казахский) PDF
Document Details
Uploaded by EngagingJudgment7728
Tags
Summary
Этот документ содержит введение в типы данных Python, с русско-казахским переводом. Документ охватывает явные и неявные, статические и динамические типы, и различные типы данных в Python (строки, списки, множества и т.д).
Full Transcript
Языки высокого уровня работают не с битами и байтами, а с более абстрактными структурами данных - типами, поэтому эти языки принято считать типизированными. Выделяют несколько видов типизации: Явная / неявная Статическая / динамическая Рассмотрим данные виды подробнее: Жоғары деңгейлі тілдер битт...
Языки высокого уровня работают не с битами и байтами, а с более абстрактными структурами данных - типами, поэтому эти языки принято считать типизированными. Выделяют несколько видов типизации: Явная / неявная Статическая / динамическая Рассмотрим данные виды подробнее: Жоғары деңгейлі тілдер биттермен және байттармен жұмыс істемейді, бірақ дерексіз деректер құрылымдарымен - типтермен жұмыс істейді, сондықтан бұл тілдер әдетте терілген (типизированыые) болып саналады. Терудің бірнеше түрі бар: Айқын / жасырын Статикалық/динамикалық Осы түрлерді толығырақ қарастырайық: Если подвести итог относительно языка, ради которого мы тут собрались, то: Python - это язык с неявной(динамической) типизаций. На практике это значит, что при создании переменной намеренно указывать ее тип НЕ нужно. Біз осында Python тілді қорытындылайтын болсақ, онда: Python - жасырын (динамикалық) типизациясы бар тіл. Іс жүзінде бұл айнымалыны жасау кезінде оның түрін әдейі көрсетудің КЕРЕК БОЛМАЙДЫ дегенді білдіреді. В Python типы данных можно разделить на: Встроенные в интерпретатор (built-in) и Не встроенные, которые можно использовать после импорта соответствующих модулей. Python-да деректер түрлерін келесіге бөлуге болады: Аудармашы-кіріктірілген (кіріктірілген) және Тиісті модульдерді импорттағаннан кейін пайдалануға болатын кірістірілген емес. К основным встроенным типам относятся: 1. None (неопределенное значение переменной) 2. Логические переменные (Boolean Type) 3. Числа (Numeric Type) int– целое число float – число с плавающей точкой complex – комплексное число Негізгі кірістірілген типтерге мыналар жатады: 1. Ешбір (анықталмаған айнымалы мән) 2. Логикалық айнымалылар (Логикалық тип) 3. Сандар (Сандық тип) int – бүтін сан float - өзгермелі нүкте саны комплекс – комплекс сан 4. Списки (Sequence Type)list – список tuple – кортеж 5. Строки (Text Sequence Type )str 4. Тізімдер (Sequence Type)list - тізім кортеж - кортеж 5. Жолдар (Мәтін тізбегінің түрі)str 6. Бинарные списки (Binary Sequence Types)bytes – байты bytearray – массивы байт memoryview – специальные объекты для доступа к внутренним данным объекта через protocol buffer 7. Множества (Set Types)set – множество frozenset – неизменяемое множество 8. Словари (Mapping Types)dict – словарь 6. Екілік реттілік түрлері байт – байт bytearray - байт массивтері memoryview – протокол буфері арқылы объектінің ішкі деректеріне қол жеткізуге арналған арнайы объектілер 7. Sets (Set Types)жинақ – орнату frozenset – өзгермейтін жиын 8. Сөздіктер (Карталау түрлері)dict – сөздік Последовательности в Python Последовательность(Sequence Type) — итерируемый контейнер, к элементам которого есть эффективный доступ с использованием целочисленных индексов. Последовательности могут быть как изменяемыми, так и неизменяемыми. Размерность и состав созданной однажды неизменяемой последовательности не может меняться, вместо этого обычно создаётся новая последовательность. Примеры последовательностей в стандартной библиотеке Python: Список (list) - изменяемая Кортеж (tuple) - неизменяемая Диапазон (range) - неизменяемая Строка (str, unicode) - неизменяемая Python жүйесіндегі реттіліктер Секвенция түрі - элементтеріне бүтін индекстерді пайдалану арқылы тиімді қатынасуға болатын қайталанатын контейнер. Тізбектер өзгермелі немесе өзгермейтін болуы мүмкін. Бір рет жасалған өзгермейтін тізбектің өлшемі мен құрамы оның орнына өзгермейді, әдетте жаңа реттілік жасалады; Python стандартты кітапханасындағы тізбектердің мысалдары: Тізім – өзгермелі Кортеж – өзгермейтін Ауқым – өзгермейді Жол (str, Unicode) – өзгермейтін Дан произвольный список. Представьте его в обратном порядке. Ерікті тізім беріледі. Оны керісінше елестетіп көріңіз. На практике применяется 2 способа: 1. На основании срезов (пройтись по всем элементам списка с шагом -1, т.е. в обратном порядке) Практикада 2 әдіс қолданылады: 1. Кесу негізінде (тізімнің барлық элементтерін -1 қадаммен, яғни кері ретпен өту) Пример – IDE my_list = [2, 4, 8] print(my_list[::-1]) Результат выполнения [8, 4, 2] Мысал – IDE my_list = [2, 4, 8] print(my_list[::-1]) Орындау нәтижесі [8, 4, 2] 2. При помощи метода списков reverse() Пример – IDE my_list = [2, 4, 8] my_list.reverse() print(my_list) Результат выполнения [8, 4, 2] 2. Reverse() тізімдер әдісін пайдалану Мысал – IDE my_list = [2, 4, 8] my_list.reverse() print(my_list) Орындау нәтижесі [8, 4, 2] Напишите функцию change(lst), которая принимает список и меняет местами его первый и последний элемент. В исходном списке минимум 2 элемента. Бірінші және соңғы элементін орындар бойынша ауыстыратын change(lst) функциясын жазыңыз. Бастапқы тізімде кемінде 2 элемент бар. Рассмотрим 2 варианта решения. Для первого способа понадобится воспользоваться методами pop() и insert(). 2 шешімді қарастырайық. Бірінші әдіс pop() және insert() әдістерін пайдаланады. def change(lst): new_start = lst.pop() # Удаляем последний элемент и сохраняем его в переменную new_end = lst.pop(0) # Удаляем первый элемент и сохраняем его в переменную lst.append(new_end) # Добавляем к списку новый последний элемент lst.insert(0, new_start) # Добавляем к списку новый первый элемент return lst # Тесты print(change([1, 2, 3])) print(change([1, 2, 3, 4, 5])) print(change(['н', 'л', 'о', 'с'])) Результат выполнения [3, 2, 1] [5, 2, 3, 4, 1] ['с', 'л', 'о', 'н'] def change(lst): new_start = lst.pop() # Соңғы элементті жойып, оны айнымалыға сақтаңыз new_end = lst.pop(0) # Бірінші элементті жойып, оны lst.append(new_end) айнымалыға сақтаңыз # Тізімге жаңа соңғы элементті қосыңыз lst.insert(0, new_start) # Тізімге жаңа бірінші элемент қосу return lst # Тесты print(change([1, 2, 3])) print(change([1, 2, 3, 4, 5])) print(change(['н', 'л', 'о', 'с'])) Результат выполнения [3, 2, 1] [5, 2, 3, 4, 1] ['с', 'л', 'о', 'н'] Второй способ занимает меньше кода def change(lst): lst, lst[-1] = lst[-1], lst return lst # Тесты print(change([1, 2, 3])) print(change([1, 2, 3, 4, 5])) print(change(['н', 'л', 'о', 'с'])) Орындау нәтижесі: [3, 2, 1] [5, 2, 3, 4, 1] ['с', 'л', 'о', 'н'] Николай задумался о поиске «бесполезного» числа на основании списка. Суть оного в следующем: он берет произвольный список чисел, находит самое большое из них, а затем делит его на длину списка. Студент пока не придумал, где может пригодиться подобное значение, но ищет у вас помощи в реализации такой функции useless(s). Николай тізім бойынша «пайдасыз» нөмірді табуды ойлады. Оның мәні мынада: ол сандардың ерікті тізімін алады, олардың ең үлкенін табады, содан кейін оны тізімнің ұзындығына бөледі. Студент мұндай мән қай жерде пайдалы болуы мүмкін екенін әлі анықтаған жоқ, бірақ мұндай пайдасыз функцияны жүзеге асыруда сізден көмек іздейді. def useless(lst): return max(lst) / len(lst) # Тесты print(useless([1, 5, 77])) print(useless([19, 8.3, -4, 11, 0, 5])) print(useless([-33, -0.05, -4.18, 11.2, 13.12, 55, 7.1])) Результат выполнения 25.666666666666668 3.1666666666666665 7.857142857142857 def useless(lst): return max(lst) / len(lst) # Тесты print(useless([1, 5, 77])) print(useless([19, 8.3, -4, 11, 0, 5])) print(useless([-33, -0.05, -4.18, 11.2, 13.12, 55, 7.1])) Орындау нәтижесі 25.666666666666668 3.1666666666666665 7.857142857142857