Файл: Игра 3 в ряд на языке Python по дисциплине Языки и системы программирования. Данная программа осуществляет вывод на экран случайным образом расположенных объектов разного цвета и дальнейшие варианты их взаимодействия.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 07.11.2023

Просмотров: 938

Скачиваний: 20

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

sum([2, 1, 3, 4, 7])

17
2.3. min и maxЭти функции выдают минимальное и максимальное число из набора соответственно.

numbers = [2, 1, 3, 4, 7, 11, 18]

min(numbers)

1

max(numbers)

18
2. 5 функций для отладкиЭти функции часто игнорируются, но будут полезны для отладки и устранения неисправностей кода.3.1. BreakpointЕсли нужно приостановить выполнение кода и перейти в командную строку Python, эта функция вам пригодится. Вызов breakpoint перебросит вас в отладчик Python.3.2. DirЭта функция может использоваться в двух случаях:

  • Просмотр списка всех локальных переменных;

  • Просмотр списка всех атрибутов конкретного объекта.
3.3. VarsЭта функция является своего рода смесью двух похожих инструментов: locals() и __dict__.Когда vars вызывается без аргументов, это эквивалентно вызову locals(), которая показывает словарь всех локальных переменных и их значений.Когда вызов происходит с аргументом, vars получает доступ к атрибуту __dict__, который представляет собой словарь всех атрибутов экземпляра.3.4. TypeЭта функция возвращает тип объекта, который вы ей передаете.3.5. HelpЕсли вы находитесь в Python Shell или делаете отладку кода с использованием breakpoint, и хотите знать, как работает определённый объект, метод или атрибут, функция help поможет вам.4. Функции, которые пригодятся позжеВ начале изучения Python эти функции вам по большей части будут не нужны, но в конечном итоге они вам понадобятся.4.1. OpenЭта функция служит для открытия файла и последующей работы с ним. Но, если вы не работаете с файлами напрямую, то она вам может и не пригодиться.4.2. InputЭта функция запрашивает у пользователя ввод, ждёт нажатия клавиши Enter, а затем возвращает набранный текст.4.3. PropertyЭта функция является декоратором и дескриптором.Декоратор позволяет создать атрибут, который всегда будет содержать возвращаемое значение конкретного вызова функции. Это проще всего понять на примере:

class Circle:

def __init__(self, radius=1):

self.radius = radius

@property

def diameter(self):

return self.radius * 2
Здесь можно увидеть доступ к атрибуту diameter объекта Circle.[8]1.3. Типы данных PythonВсе данные в Python представлены объектами. Имена являются лишь ссылками на эти объекты и не несут нагрузки по декларации типа. Значения встроенных типов имеют специальную поддержку в синтаксисе языка: можно записать литерал строки, числа, списка, кортежа, словаря (и их разновидностей). Синтаксическую же поддержку операций над встроенными типами можно легко сделать доступной и для объектов определяемых пользователями классов.
Следует также отметить, что объекты могут быть неизменчивыми и изменчивыми. Например, строки в Pythonявляются неизменчивыми, поэтому операции над строками создают новые строки.Карта встроенных типов (с именами функций для приведения к нужному типу и именами классов для наследования от этих типов):

  1. Специальные типы: NONE, NotImplemented и Ellipsis;
2. Числа: 1) Целые:

  • Обычное целое int;

  • Целое произвольной точности long;

  • Логическое bool.
2) Число с плавающей точкой float;3) Комплексное число complex.3. Последовательности: 1) Неизменчивые:

  • Строка str;

  • Unicode-строка Unicod;

  • Кортеж tuple;
2) Изменчивые:

  • Список list;

  • Отображения;

  • Словарь dict.
4. Объекты, которые можно вызвать: 1) Функции (пользовательские и встроенные); 2) Функции-генераторы; 3) Методы (пользовательские и встроенные); 4) Классы (новые и «классические»); 5) Экземпляры классов (если имеют метод _call_).5.Модули6.Файлы file7.Вспомогательные типы buffer, slice. [5]Узнать тип любого объекта можно с помощью встроенной функции type().


Таблица 1.1. - Типы, используемые в Python


Тип

Изменяемость

Описание

bool

Неизменяемый

Логический тип

bytearray

Изменяемый

Массив байтов

bytes

Неизменяемый

Массив байтов

complex

Неизменяемый

Комплексное число

dict

Изменяемый

Словарь
Продолжение таблицы 1.1.

