Общие вопросы по питону Flashcards

(86 cards)

1
Q

Основные фичи питона?

A
  • это интерпретируемый язык.
  • в нем динамическая типизация данных (приём, при котором переменная связывается с типом в момент присваивания значения, а не в момент объявления переменной).
  • это объектно-ориентированный язык.
  • он лаконичный и внешне простой.
  • у него большое сообщество (много материалов для изучения)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

В чем разница между списками (list) и кортежами (tuple)?

A

Основная разница в том, что список может изменяться (mutable), а кортеж не может (immutable).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Как в питоне работает трёхместный (тернарный) оператор?

A

В питоне есть такие выражения:
[если верно] if [выражение] else [если неверно]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Что такое отрицательный индекс (negative index)?

A

Возьмем для примера список:
mylist = [0, 1, 2, 3, 4, 5 ,6, 7, 8]

В отличие от положительного индекса, отрицательный начинает поиск с конца:
»> mylist[-3]
6

Еще это помогает при создании срезов с конца:
»> mylist[-6:-1]
[3, 4, 5, 6, 7]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Питон чувствителен к регистру?

A

Язык считается чувствительным к регистру в случае, если он различает имена “myname” и “Myname”. То есть, если он отслеживает разницу регистра (между верхним и нижним).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Предельно допустимая длина идентификатора в питоне?

A

В питоне идентификатор может быть любой длины. Помимо этого есть несколько правил для присвоения имен:
- первым символом может быть нижнее подчеркивание (), символы A-Z или a-z;
- остальная часть имени может состоять из символов A-Z/a-z/
/0-9;
- в качестве имени нельзя использовать ключевые слова (keywords):
and, def, False, import, not, True, as, del, finally, in, or, try, assert, elif, for, is, pass, while, break, else, from, lambda, print, with, class, except, global, None, raise, yield, continue, exec, if, nonlocal, return.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Как можно преобразовать строку (string) в нижний регистр (lowercase)?

A

Для этого используется метод lower():
»> “AyuShi”.lower()
“ayushi”

Для преобразования в верхний регистр (uppercase) используется метод upper():
»> “AyuShi”.upper()
“AYUSHI”

Еще есть методы isupper() (все символы в верхнем регистре) и islower() (все символы в нижнем регистре), которые проверяют регистр всех символов имени.
»> “AyuShi”.isupper()
False
»> “AYUSHI”.isupper()
True
»> “ayushi”.islower()
True
»> “@yu$hi”.islower()
True
»> “@YU$HI”.isupper()
True
Как видим, символы наподобие @ и $ применимы в обоих случаях.

Еще есть метод istitle(), который проверяет строку на стиль заголовка (все слова должны начинаться с символа в верхнем регистре):
»> “The Corpse Bride”.istitle()
True

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Для чего нужен pass (pass statement) в питоне?

A

Иногда нужно, чтобы код не давал никакого результата и не показывал ошибку, например, если еще не готово, но нужно иметь синтаксический корректный код. Можно поставить pass:
»> def func(*args):
pass

Кроме него есть break (break statement), которое разрывает цикл:
»> for i in range(7):
if i == 3: break
print(i)
0
1
2

Наконец, есть continue (continue statement), которое перешагивает на следующую итерацию:
»>for i in range(7):
if i==3: continue
print(i)
0
1
2
4
5
6

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Расскажите про функции help() и dir() в питоне.

A

Функция help() показывает строку документации и справку для ее аргумента:
Функция dir() возвращает список, содержащий пространство имен в объекте:

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Как получить список из всех ключей словаря (dictionary keys)?

A

На такие вопросы нужно отвечать детально, с примерами. Данная задача выполняется с помощью функции keys():
»> mydict={“a”:1,”b”:2,”c”:3,”e”:5}
»> mydict.keys()
dict_keys([“a”, “b”, “c”, “e”])

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Что такое срез?

A

Срез — это методика, которая позволяет получить часть списка, кортежа или строки.
»> (1, 2, 3, 4, 5)[2:4]
(3, 4)

> > > [7, 6, 8, 5, 9][2:]
[8, 5, 9]

> > > “Hello”[:-1]
“Hell”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Как пишутся комментарии в питоне?

A

Для этого используется символ #. Все, что написано на строке после него, считается комментарием и игнорируется. Комментарии используются для объяснения цели написанного кода. Многострочных комментариев в прямом смысле слова в питоне нет.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Как проверить, что все символы строки относятся к алфавитно-цифровым?

