Вы находитесь на странице: 1из 16

Список вопросов к экзамену

1. Типы данных.
Логический bool(истина(true), ложь(false))
Числа: int(целое число), float(с плавающей точкой), complex(комплексное)
Строки(str) – последовательности символов юникода
Списки(list) – упорядоченные последовательности значений
Кортежи(tuple) – упорядоченные неизменяемые последовательности значений
Словари(dict) – неупорядоченные наборы пар ключ-значение
Множества(set) – неупорядоченные наборы значений

2. Переменные.
Переменная – это поименованная область памяти, содержащая какое-то значение.
Значения могут быть разных типов, например, строка, целое число, дробное число (float)
и т.д. От типа переменной зависит, как именно она будет храниться в памяти. Имя
переменной не должно начинаться с цифры. Имя переменной может состоять только из
букв, цифр и знаков подчеркивания.

3. Числовые типы данных.


Python поддерживает четыре различных числовых типа данных: int  – целые числа
(integers); long – большие целые числа, так же можно использоваться для
восьмеричных (octal) или десятеричных (hexadecimal) чисел; float – числа с
плавающей точкой; complex – комплексные числа.

4. Операции над числовыми типами данных.


Арифметические операции:
x + y — сложение; x - y — вычитание; x * y — умножение; x / y — деление;
x // y — целочисленное деление; x % y — остаток от деления;
x ** y — возведение в степень; -x — смена знака; abs(x) — модуль числа;
divmod(x, y) — возвращает кортеж из частного и остатка от деления x на y;
pow(x, y[, z]) — возведение числа в степень (z — деление по модулю);
round(x[, ndigits]) — округление числа (ndigits - знаки после запятой).

Сравнение чисел:
x == y — равно; x != y — не равно;
x > y — больше; x < y — меньше;
x >= y — больше или равно; x <= y — меньше или равно.
Преобразования
int(x) — преобразование в целое число int;
float(x) — преобразование в число с плавающей точкой float;
complex(x) — преобразование в комплексное число complex;
bin(x) — целое числа в двоичную строку;
oct(x) — целое число в восьмеричную строку;
hex(х) — целое число в шестнадцатеричную строку;
[int(x) for x in str(123)] — перевод целого числа 123 в список цифр этого числа;
int(''.join(str(digit) for digit in [1,2,3])) — перевод списка цифр [1,2,3] в целое число 123;
str(x) — число в строку;

5. Строки.

Строки в языке Python — это встроенные объекты, создаваемые с помощью


специальных литералов, относятсящиеся к неизменяемому типу данных и
представляющие собой последовательности символов, интерфейс доступа к которым
основан на их смещении, а сами символы представляют собой порядковые номера
кодовых точек таблицы базового символьного набора и по отдельности могут
рассматриваться, как строки единичной длины.

6. Строки unicod.

Юникод — это спецификация, которая направлена на перечисление каждого символа,


используемого человеческими языками, и присвоение каждому символу его собственного
уникального кода. Спецификации Юникод постоянно пересматриваются и обновляются,
чтобы добавить новые языки и символы.

Символ — это наименьший возможный компонент текста. «A», «B», «C» и т. д. — разные
символы. То же самое и «È» и «Í». Символы различаются в зависимости от языка или
контекста, о которых вы говорите. Например, для «римской цифры один» есть символ «Ⅰ»,
который отделён от прописной буквы «I». Обычно они выглядят одинаково, но это два
разных символа, которые имеют разные значения.

Стандарт Юникод описывает, как символы представлены кодовыми точками. Значение


кодовой точки — это целое число в диапазоне от 0 до 0x10FFFF (около 1.1 миллиона
значений, из которых на данный момент присвоено около 110 тысяч). В стандарте и в
этом документе кодовая точка записывается с использованием обозначения U+265E для
обозначения символа со значением 0x265e (9822 в десятичной системе).

Строковый тип¶
Начиная с Python 3.0, тип языка str содержит символы Юникод, что означает любую
строку, созданную с использованием "unicode rocks!", 'unicode rocks!' или
сохраняется строковый синтаксис с тройными кавычками как Юникод.

