Back to questions
Middle
7
# 1. В чем отличие между == и is? # 2. Что мы получим? #print(['123', 'да'][False][1]) # 3. Что мы получим? #a = ([1, 2, 3], 'qweqwe') #print(hash(a)) # 4. Что не так? #elementText = "Hello"; #type = str #for elem in range(len(elementText)): # print(elementText[elem])
Companies where asked
sber tech
Answer from AI
sobes.tech AI
- В Python оператор
==проверяет равенство значений объектов, аis— проверяет, указывают ли две переменные на один и тот же объект в памяти.
a = [1, 2, 3]
b = a
c = a.copy()
print(a == c) # True, значения равны
print(a is c) # False, разные объекты
print(a is b) # True, одна ссылка
- Выражение
print(['123', 'да'][False][1]):
['123', 'да']— список из двух строк.- Индекс
Falseпри приведении к целому равен 0, значит выбирается'123'. - Далее
[1]— второй символ строки'123', то есть'2'.
Вывод: 2
-
Переменная
a = ([1, 2, 3], 'qweqwe')— кортеж, содержащий список и строку. Функцияhash()требует, чтобы все элементы были хешируемыми. Список — изменяемый тип, не хешируемый. Поэтомуhash(a)вызовет ошибкуTypeError: unhashable type: 'list'. -
В коде:
elementText = "Hello"
type = str
for elem in range(len(elementText)):
print(elementText[elem])
Проблема в том, что переменная type переопределяет встроенную функцию type(). Это может привести к ошибкам в дальнейшем коде. Лучше использовать другое имя переменной, например, element_type.
Также можно упростить цикл:
for char in elementText:
print(char)
Это более питонично и читаемо.