A

Для этого используется метод isalnum().

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Как перевести первый символ строки в верхний регистр?

A

Для этого есть метод capitalize():
»> “ayushi”.capitalize()
“Ayushi”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Все знают, что сегодня питон в моде. Но истинное принятие новой технологии подразумевает понимание ее недостатков. Что вы можете сказать по этому поводу?

A

Какие в питоне есть ограничения:
- интерпретируемая природа питона снижает скорость исполнения программы
- его не выгодно использовать для мобильных устройств и браузеров.
- будучи языком с динамической типизацией данных, он использует утиную типизацию; в связи с этим появляются ошибки исполнения (runtime errors);
- нету скобочек

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Как в питоне узнать, в какой мы сейчас директории?

A

Для этого используется функция getcwd(). Она импортируется из модуля os:
»> import os
»> os.getcwd()
“C:\Users\lifei\AppData\Local\Programs\Python\Python36-32”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Как вставить объект, чтобы он оказался под определенным индексом?

A

Сначала создадим список:
»> a=[1, 2, 4]

Затем используем метод insert(). В нем первым аргументом будет индекс, под которым вставляется объект, а вторым — значение объекта:
»> a.insert(2,3)
»> a
[1, 2, 3, 4]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Как можно обратить (reverse) порядок элементов в списке?

A

Для этого есть метод reverse():
»> a.reverse()
»> a
[4, 3, 2, 1]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Что такое приглашение интерпретатора (interpreter prompt)?

A

Когда мы заходим в интерпретатор питона, то видим следующую строку:
»>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Что нужно сделать, чтобы функция возвратила значение?

A

Для этого используется ключевое слово return:
»> def add(a, b):
return a + b

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Что такое блок?

A

Когда мы пишем предложение (statement), нам нужно завершить первую строку двоеточием, а под ним написать блок кода, который исполняется в рамках этого предложения. Каждая строка блока пишется с одинаковым отступом.
»> if 3 > 1:
print(“Hello”)
print(“Goodbye”)
Hello
Goodbye

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Зачем нужны break и continue?

A

Они используются для управления последовательностью операций: break останавливает исполнение цикла и переводит исполнение на следующий блок кода, continue как бы перепрыгивает на следующую итерацию цикла и не прекращает его исполнение.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Если мы не поставим двоеточие в конце строки для цикла “do-while”, он все равно сработает?

A

В питоне такой цикл не реализован. Это вопрос из тех, которые с подвохом, когда упоминают элементы других языков.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Напишите в одну строку, как можно получить самую позднюю по значению букву в строке.

A

Значение буквы определяется по ее коду в ASCII. Для этого подойдет функция max():
»> max(“flyiNg”)
“y”