Кодировка по умолчанию для исходного кода Python — UTF-8, поэтому вы можете просто
включить символ Юникод в строковый литерал

Так как строки - это последовательность кодов Юникод, можно записать строку разными
способами.

Символ Юникод можно записать, используя его имя:

In [1]: "\N{LATIN SMALL LETTER O WITH DIAERESIS}"


Out[1]: 'ö'

Или использовав такой формат:

In [4]: "\u00F6"
Out[4]: 'ö'

Строку можно записать как последовательность кодов Юникод:

In [19]: hi1 = 'привет'

In [20]: hi2 = '\u043f\u0440\u0438\u0432\u0435\u0442'

In [21]: hi2
Out[21]: 'привет'

In [22]: hi1 == hi2


Out[22]: True

In [23]: len(hi2)
Out[23]: 6

Функция ord возвращает значение кода Unicode для символа:

In [6]: ord('ö')
Out[6]: 246

Функция chr возвращает символ Юникод, который соответствует коду:

In [7]: chr(246)
Out[7]: 'ö'

7. Вывод данных.

Вывод данных осуществляется функцией «print()». Эта функция выводин на экран то,
что находится в ее скобках, в которых могут быть любые типы данных и любое их
количество.
8. Ввод данных.

За ввод в программу данных с клавиатуры в Python отвечает функция  input . Когда


вызывается эта функция, программа останавливает свое выполнение и ждет, когда
пользователь введет текст. После этого, когда он нажмет Enter,

функция  input()  заберет введенный текст и передаст его программе, которая уже
будет обрабатывать его согласно своим алгоритмам.

9. Форматированный ввод/вывод.

Часто требуется больше контроля над форматированием выходных данных, чем просто
печать разделенных пробелом значений. Существует несколько способов форматирования
выходных данных.

 Чтобы использовать форматированные строковые литералы, начните строку с f


или F перед открывающей кавычкой или тройной кавычкой. Внутри этого строки
можно записать Python выражение между символами { и }, которое может
ссылаться на переменные или литеральные значения.
 Метод str.format() строки требует больших ручных усилий. Вы по-прежнему
будете использовать { и }, чтобы отметить, где переменная будет заменена, и
можете предоставить подробные директивы форматирования, но вам также
потребуется предоставить информацию для форматирования.
 Наконец, можно выполнить всю обработку строки самостоятельно, используя
операции слайсинга и конкатенации строки для создания любого макета, который
вы можете себе представить. Тип строки имеет несколько методов, которые
выполняют полезные операции для заполнения строки заданной ширины столбца.
 Если вам не нужны вычурные выходные данные, а просто требуется быстрое
отображение некоторых переменных для отладки, вы можете преобразовать любое
значение в строку функциями repr() или str().

Предназначение функции str() — возврат значений в довольно-таки читабельной


форме; в отличие от repr() , чьё назначение — генерирование форм, которые могут
быть прочитаны интерпретатором (или вызовут ошибку SyntaxError, если
эквивалентного синтаксиса не существует). Для тех объектов, у которых нет формы
для человеческого прочтения функция str() возвратит такое же значение, как и
repr(). У многих значений, таких как числа или структуры, вроде списков и словарей,
одинаковая форма для обеих функций. Строки и числа с плавающей точкой, в
частности, имеют по две разных формы.

10.Списки.
Список(list) в Python - это упорядоченная, изменяемая коллекция объектов разных
типов. Т.е в список мы можем положить, всё, что угодно, числа, строки, кортежи,
словари, коллекции, другие списки, значения которых могут повторяться, т.к списки в
Python - не уникальны.

11.Выражения в списках.

В Питоне есть альтернативный способ создания списков по определённым правилам,


позволяющий избегать использования функций filter(), map(), reduce(): использование
выражений внутри списков. Такие выражения имеют следующий формат: заголовок цикла
for, задающий ограничения при создании списков, за этим циклом может(необязательно)
следовать некоторое количество условий if и циклов for, по которым, собственно, и
создаётся результативный список. Приведём пример таких выражений:

