Python: задачки и вопросы
Kanalga Telegram’da o‘tish
Вопросы и задачки для подготовки к собеседованиям и прокачки навыков Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media
Ko'proq ko'rsatish6 867
Obunachilar
+124 soatlar
-177 kun
-4530 kun
Postlar arxiv
В коде используется метод count() для подсчёта вхождений подстроки "abb" в строку "abbzxyzxzxabb", но с определёнными начальным и конечным индексами.
1. "abb" - подстрока, которую мы ищем
2. -10 - начальный индекс (отсчёт с конца строки)
3. -1 - конечный индекс (отсчёт с конца строки)
Срез от -10 до -1 даёт нам "zxyzxzxab", и в нем нет вхождения "abb".
Если бы мы хотели посчитать вхождения в последних 10 символах:
print("abbzxyzxzxabb".count("abb", -10)) # 1
В этом коде возникает TypeError потому что метод sort() в Python не может сравнивать числа разных типов — в данном случае целые числа (4, 5) и комплексное число 1j.
Когда Python пытается отсортировать этот список, он должен сравнить элементы между собой, чтобы определить их порядок. Однако у нас нет встроенного способа сравнить целое число с комплексным числом, так как это математически не имеет смысла.
Или если бы вы хотели сортировать по модулю комплексных чисел:
y = [4, 5, 1j]
y.sort(key=abs) # Сортировка по модулю числа
1. У вас есть список a = ['hat', 'mat', 'rat']
2. Когда вы вызываете 'rhyme'.join(a), Python:
- Берет первый элемент 'hat'
- Добавляет РАЗДЕЛИТЕЛЬ 'rhyme'
- Берет второй элемент 'mat'
- Добавляет разделитель 'rhyme'
- Берет третий элемент 'rat'
Таким образом, получается:
- 'hat' + 'rhyme' + 'mat' + 'rhyme' + 'rat' = 'hatrhymematrhymerat'
Разделитель добавляется ТОЛЬКО между элементами списка, но не в начале и не в конце. Поэтому в результате мы видим 'rhyme' только между словами, но не в начале или конце строки.
Списки изменяемы и не могут быть элементами множества, но кортежи — неизменяемы и хэшируемы, поэтому кортеж из списка успешно добавится во множество.
В коде есть глобальная переменная x = 10. В функции func() есть операция del x. Когда Python видит операцию del x внутри функции, он считает x локальной переменной этой функции. Но при этом, когда выполняется print(x), Python пытается использовать локальную переменную x, которая еще не была инициализирована (так как del x выполняется после).
