Общие вопросы по питону Flashcards
(86 cards)
Основные фичи питона?
- это интерпретируемый язык.
- в нем динамическая типизация данных (приём, при котором переменная связывается с типом в момент присваивания значения, а не в момент объявления переменной).
- это объектно-ориентированный язык.
- он лаконичный и внешне простой.
- у него большое сообщество (много материалов для изучения)
В чем разница между списками (list) и кортежами (tuple)?
Основная разница в том, что список может изменяться (mutable), а кортеж не может (immutable).
Как в питоне работает трёхместный (тернарный) оператор?
В питоне есть такие выражения:
[если верно] if [выражение] else [если неверно]
Что такое отрицательный индекс (negative index)?
Возьмем для примера список:
mylist = [0, 1, 2, 3, 4, 5 ,6, 7, 8]
В отличие от положительного индекса, отрицательный начинает поиск с конца:
»> mylist[-3]
6
Еще это помогает при создании срезов с конца:
»> mylist[-6:-1]
[3, 4, 5, 6, 7]
Питон чувствителен к регистру?
Язык считается чувствительным к регистру в случае, если он различает имена “myname” и “Myname”. То есть, если он отслеживает разницу регистра (между верхним и нижним).
Предельно допустимая длина идентификатора в питоне?
В питоне идентификатор может быть любой длины. Помимо этого есть несколько правил для присвоения имен:
- первым символом может быть нижнее подчеркивание (), символы 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.
Как можно преобразовать строку (string) в нижний регистр (lowercase)?
Для этого используется метод 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
Для чего нужен pass (pass statement) в питоне?
Иногда нужно, чтобы код не давал никакого результата и не показывал ошибку, например, если еще не готово, но нужно иметь синтаксический корректный код. Можно поставить 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
Расскажите про функции help() и dir() в питоне.
Функция help() показывает строку документации и справку для ее аргумента:
Функция dir() возвращает список, содержащий пространство имен в объекте:
Как получить список из всех ключей словаря (dictionary keys)?
На такие вопросы нужно отвечать детально, с примерами. Данная задача выполняется с помощью функции keys():
»> mydict={“a”:1,”b”:2,”c”:3,”e”:5}
»> mydict.keys()
dict_keys([“a”, “b”, “c”, “e”])
Что такое срез?
Срез — это методика, которая позволяет получить часть списка, кортежа или строки.
»> (1, 2, 3, 4, 5)[2:4]
(3, 4)
> > > [7, 6, 8, 5, 9][2:]
[8, 5, 9]
> > > “Hello”[:-1]
“Hell”
Как пишутся комментарии в питоне?
Для этого используется символ #. Все, что написано на строке после него, считается комментарием и игнорируется. Комментарии используются для объяснения цели написанного кода. Многострочных комментариев в прямом смысле слова в питоне нет.
Как проверить, что все символы строки относятся к алфавитно-цифровым?
Для этого используется метод isalnum().
Как перевести первый символ строки в верхний регистр?
Для этого есть метод capitalize():
»> “ayushi”.capitalize()
“Ayushi”
Все знают, что сегодня питон в моде. Но истинное принятие новой технологии подразумевает понимание ее недостатков. Что вы можете сказать по этому поводу?
Какие в питоне есть ограничения:
- интерпретируемая природа питона снижает скорость исполнения программы
- его не выгодно использовать для мобильных устройств и браузеров.
- будучи языком с динамической типизацией данных, он использует утиную типизацию; в связи с этим появляются ошибки исполнения (runtime errors);
- нету скобочек
Как в питоне узнать, в какой мы сейчас директории?
Для этого используется функция getcwd(). Она импортируется из модуля os:
»> import os
»> os.getcwd()
“C:\Users\lifei\AppData\Local\Programs\Python\Python36-32”
Как вставить объект, чтобы он оказался под определенным индексом?
Сначала создадим список:
»> a=[1, 2, 4]
Затем используем метод insert(). В нем первым аргументом будет индекс, под которым вставляется объект, а вторым — значение объекта:
»> a.insert(2,3)
»> a
[1, 2, 3, 4]
Как можно обратить (reverse) порядок элементов в списке?
Для этого есть метод reverse():
»> a.reverse()
»> a
[4, 3, 2, 1]
Что такое приглашение интерпретатора (interpreter prompt)?
Когда мы заходим в интерпретатор питона, то видим следующую строку:
»>
Что нужно сделать, чтобы функция возвратила значение?
Для этого используется ключевое слово return:
»> def add(a, b):
return a + b
Что такое блок?
Когда мы пишем предложение (statement), нам нужно завершить первую строку двоеточием, а под ним написать блок кода, который исполняется в рамках этого предложения. Каждая строка блока пишется с одинаковым отступом.
»> if 3 > 1:
print(“Hello”)
print(“Goodbye”)
Hello
Goodbye
Зачем нужны break и continue?
Они используются для управления последовательностью операций: break останавливает исполнение цикла и переводит исполнение на следующий блок кода, continue как бы перепрыгивает на следующую итерацию цикла и не прекращает его исполнение.
Если мы не поставим двоеточие в конце строки для цикла “do-while”, он все равно сработает?
В питоне такой цикл не реализован. Это вопрос из тех, которые с подвохом, когда упоминают элементы других языков.
Напишите в одну строку, как можно получить самую позднюю по значению букву в строке.
Значение буквы определяется по ее коду в ASCII. Для этого подойдет функция max():
»> max(“flyiNg”)
“y”
С помощью той же логики можно объяснить следующую строку кода:
»> max(“fly{}iNg”)
“}”