>>> freshfruit = [' банан', ' ананас', 'яблоко ']

>>> [weapon.strip() for weapon in freshfruit]

['банан', 'ананас', 'яблоко']

>>> vec = [2, 4, 6]

>>> [3*x for x in vec]

[6, 12, 18]

12.Оператор del.

Данный оператор полезен для удаления объектов из памяти, когда они не нужны(после
удаления объекта или переменной, вы не сможете больше к ним обращаться). Кроме того,
оператор del может использоваться для удаления элемента из списка по его индексу или
по промежутку:

>>> a

[-1, 1, 66.6, 333, 333, 1234.5]

>>> del a[0]

>>> a

[1, 66.6, 333, 333, 1234.5]

>>> del a[2:4]

>>> a
[1, 66.6, 1234.5]

13.Использование списков, как стеков.

Стек – это структура данных, организованнная по принципу “Последним пришёл, первым


ушёл”(LIFO). В Питоне нет встроенного класса стека, но вы можете использовать списки
Питона так, как они были бы стеками: для добавления элемента используйте append, а для
получения последнего – метод pop() без аргумента(метод pop удаляет элемент).
Например:

>>> stack = [3, 4, 5]

>>> stack.append(6)

>>> stack.append(7)

>>> stack

[3, 4, 5, 6, 7]

>>> stack.pop()

14.Использование списков, как очередей.

Очередь – это другая структура данных, организованнная по принципу “Первым пришёл,


первым ушёл”(FIFO). В Питоне нет встроенного класса очереди, но вы можете также
использовать списки Питона: для добавления элемента используйте append, а для
получения последнего – метод pop(0)(метод pop удаляет элемент). Например:

>>> queue = [1, 2, 3]

>>> queue.append(4) # Terry arrives

>>> queue.append(5) # Graham arrives

>>> queue.pop(0)

15.Операции сравнения для списков.

Для сравнения можно использовать следующие функции:


 reduce() и map();
 collection.counter();
 sort() вместе с оператором ==;
 set() вместе с оператором ==;
 List Comprehension.

Мы можем использовать функцию map() вместе с functools.reduce() для сравнения


элементов двух списков. Метод map() принимает в качестве аргументов функцию и
коллекцию (список, кортеж, строку и т. д.). Он применяет переданную функцию к
каждому элементу перебираемого объекта и возвращает коллекцию.

Метод functools.reduce() применяет переданную функцию к каждому переданному


элементу рекурсивным способом.

Метод map() применит переданную функцию к каждому элементу, а reduce() обеспечит ее


последовательное применение.

Метод collection.counter() может использоваться для сравнения списков. Функция counter()


подсчитывает частоту элементов в списке и сохраняет данные в виде словаря, представленного в
формате <значение>: <частота>. Если два списка имеют одинаковый выходной словарь, то они
одинаковы.

Для сравнения двух списков можно использовать метод sort() вместе с оператором ==.
Метод sort() используется для сортировки таким образом, чтобы элементы в двух списках
находились на одинаковых позициях.

Метод set() управляет элементами отсортированных последовательностей без учета их


порядка. Оператор ==используется для сравнения списков поэлементно.

16.Диапазоны.

Функция range в Python это одна из встроенных функций стандартной библиотеки. Она
создаёт последовательность чисел типа int, от числа start до stop, с шагом step, указанными
пользователем. Наиболее распространённое использование в циклах for.

Функция range() принимает обязательный и два необязательных параметра. В этом уроке


мы Вы сможете изучить все возможности этой функции.

Это главный способ использовать range(). Нужен всего один параметр для того чтобы
задать верхнюю границу.

Последовательность чисел генерируется при таком варианте с нуля.

Range с нулём в качестве аргумента создаёт пустой диапазон.


Range start stop step

Это немного более сложная форма range. Вы можете сгенерировать последовательность


чисел более подробно задав необходимые параметры.

Для этого необходимо передать аргументы:

 start – От какого числа строить последовательность


 stop — До какого числа строить последовательность
 step — Шаг создания последовательности (по умолчанию равен 1)