ellipsis

Неизменяемый

Многоточие

float

Неизменяемый

Число с плавающей запятой

frozenset

Неизменяемый

Неупорядоченное множество

list

Изменяемый

Список

range

Неизменяемый

Последовательность целых чисел

str

Неизменяемый

Строковой тип

set

Изменяемый

Неупорядоченное множество

tuple

Неизменяемый

Кортеж
1.4. Модули Python1. Определение и подключение модулейМодуль в языке Python представляет отдельный файл с кодом, который можно повторно использовать в других программах.Для создания модуля необходимо создать собственно файл с расширением *. py, который будет представлять модуль. Название файла будет представлять название модуля. Затем в этом файле надо определить одну или несколько функций.Допустим, основной файл программы называетсяgame.py. И мы хотим подключить к нему внешние модули.Для этого сначала определим новый модуль: создадим в той же папке, где находится ga
me.py, новый файл, который назовем draw.py. Если используется PyCharm или другая IDE, то оба файла просто помещаются в один проект.Для использования модуля его надо импортировать с помощью оператора import, после которого указывается имя модуля: import message

import pygame, message, random, math, os
Чтобы обращаться к функциональности модуля, нам нужно получить его пространство имен. По умолчанию оно будет совпадать с именем модуля, то есть в нашем случае также будет называться message.Получив пространство имен модуля, мы сможем обратиться к его функциям по схеме:

пространство_имен.функция
Например, обращение к функции print_message() из модуля message:

message.print_message(«Hello work»)
2. Подключение функциональности модуля в глобальное пространство именДругой вариант настройки предполагает импорт функциональности модуля в глобальное пространство имен текущего модуля с помощью ключевого слова from:

from message import print_message

print_message(«Hello work»)
В данном случае мы импортируем из модуля message в глобальное пространство имен функцию print_message(). Поэтому мы сможем ее использовать без указания пространства имен модуля, как если бы она была определена в этом же файле.Все остальные функции, переменные из модуля недоступны (как например, в примере выше переменная hello). Если мы хотим их также использовать, то их можно подключить по отдельности:

from message import print_message

from message import hello

print_message(«Hello work»)

print_message(hello)
Если необходимо импортировать в глобальное пространство имен весь функционал, то вместо названий отдельных функций и переменных можно использовать символ звёздочки *:

from message import *

print_message(«Hello work»)

print_message(hello)
3. Установка псевдонимовПри импорте модуля и его функциональности мы можем установить для них псевдонимы. Для этого применяется ключевое слово as, после которого указывается псевдоним. Например, установим псевдоним для модуля:

import message as mes

print(mes.hello)

mes.print_message(«Hello work»)
В данном случае пространство имен будет называться mes, и через этот псевдоним можно обращаться к функциональности модуля.Подобным образом можно установить псевдонимы для отдельной функциональности модуля:

from message import print_message as display

from message import hello as welcome

print(welcome)

display(«Hello work»)
Здесьдляфункции print_message измодуля message устанавливаетсяпсевдоним display, адляпеременной hello - псевдоним welcome. И через эти псевдонимы мы сможем к ним обращаться.4. Имя модуляВ примере выше модуль game.py, который является главным, использует модуль message.py. При запуске модуля main.py программа выполнит всю необходимую работу. Однако, если мы запустим отдельно модуль message.py сам по себе, то ничего на консоли не увидим. Ведь модуль message просто определяет функцию и переменную и не выполняет никаких других действий. Но мы можем сделать так, чтобы модуль message.py мог использоваться как сам по себе, так и подключаться в другие модули.При выполнении модуля среда определяет его имя и присваивает его глобальной переменной __name__ (с обеих сторон по два подчеркивания). Если модуль является запускаемым, то его имя равно __main__ (также по два подчеркивания с каждой стороны). Если модуль используется в другом модуле, то в момент выполнения его имя аналогично названию файла без расширения *py. И мы можем это использовать. Так, изменим содержимое файла message.py:

hello = «Hello all»



def print_message(text):

print(f»Message: {text}»)

def main():

print_message(hello)

if __name__ == «__main__»:

main()
В данном случае в модуль message.py для тестирования функциональности модуля добавлена функция main. И мы можем сразу запустить файл message.py отдельно от всех и протестировать код.Переменная __name__ указывает на имя модуля. Для главного модуля, который непосредственно запускается, эта переменная всегда будет иметь значение __main__ вне зависимости от имени файла.