С помощью той же логики можно объяснить следующую строку кода:
»> max(“fly{}iNg”)
“}”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Как конвертировать список в строку?
Для этого подойдет метод join(): >>> nums=["one","two","three","four","five","six","seven"] >>> s=" ".join(nums) >>> s "one two three four five six seven"
26
Как убрать из списка дубликат элемента?
Для этого можно конвертировать список во множество (set): lst = [1, 2, 1, 3, 4, 2] print(list(set(lst))) [1, 2, 3, 4]
27
Что такое словарь (dictionary)?
Словарь содержит пары типа "ключ: значение": >>> roots={25: 5, 16: 4, 9: 3, 4: 2, 1: 1} >>> type(roots) >>> roots[9] 3 Словарь относится к изменяемым (mutable) объектам. Его можно создать помощью: - литерала (символов {}) - функции dict() - генератора (comprehension)
28
Расскажите про арифметические операторы //, %, и **
Оператор // выполняет целочисленное деление и возвращает целую часть числа, полученного в результате операции: >>> 7 // 2 3 Оператор ** возводит в степень: >>> 2**10 1024 Оператор % возвращает результат деления по модулю, то есть остаток после деления: >>> 13%7 6
29
Что вам известно про операторы сравнения в питоне?
Данные операторы сравнивают значения между собой и возвращают True/False. > < >= <= == !=
30
Что такое операторы присвоения в питоне?
Все арифметические операторы можно комбинировать с символом присвоения: += -= *= /= **= //= %=
31
Расскажите про логические операторы в питоне.
Всего их три: and, or, not. >>> False and True False >>> 7 < 7 or True True >>> not 2 == 2 False
32
Что такое оператор принадлежности?
Это операторы in и not in. Они показывают, является ли одно значение частью другого. >>> "me" in "disappointment" True >>> "us" not in "disappointment" True
33
Расскажите про операторы тождественности.
Операторы is и is not показывают, являются ли два значения идентичными. >>> 10 is "10" False >>> True is not False True
34
Что такое битовые операторы?
Перечень битовых операторов языка Python в порядке убывания приоритета следующий: ~ – битовый оператор НЕТ (инверсия, наивысший приоритет); <<, >> – операторы сдвига влево или сдвига вправо на заданное количество бит; & – битовый оператор И (AND); | - | – битовый оператор ИЛИ (OR). ^ – битовое исключающее ИЛИ (XOR); | – битовый оператор ИЛИ (OR).
35
Какие типы данных поддерживаются в питоне?
В Python есть несколько стандартных типов данных: Numbers (числа) Strings (строки) Lists (списки) Dictionaries (словари) Tuples (кортежи) Sets (множества) Boolean (логический тип данных) Эти типы данных можно, в свою очередь, классифицировать по нескольким признакам: изменяемые (списки, словари и множества) неизменяемые (числа, строки и кортежи) упорядоченные (списки, кортежи, строки и словари) неупорядоченные (множества)
36
Что такое строка документации (docstring)?
Она вносится первой строкой в блок, определяющий содержание функции, класса или метода. Содержит описание их цели и способа исполнения. Обозначается тремя одинарными или двойными кавычками с каждой стороны. Посмотреть ее содержание мы можем с помощью __doc__: func.__doc__ В отличие от комментария строка документации читается во время исполнения.
37
Как можно конвертировать строку в число?
Если строка содержит только числовые символы, можно использовать функцию int(): >>> int("227") 227
38
Как можно принять результат ввода на клавиатуре?
Если пользователь что-то вводит с помощью клавиатуры, можно использовать функцию input(). В качестве аргумента можно задать данной функции текст запроса на ввод. Результат ввода всегда является строкой. >>> a = input("Enter a number") Enter a number7
39
Что такое функция?
Не что иное, как кусок кода, который мы можем переиспользовать в любом месте нашей программы.
40
Что такое рекурсия?
Это когда функция вызывает саму себя. При этом рекурсивный алгоритм должен иметь рекурсивный и базовый случай, чтобы не уйти в бесконечность или пока не переполнится стек вызовов.
41
Что делает функция zip()?
Возвращает итератор с кортежами: >>> list(zip(["a", "b", "c"],[1, 2, 3])) [("a", 1), ("b", 2), ("c", 3)] В данном случае она совмещает элементы двух списков и создает из них кортежи. Работает не только со списками.
42
Как посчитать длину строки (string)?
Для этого вызываем функцию len(): >>> len("Ayushi Sharma") 13
43
Расскажите про генераторы списков (list comprehension).
Они позволяют создавать списки с помощью одной строки кода: >>> [i for i in range(1, 11, 2)] [1, 3, 5, 7, 9]
44
Как можно получить все значения из словаря?
Для этого используется метод values() >>> 4 in {"a":1,"b":2,"c":3,"d":4}.values() True
45
Как можно переключить регистр строки?
Можно использовать метод swapcase(), предусмотренный для класса str: >>> "AyuShi".swapcase() "aYUsHI"
46
Для чего используется bytes()?
Это встроенная функция питона, которая возвращает неизменяемый байтовый объект. >>> bytes([2,4,8]) b’\x02\x04\x08′ >>> bytes(5) b’\x00\x00\x00\x00\x00′ >>> bytes('world','utf-8') b’world’
47
What is control flow statements in python ?
A program's control flow is the order in which the program's code executes. The control flow of a Python program is regulated by conditional statements, loops, and function calls.
48
Создайте новый лист с помощью конвертации списка числовых строк в список чисел.
lst = ['1', '2', '3', '4'] new_lst = list(map(int, lst)) print(new_lst) [1, 2, 3, 4]
49
Как работать с числами, которые не входят в десятичную систему счисления?
В питоне можно вводить бинарные, восьмеричные и шестнадцатеричные числа. Бинарные. Это числа, составленные из 0 и 1. Для ввода в бинарном формате, используется префикс 0b или 0B: >>> int(0b1010) 10 Число можно преобразовать в бинарный формат с помощью функции bin(): >>> bin(0xf) ‘0b1111’ Восьмеричные числа могут состоять из цифр от 0 до 7, также используется префикс 0o или 0O: >>> oct(8) ‘0o10’ Шестнадцатеричные числа могут состоять из цифр от 0 до 15, также используется префикс 0x или 0X: >>> hex(15) ‘0xf’
50
Какой результат выводит данный код?
>>> def extendList(val, list=[]): list.append(val) return list >>> list1 = extendList(10) >>> list2 = extendList(123,[]) >>> list3 = extendList('a') >>> list1, list2, list3 [10, ‘a’], [123], [10, ‘a’] В функции есть аргумент list=[], который не запускается в нулевом значении при каждом вызове этой функции. Когда мы первый раз определяем функцию, она создает новый список. Затем, каждый раз, когда мы вызываем данную функцию без аргумента-списка, она использует один и тот же список. Питон исполняет выражения, которые имеют нулевые значения, при определении функции, а не при вызове функции.
51
Что такое РЕР8?
PEP 8, sometimes spelled PEP8 or PEP-8, is a document that provides guidelines and best practices on how to write Python code. It was written in 2001 by Guido van Rossum, Barry Warsaw, and Nick Coghlan. The primary focus of PEP 8 is to improve the readability and consistency of Python code. PEP 8 – Style Guide for Python Code. PEP 484 – Type Hints(подсказки по анотациям типов).
52
Как исполняется код в питоне?
Python code, written in .py file is first compiled to what is called bytecode which is stored with a .pyc or .pyo format. Instead of translating source code to machine code like C++, Python code it translated to bytecode. This bytecode is a low-level set of instructions that can be executed by an interpreter.
53
Расскажите, какой в питоне механизм передачи параметров.
В питоне используется передача параметров по ссылке. Если изменить параметр внутри функции, то это отразится на выводе функции. Однако, если использовать в качестве параметров литералы (строки, числа, кортежа), то они передаются по значению (потому что они не изменяемые).
54
Что такое with в питоне?
Это контекстный менеджер. Данная инструкция обеспечивает исполнение кода очистки после исполнения программы. Например, можно использовать ее для открытия файла, совершить с ним какие-то действия и автоматически закрыть файл после завершения работы. Аналогичным образом можно открывать соединение с базой данных и автоматически его закрывать. Код очистки исполняется даже в случае, когда появляется исключение (exception). Имплементирует 2 магических метода __enter__ и __exit__. >>> with open('data.txt') as data: # исполняемый блок
55
Чем файл .pyc отличается от .py?
Оба файла содержат байткод, но .pyc является компилированной версией файла питона. Его байткод не зависит от платформы, поэтому он исполняется на всех платформах, которые поддерживают формат .pyc.
56
Что делает питон объектно-ориентированным?
Он следует парадигме объектно-ориентированного программирования, которая построена вокруг классов (classes) и их экземпляров (instances). Это позволяет реализовать следующие функции: - сокрытие внутренней структуры данных - абстракция - наследование - полиморфизм (способность выбирать правильный метод в зависимости от типа данных) - ограничение доступа к данным (инкапсуляция)
57
Какие есть типы объектов в питоне?
В питоне поддерживаются изменяемые (mutable) и не изменяемые (immutable) типы объектов. Не изменяемые не позволяют изменять свое содержание. Примеры: кортежи, булевы, строки, числа. Итерация по ним выполняется быстрее. Изменяемые позволяют изменять свое содержание. Примеры: списки, множества и словари. Итерация по ним выполняется медленнее.
58
Когда в блоке try-except исполняется элемент else?
В блоке try-except элемент else исполняется только в случае, если элемент try не выдает исключение.
59
Что такое переменная PYTHONPATH?
PYTHONPATH — эта переменная сообщает интерпретатору путь до модулей и пакетов, которые мы импортируем.
60
Расскажите про функции join() и split()
Функция join() позволяет соединять символы строки (string), чередуя с указанным символом. >>> ','.join('12345') ‘1,2,3,4,5’ '.'.join(['ab', 'pq', 'rs']) -> 'ab.pq.rs' Функция split() позволяет разделить строку, чередуя символы с указанным символом. >>> '1,2,3,4,5'.split(',') [‘1’, ‘2’, ‘3’, ‘4’, ‘5’]
61
Что такое литерал в python ?
Литералы в Python можно определить как данные, которые задаются в переменной или константе.
62
Приведите несколько методов, с помощью которых можно реализовать в питоне функционально ориентированное программирование.
Несколько методов могут помочь с итерацией по списку (list). 1. filter() может отфильтровать несколько значений на основе условия. >>> list(filter(lambda x:x>5,range(8))) [6, 7] 2. map() применяет функцию к каждому элементу итерируемого объекта. >>> list(map(lambda x:x**2,range(8))) [0, 1, 4, 9, 16, 25, 36, 49] 3. reduce() продолжает уменьшать последовательность (sequence) парами, пока не будет достигнуто единичное значение. >>> from functools import reduce >>> reduce(lambda x,y:x-y,[1,2,3,4,5]) -13
63
Можно ли сказать, что del и remove() — это одно и то же? Что это такое, в целом?
del и remove() — это методы для списков, они нужны для удаления элементов. >>> list=[3,4,5,6,7] >>> del list[3] >>> list [3, 4, 5, 7] >>> list.remove(5) >>> list [3, 4, 7] del позволяет удалять элементы под конкретным индексом, а remove() позволяет удалять элементы на основе их значения.
64
Объясните, почему у следующего кода такая выдача: >>> tuple=(123,'John') >>> tuple*=2 >>> tuple (123, ‘John’, 123, ‘John’)
В этом коде кортеж (tuple) умножается на 2. Поэтому его содержимое удваивается. То есть, на выходе мы получим (123, ‘John’, 123, ‘John’). Со строками тоже можно так сделать: >>> 'ba'+'na'*2 ‘banana’
65
Какие различия есть между методами для списков append() и extend()?
Метод append() добавляет элемент к концу списка, а метод extend() добавляет к концу списка переданный ему итерируемый объект (iterable). Возьмем два списка. >>> list1, list2 = [1, 2, 3], [5, 6, 7, 8] Вот так действует append(): >>> list1.append(4) >>> list1 [1, 2, 3, 4] А вот так действует extend(): >>> list1.extend(list2) >>> list1 [1, 2, 3, 4, 5, 6, 7, 8]
65
Расскажите про try, raise и finally.
Это ключевые слова (keywords) для обработки исключений (exception handling). Потенциально рискованный код помещается в блок try, оператор raise (raise statement) используется для прямого вызова ошибки, а в блоке finally находится код, который исполняется в любом случае.
66
Что случится, если не обработать ошибку в блоке except?
Если этого не сделать, программа завершится. Затем она отправит трассу исполнения на sys.stderr.
67
Есть ли возможность удалить последний объект списка?
Да, такая возможность предусмотрена. Можно попробовать такой вариант: >>> list=[1,2,3,4,5] >>> list.pop(3) 5 >>> list [1, 2, 3, 5]
68
Как можно преобразовать целое число (integer) в символ Unicode?
Для этого просто нужна встроенная функция chr(x). Можно показать? >>> chr(52) ‘4’ >>> chr(49) ‘1’ >>> chr(67) ‘C’
69
Может ли рекурсия создавать сложности?
- Каждый вызов функции сохраняет переменную состояния в программном стеке, то есть растет потребление памяти, что в итоге может стать причиной переполнения памяти. - Вызовы функции отнимают время.
70
Какие преимущества у рекурсии?
- Cократить объем кода по сравнению с циклами
71
Почему игнорируются имена-идентификаторы, которые начинаются с символа подчеркивания?
В питоне не реализована концепция скрытой переменной (private variable), поэтому принято декларировать скрытые переменные первым символом в виде нижнего подчеркивания.
72
Можно ли удалить пробелы из строки (string) “aaa bbb ccc ddd eee”?
Я вспомнил три способа. Функция join(): >>> s='aaa bbb ccc ddd eee' >>> s1=''.join(s.split()) >>> s1 ‘aaabbbcccdddeee’ Генератор списка (list comprehension): >>> s='aaa bbb ccc ddd eee' >>> s1=str(''.join([i for i in s if i!=' '])) >>> s1 ‘aaabbbcccdddeee’ Функция replace(): >>> s='aaa bbb ccc ddd eee' >>> s1 = s.replace(' ','') >>> s1 ‘aaabbbcccdddeee’
73
Как можно перемешать в случайном порядке (рандомизировать) содержание списка (list) путем его изменения?
Для этого можно импортировать функцию shuffle() из модуля random. >>> from random import shuffle >>> shuffle(mylist) >>> mylist [3, 4, 8, 0, 5, 7, 6, 2, 1]
74
Если строка (string) начинается с пробела, как его убрать?
Такой пробел можно убрать с помощью метода lstrip(). >>> ' Ayushi '.lstrip()‘ ‘Ayushi ' В этой строке пробелы стояли как в начале, так и в конце. Функция lstrip() убрала крайний слева пробел из строки. Если мы захотим убрать пробел из хвоста, то воспользуемся функцией rstrip(). >>> ' Ayushi '.rstrip() ‘ Ayushi’
75
Что за функция enumerate() в Python?
Функция enumerate() осуществляет итерацию вдоль последовательности (sequence), извлекает индекс и его значение: >>> for i, v in enumerate(['Python','C++','Scala']): ....print(i,v) 0 Python 1 C++ 2 Scala
76
Как можно создать такой паттерн в питоне? * ** *** **** *****
for i in range(1,6): for j in range(1,i+1): print('*',end='') print()
77
Объясните разницу между полной копией (deep copy) и поверхностной копией (shallow copy).
- A shallow copy constructs a new compound object and then (to the extent possible) inserts references into it to the objects found in the original: >>> b=copy.copy(a) - A deep copy constructs a new compound object and then, recursively, inserts copies into it of the objects found in the original: >>> import copy >>> b=copy.deepcopy(a) Compound objects - objects that contain other objects, like lists or class instances
78
Какие методы/функции мы используем для определения типа экземпляра (type of instance) и наследования (inheritance)?
Для этого используются type(), isinstance() и issubclass(). 1. type() используется для определени типа объекта. >>> type(3) >>> type(False) >>> type(lambda :print("Hi")) >>> type(type) 2. isinstance() принимает два аргумента: значение (value) и тип (type). Если значение относится к соответствующему типу, то возвращается True. Если нет, то возвращается False. >>> isinstance(3,int) True >>> isinstance((1),tuple) False >>> isinstance((1,),tuple) True 3. issubclass() принимает два класса (classes) в качестве аргументов (arguments). Если второй наследует из первого, то возвращается True. Если нет, то возвращается False. >>> class A: pass >t; class B(A): pass >>> issubclass(B,A) True >>> issubclass(A,B) False
79
Какие функции или методы можно использовать для удаления файла в Python?
Для этого можно использовать remove() или unlink(). >>> import os >>> os.chdir('C:\\Users\\lifei\\Desktop') >>> os.remove('try.py') >>> os.unlink('try.py') chdir() method in Python used to change the current working directory to specified path. It takes only a single argument as new directory path.
80
Можете написать функцию для генерации такой пирамиды? * *** ***** ******* *********
stop = 2 rows = 5 for i in range(rows): for column in range(1, stop): print('*', end='') print() stop += 2Можете написать функцию для генерации такой пирамиды?
81
Как можно вывести на печать содержимое файла?
>>> try: ....with open('tabs.txt','r') as f: ........print(f.read()) ....except IOError: ........print("File not found")
82
Расскажите про выражения лямбда (lambda expressions). Где они могут пригодиться?
Если нужно написать функцию с одним выражением, то можно обойтись без определения и сделать ее анонимной. Выражение лямбда может принимать входные данные и возвращать значения. >>> (lambda a,b:a if a>b else b)(3,3.5) 3.5 Лямбда позволяет обойтись без входных данных. >>> (lambda :print("Hi"))() Hi
83
*args / **kwargs
def any_func(*args, **kwargs): pass Этот синтаксис означает, что функция готова принять любое количество позиционных (*args от arguments) и именованных (**kwargs от keyword arguments) аргументов. С переменной *args можно работать как с кортежем, а с переменной **kwargs — как со словарём. Такой синтаксис может применяться в любых функциях (не только в декораторах). Имена args и kwargs не предустановлены, но общеприняты.
84
Интернирование строк
- Интернирование строк — это механизм, при котором одинаковые литералы представляют собой один объект в памяти. - Литералы в Python можно определить как данные, которые задаются в переменной или константе. - What Is the String Interning in Python? The string interning in Python is a mechanism of storing only one copy of a string value in the memory. If there are a few string variables whose values are the same, they will be interned by Python implicitly and refer to the same object in the memory.
85
Разница между == и is
is проверяет , ссылаются ли переменные на один и тот же объект в памяти , в то время как == проверяет, имеют ли переменные одно и то же значение .