Следует помнить:

 Нельзя устанавливать шаг равный нулю, иначе Вы получите ошибку ValueError.


 Значение, тип которого отличается от integer, вызывает TypeError.
 Ненулевое значение шага (> = stop) вернет диапазон, как минимум, состоящий из одного
элемента.

17.Кортежи. Отличие кортежей от словарей

Кортеж, по сути - неизменяемый список.

Зачем нужны кортежи, если есть списки?

 Защита от дурака. То есть кортеж защищен от изменений, как намеренных (что плохо), так
и случайных (что хорошо).
 Меньший размер. Дабы не быть голословным:

>>>
>>> a = (1, 2, 3, 4, 5, 6)
>>> b = [1, 2, 3, 4, 5, 6]
>>> a.__sizeof__()
36
>>> b.__sizeof__()
44

 Возможность использовать кортежи в качестве ключей словаря:

>>>
>>> d = {(1, 1, 1) : 1}
>>> d
{(1, 1, 1): 1}
>>> d = {[1, 1, 1] : 1}
Traceback (most recent call last):
File "", line 1, in
d = {[1, 1, 1] : 1}
TypeError: unhashable type: 'list'

18.Словари.
Словари в Python - неупорядоченные коллекции произвольных объектов с доступом по
ключу. Их иногда ещё называют ассоциативными массивами или хеш-таблицами.

Чтобы работать со словарём, его нужно создать. Сделать это можно несколькими
способами. Во-первых, с помощью литерала

d = {}
>>> d
{}
>>> d = {'dict': 1, 'dictionary': 2}
>>> d
{'dict': 1, 'dictionary': 2}

Во-вторых, с помощью функции dict

d = dict(short='dict', long='dictionary')
>>> d
{'short': 'dict', 'long': 'dictionary'}
>>> d = dict([(1, 1), (2, 4)])
>>> d
{1: 1, 2: 4}

В-третьих, с помощью метода fromkeys

d = dict.fromkeys(['a', 'b'])
>>> d
{'a': None, 'b': None}
>>> d = dict.fromkeys(['a', 'b'], 100)
>>> d
{'a': 100, 'b': 100}

В-четвертых, с помощью генераторов словарей, которые очень похожи на генераторы


списков.

>>>
>>> d = {a: a ** 2 for a in range(7)}
>>> d
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36}

19.Оператор if. Особенности операторов сравнения.

Если вы знакомы с английским языком, то легко поймёте, что слово if переводится как
“если”. Этот оператор выполняет блок кода, следующий после него с отступами, только в
случае, если выражение в его заголовке не нуль(т.е. верно).

>>> x = int(raw_input("Введите целое число: "))

>>> if x < 0:

... x = 0
... print 'Отрицательное число стало нулём'

... elif x == 0:

... print 'Это число - нуль'

... elif x == 1:

... print 'Это число - 1'

... else:

