class City(models.Model):
name = models.CharField()
class Person(models.Model):
name = models.CharField()
city = models.ForeignKey(City)
Вывести список людей и городов где они живут?
Вывести всех людей, живущих в городе N
Вывести 5 городов с наибольшим населением, упорядочив по убыванию.
Проектирование
Вопросы №4
150 вопросов для собеседования на вакансию Python. Часть 1 (без опыта работы).
Перевод с английского материала, опубликованного на крупном портале по обучению Python. Часть 1 посвящена обзору тех категорий вопросов, которые чаще задаются новичкам, без опыта работы, желающим занять вакансию для работы с Python. Чтобы подготовиться к собеседованию, нужно иметь наготове ответ на нижеприведенные и другие аналогичные вопросы по поводу основных признаков питона, его преимуществ и недостатков, использования основных типов, функций и операторов.
Источник: 150+ Python Intervi
Общие вопросы по Python с ответами
В1. Основные фичи питона?
Если питон оказался первым языком в опыте программирования, нужно иметь общее понимание о нем. Какие у него основные признаки:
- это интерпретируемый язык
- в нем динамическая типизация данных
- это объектно-ориентированный язык
- он лаконичный и внешне простой
- распространяется бесплатно
- у него большое сообщество
В2. В чем разница между списками (list) и кортежами (tuple)?
Основная разница в том, что список может изменяться (mutable), а кортеж не может (immutable).
>>> mylist = [1, 3, 3]
>>> mylist[1] = 2
>>> mytuple = (1, 3, 3)
>>> mytuple[1] = 2
Traceback (most recent call last):
File “
”, line 1, in
mytuple[1] = 2
TypeError: "tuple" object does not support item assignment
В3. Как в питоне работает трёхместный (тернарный) оператор?
В питоне есть такие выражения:
[если верно] if [выражение] else [если неверно]
То есть, когда выражение верное (True), то исполняется код [если верно]. В остальных случаях исполняется код [если неверно]. Например:
>>> a, b = 2, 3
>>> min = a if a < b else b
>>> min
2
>>> print("Hi") if a < b else print("Bye")
Hi
В4. Что такое отрицательный индекс (negative index)?
Возьмем для примера список:
>>> mylist = [0, 1, 2, 3, 4, 5 ,6, 7, 8]
В отличие от положительного индекса отрицательный начинает поиск с конца:
>>> mylist[-3]
6
Еще это помогает при создании срезов с конца:
>>> mylist[-6:-1]
[3, 4, 5, 6, 7]
В5. Питон чувствителен к регистру?
Язык считается чувствительным к регистру в случае, если он различает имена "myname" и "Myname". То есть, если он отслеживает разницу регистра (между верхним и нижним). Посмотрим, как с этим в питоне.
>>> myname="Ayushi"
>>> Myname
Traceback (most recent call last):
File “
”, line 1, in
Myname
NameError: name "Myname" is not defined
Убедились в том, что питон чувствителен к регистру.
В6. Предельно допустимая длина идентификатора в питоне?
В питоне идентификатор может быть любой длины. Помимо этого есть несколько правил для присвоения имен:
- первым символом может быть нижнее подчеркивание (_), символы 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.
В7. Как можно преобразовать строку (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
В8. Для чего нужен 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
Do'stlaringiz bilan baham: |