... print `Это число больше единицы'

...

Далее могут быть ещё операторы elif(аналог case в Си). Оператору if, как видно,
сопутствуют операторы else(“иначе” - блок кода выполняется если условие в заголовке if
приняло нулевое значение, т.е стало ложным) и elif(“иначе если” - блок кода выполняется
если условие в заголовке if приняло нулевое значение, т.е стало ложным, а значение в
заголовке данного оператора стало ненулевым, т.е истинным).

20.Операторы цикла. Оператор for. Оператор while. Завершение цикла.

Оператор for несколько необычен в Питоне, он имеет вид for некая_переменная in


некий_диапазон. Блок кода после заголовка выполняется, пока некая_переменная
принадлежит некому_диапазону(причём этот диапазон может быть списком, числовой
последовательностью, массивом каких-либо значений):

>>> # Определим какие-то строки:

... a = ['Linux', 'Open', 'Office']

>>> for x in a:

... print x, len(x)

Результат работы:

Linux 5

Open 4

Office 6

Цикл while используется в Python для неоднократного исполнения определенной


инструкции до тех пор, пока заданное условие остается истинным. Этот цикл позволяет
программе перебирать блок кода.
while test_expression:
body of while

Сначала программа оценивает условие цикла while. Если оно истинное, начинается цикл,
и тело while исполняется. Тело будет исполняться до тех пор, пока условие остается
истинным. Если оно становится ложным, программа выходит из цикла и прекращает
исполнение тела.

Рассмотрим пример, чтобы лучше понять.

a = 1

while a < 10:


print('Цикл выполнился', a, 'раз(а)')
a = a+1
print('Цикл окончен')

Вывод:

Цикл выполнился 1 раз


Цикл выполнился 2 раз
Цикл выполнился 3 раз
Цикл выполнился 4 раз
Цикл выполнился 5 раз
Цикл выполнился 6 раз
Цикл выполнился 7 раз
Цикл выполнился 8 раз
Цикл выполнился 9 раз
Цикл окончен

В Python с циклами while также можно использовать инструкцию else. В этом случае
блок в else исполняется, когда условие цикла становится ложным.

a = 1

while a < 5:
print('условие верно')
a = a + 1
else:
print('условие неверно')

Этот пример демонстрирует принцип работы else в цикле while.

Вывод:

условие верно
условие верно
условие верно
условие верно
условие неверно

Программа исполняет код цикла while до тех, пока условие истинно, то есть пока значение
a меньше 5. Поскольку начальное значение a равно 1, а с каждым циклом оно
увеличивается на 1, условие станет ложным, когда программа доберется до четвертой
итерации — в этот момент значение a изменится с 4 до 5. Программа проверит условие
еще раз, убедится, что оно ложно и исполнит блок else, отобразив «условие неверно».
В Python есть два ключевых слова, с помощью которых можно преждевременно
остановить итерацию цикла.

1. Break — ключевое слово break прерывает цикл и передает управление в конец


цикла
2. Continue — ключевое слово continue прерывает текущую итерацию и передает
управление в начало цикла, после чего условие снова проверяется. Если оно истинно,
исполняется следующая итерация.

21.Определение функции.

Функция – небольшого модуля программного кода, выполняющего определённые


действия и обособленного от основного кода программы. В Питоне функция определяется
ключевым словом def, имени функции, затем в скобках идут некие параметры,
разделяемые запятой, передаваемые в функцию из программы.

22.Пространство имен функции.

Пространства имен делятся на следующие слои: Local - Локальное пространство имен


функций; Enveloping - Пространство имен объемлющей функции (Если мы объявим
функцию "a", в нее вложим объявление функции "b". Локальное пространство имен
функции "a", Будет пространством имен объемлющей функции для функции "b",
примерно также, как глобальное пространство имен - это объемлющее пространство
имен для функции "a"); Global - Глобальное пространство имен; Builtins - пространство
имен.

23.Использование лямбда функций.

Основная причина применения лямбда функций — создание функции, которая


используется в коде единожды. Использование таких функций позволяет снизить число
строк кода, которые вам придется написать. Также лямбда функции известны как throw-
away функции, которые используются вместе с filter(), map() и т. п.

24.Функции работы со структурами данных.

У функции list() очень простой сценарий применения.

C помощью скобок создается список. После этого выводится переменная с присвоенным


ей пустым списком. Выводится «[]», что указывает пусть и на пустой, но список. После
этого выводится подтверждение того, что это действительно список.

Рассмотрим функцию dict(), с помощью которой можно создать словарь Python.

Функция tuple() для создания кортежа Python. Пример с присваиванием переменной


пустого кортежа.

25.Функция map(). Примеры применения

Функция map применяет функцию к каждому элементу последовательности и возвращает


итератор с результатами.
Например, с помощью map можно выполнять преобразования элементов. Перевести все
строки в верхний регистр, конвертация в числа, вместе с map удобно использовать лямбда-
выражения, если функция, которую использует map(), ожидает два аргумента, то передаются два
списка

26.Функция filter().Примеры применения

Функция filter применяет функцию ко всем элементам последовательности и


возвращает итератор с теми объектами, для которых функция вернула True.

Например, вернуть только те строки, в которых находятся числа, из списка чисел оставить
только нечётные или чётные

27.Стандартные модули Python.

csv, shutil, unittest, subprocess, fraction, cmath, glob, copy, functools, os.path, json,
calendar, os, pickle, datetime, bisect, collections, array, itertools, time, sys, random,
math, tkinter

28.Импорт модулей и их составляющих из пакета.

Самый простой способ импортировать модуль в Python это воспользоваться


конструкцией:

import имя_модуля

Импорт и использование модуля math, который содержит математические функции, будет


выглядеть вот так.

>>> import math


>>> math.factorial(5)
120

За один раз можно импортировать сразу несколько модулей, для этого их нужно
перечислить через запятую после слова import:

import имя_модуля1, имя_модуля2

>>> import math, datetime


>>> math.cos(math.pi/4)
0.707106781186547
>>> datetime.date(2017, 3, 21)
datetime.date(2017, 3, 21)

Если вы хотите задать псевдоним для модуля в вашей программе, можно воспользоваться
вот таким синтаксисом:

import имя_модуля as новое_имя

>>> import math as m


>>> m.sin(m.pi/3)
0.866025403784438
Используя любой из вышеперечисленных подходов, при вызове функции из
импортированного модуля, вам всегда придется указывать имя модуля (или
псевдоним). Для того, чтобы этого избежать делайте импорт через конструкцию from …
import…

from имя_модуля import имя_объекта

>>> from math import cos


>>> cos(3.14)
0.999998731727539

При этом импортируется только конкретный объект (в нашем примере: функция cos),
остальные функции недоступны, даже если при их вызове указать имя модуля.

>>> from math import cos


>>> cos(3.14)
-0.999998731727539
>>> sin(3.14)
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
sin(3.14)
NameError: name 'sin' is not defined
>>> math.sin(3.14)
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
math.sin(3.14)
NameError: name 'math' is not defined

Для имортирования нескольких функций из модуля, можно перечислить их имена через


запятую.

from имя_модуля import имя_объекта1, имя_объекта2

>>> from math import cos, sin, pi


>>> cos(pi/3)
0.500000000000000
>>> sin(pi/3)
0.866025403784438

Импортируемому объекту можно задать псевдоним.

from имя_модуля import имя_объекта as псевдоним_объекта

>>> from math import factorial as f


>>> f(4)
24

Если необходимо импортировать все фукнции, классы и т.п. из модуля, то воспользуйтесь


следующей формой оператора from … import …

from имя_модуля import *

>>> from math import *


>>> cos(pi/2)
6.123233995736766e-17
>>> sin(pi/4)
0.707106781186547
>>> factorial(6)
720

29.Класс File.

Файл — это всего лишь набор данных, сохраненный в виде последовательности битов на
компьютере. Информация хранится в куче данных (структура данных) и имеет название
«имя файла» (filename).

В Python существует два типа файлов:

1. Текстовые
2. Бинарные

Текстовые файлы

Это файлы с человекочитаемым содержимым. В них хранятся последовательности


символов, которые понимает человек. Блокнот и другие стандартные редакторы умеют
читать и редактировать этот тип файлов.

Текст может храниться в двух форматах: (.txt) — простой текст и (.rtf) — «формат
обогащенного текста».

Бинарные файлы

В бинарных файлах данные отображаются в закодированной форме (с использованием


только нулей (0) и единиц (1) вместо простых символов). В большинстве случаев это
просто последовательности битов.

Они хранятся в формате .bin.

Любую операцию с файлом можно разбить на три крупных этапа:

1. Открытие файла
2. Выполнение операции (запись, чтение)
3. Закрытие файла

30.Открытие файла.

В Python есть встроенная функция open(). С ее помощью можно открыть любой файл на
компьютере. Технически Python создает на его основе объект.

Синтаксис следующий:

f = open(file_name, access_mode)
Где,

 file_name = имя открываемого файла


 access_mode = режим открытия файла.Он может быть: для чтения, записи и т. д.
По умолчанию используется режим чтения (r), если другое не указано. Далее
полный список режимов открытия файла

31.Методы класса для File ввода-вывода

https://pythonpip.ru/osnovy/rabota-s-faylami-vvod-vyvod-dannyh-v-python

Вам также может понравиться