<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>вопрос/ответ data scientics - Python 3 | Data Science | Нейронные сети | AI - Искусственный Интеллект</title>
	<atom:link href="https://python.ivan-shamaev.ru/tag/%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81-%D0%BE%D1%82%D0%B2%D0%B5%D1%82-data-scientics/feed/" rel="self" type="application/rss+xml" />
	<link>https://python.ivan-shamaev.ru/tag/вопрос-ответ-data-scientics/</link>
	<description>Библиотеки обработки данных. Примеры. Строки, списки, файлы, числа, массивы. Язык программирования Python 3 - скачать</description>
	<lastBuildDate>Fri, 19 Jun 2020 08:21:48 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.5</generator>

<image>
	<url>https://python.ivan-shamaev.ru/wp-content/uploads/2019/04/cropped-data_science_python3_logo-32x32.png</url>
	<title>вопрос/ответ data scientics - Python 3 | Data Science | Нейронные сети | AI - Искусственный Интеллект</title>
	<link>https://python.ivan-shamaev.ru/tag/вопрос-ответ-data-scientics/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>51 Python Interview вопрос/ответ на собеседовании для Data Scientist</title>
		<link>https://python.ivan-shamaev.ru/python-job-interview-question-and-answer-for-data-scientist/</link>
					<comments>https://python.ivan-shamaev.ru/python-job-interview-question-and-answer-for-data-scientist/#respond</comments>
		
		<dc:creator><![CDATA[Шамаев Иван]]></dc:creator>
		<pubDate>Mon, 20 Apr 2020 21:11:24 +0000</pubDate>
				<category><![CDATA[Data Science. Data Analytics]]></category>
		<category><![CDATA[Введение в Python 3]]></category>
		<category><![CDATA[data scientist]]></category>
		<category><![CDATA[data scientist python]]></category>
		<category><![CDATA[Data Scientist Python Interview]]></category>
		<category><![CDATA[Python Interview]]></category>
		<category><![CDATA[вопрос/ответ data scientics]]></category>
		<category><![CDATA[вопрос/ответ на собеседовании]]></category>
		<category><![CDATA[вопросы и ответы на собеседовании Python]]></category>
		<category><![CDATA[Какие вопросы на собеседовании по Python]]></category>
		<category><![CDATA[Собеседование Python]]></category>
		<guid isPermaLink="false">https://python.ivan-shamaev.ru/?p=994</guid>

					<description><![CDATA[<p>Вопросы по Python для исследователей данных и разработчиков программного обеспечения 1. В чем разница между списком и кортежем? Этот вопрос звучит очень часто на каждом интервью по Python / Data Science. Обязательно запомните правильный ответ. Списки изменчивы. Они могут быть изменены после создания. Кортежи неизменны. Как только кортеж создан, он не может быть изменен. Списки имеют [&#8230;]</p>
<p>Сообщение <a href="https://python.ivan-shamaev.ru/python-job-interview-question-and-answer-for-data-scientist/">51 Python Interview вопрос/ответ на собеседовании для Data Scientist</a> появились сначала на <a href="https://python.ivan-shamaev.ru">Python 3 | Data Science | Нейронные сети | AI - Искусственный Интеллект</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a class="a2a_button_telegram" href="https://www.addtoany.com/add_to/telegram?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-job-interview-question-and-answer-for-data-scientist%2F&amp;linkname=51%20Python%20Interview%20%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%2F%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%D0%BD%D0%B0%20%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D0%B4%D0%BB%D1%8F%20Data%20Scientist" title="Telegram" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-job-interview-question-and-answer-for-data-scientist%2F&amp;linkname=51%20Python%20Interview%20%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%2F%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%D0%BD%D0%B0%20%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D0%B4%D0%BB%D1%8F%20Data%20Scientist" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-job-interview-question-and-answer-for-data-scientist%2F&amp;linkname=51%20Python%20Interview%20%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%2F%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%D0%BD%D0%B0%20%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D0%B4%D0%BB%D1%8F%20Data%20Scientist" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-job-interview-question-and-answer-for-data-scientist%2F&amp;linkname=51%20Python%20Interview%20%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%2F%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%D0%BD%D0%B0%20%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D0%B4%D0%BB%D1%8F%20Data%20Scientist" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_vk" href="https://www.addtoany.com/add_to/vk?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-job-interview-question-and-answer-for-data-scientist%2F&amp;linkname=51%20Python%20Interview%20%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%2F%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%D0%BD%D0%B0%20%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D0%B4%D0%BB%D1%8F%20Data%20Scientist" title="VK" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-job-interview-question-and-answer-for-data-scientist%2F&amp;linkname=51%20Python%20Interview%20%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%2F%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%D0%BD%D0%B0%20%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D0%B4%D0%BB%D1%8F%20Data%20Scientist" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-job-interview-question-and-answer-for-data-scientist%2F&amp;linkname=51%20Python%20Interview%20%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%2F%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%D0%BD%D0%B0%20%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D0%B4%D0%BB%D1%8F%20Data%20Scientist" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-job-interview-question-and-answer-for-data-scientist%2F&#038;title=51%20Python%20Interview%20%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%2F%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%D0%BD%D0%B0%20%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D0%B4%D0%BB%D1%8F%20Data%20Scientist" data-a2a-url="https://python.ivan-shamaev.ru/python-job-interview-question-and-answer-for-data-scientist/" data-a2a-title="51 Python Interview вопрос/ответ на собеседовании для Data Scientist"></a></p><blockquote>
<p class="aq cl em ex eo ey eq ez es fa eu fb av">Вопросы по Python для исследователей данных и разработчиков программного обеспечения</p>
</blockquote>
<h2 id="dc1e" class="jk jl dt ar aq jm jn jo jp jq jr js jt ju jv jw jx" data-selectable-paragraph=""><span>1. В чем разница между списком и кортежем?</span></h2>
<p id="3262" class="ip iq dt ar ir b em jy eo jz iu ka iw kb iy kc ja dl" data-selectable-paragraph=""><span>Этот вопрос звучит очень часто на каждом интервью по Python / Data Science. Обязательно запомните правильный ответ.</span></p>
<ul class="">
<li id="1933" class="ip iq dt ar ir b em is eo it iu iv iw ix iy iz ja kd ke kf" data-selectable-paragraph=""><span>Списки изменчивы. Они могут быть изменены после создания.</span></li>
<li id="38ea" class="ip iq dt ar ir b em kg eo kh iu ki iw kj iy kk ja kd ke kf" data-selectable-paragraph=""><span>Кортежи неизменны. Как только кортеж создан, он не может быть изменен.</span></li>
<li id="9a85" class="ip iq dt ar ir b em kg eo kh iu ki iw kj iy kk ja kd ke kf" data-selectable-paragraph=""><span>Списки имеют порядок. Они представляют собой упорядоченную последовательность объектов одного типа. Т.е.: все имена пользователей упорядочены по дате создания,</span><code class="ia kl km kn ko b">["Seth", "Ema", "Eli"]</code></li>
<li id="4f79" class="ip iq dt ar ir b em kg eo kh iu ki iw kj iy kk ja kd ke kf" data-selectable-paragraph=""><span>Кортежи имеют структуру. Различные типы данных могут существовать в каждом индексе. Т.е.: запись базы данных в памяти </span><code class="ia kl km kn ko b">(2, "Ema", "2020–04–16") # id, name, created_at</code></li>
</ul>
<h2 id="3fd6" class="jk jl dt ar aq jm jn jo jp jq jr js jt ju jv jw jx" data-selectable-paragraph=""><span>2. Как выполняется интерполяция строк (string interpolation)?</span></h2>
<p id="8a6f" class="ip iq dt ar ir b em jy eo jz iu ka iw kb iy kc ja dl" data-selectable-paragraph=""><span>Без импорта </span><code class="ia kl km kn ko b">Template</code> <span>класса есть 3 способа интерполировать строки.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">name = 'Chris'

# 1. f strings
print(f'Hello {name}')

# 2. % operator
print('Hey %s %s' % (name, name))

# 3. format
print(
 "My name is {}".format((name))
)</pre>
<h2>3. В чем разница между &#171;is&#187; и &#171;==&#187;?</h2>
<p id="2ab0" class="ip iq dt ar ir b em jy eo jz iu ka iw kb iy kc ja dl" data-selectable-paragraph=""><span>Запись </span><code class="ia kl km kn ko b">is</code> <span>проверяет идентичность, а запись </span><code class="ia kl km kn ko b">==</code> <span>проверяет равенство.</span></p>
<p id="4ae3" class="ip iq dt ar ir b em is eo it iu iv iw ix iy iz ja dl" data-selectable-paragraph=""><span>Рассмотрим пример. Создайте несколько списков и присвойте им имена. Обратите внимание, что </span><code class="ia kl km kn ko b">b</code> <span>указывает на тот же объект, что и </span><code class="ia kl km kn ko b">a</code> <span>ниже.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">a = [1,2,3] 
b = a 
c = [1,2,3]</pre>
<p>Проверьте равенство и отметьте, что все они равны.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">print (a == b) 
print (a == c) 
# =&gt; True 
# =&gt; True</pre>
<p>Но они имеют одинаковую идентичность? Нет.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">print (a is b) 
print (a is c) 
# =&gt; True 
# =&gt; False</pre>
<p><span>Мы можем проверить это, напечатав их идентификаторы объектов.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">print(id(a))
print(id(b))
print(id(c))
#=&gt; 4369567560
#=&gt; 4369567560
#=&gt; 4369567624</pre>
<p><code class="ia kl km kn ko b">c</code><span> has a different </span><code class="ia kl km kn ko b">id</code><span> than </span><code class="ia kl km kn ko b">a</code><span> and </span><code class="ia kl km kn ko b">b</code><span>.</span></p>
<h2 class="jk jl dt ar aq jm jn jo jp jq jr js jt ju jv jw jx" data-selectable-paragraph=""><span>4. Что такое декоратор (</span>decorator)<span>?</span></h2>
<p id="cf6c" class="ip iq dt ar ir b em is eo it iu iv iw ix iy iz ja dl" data-selectable-paragraph=""><span>Декоратор позволяет добавить функциональность к существующей функции, передав эту существующую функцию декоратору, который выполнит её и дополнительный код. Как бы это надстройка над существующей функцией.</span></p>
<p id="f6fb" class="ip iq dt ar ir b em is eo it iu iv iw ix iy iz ja dl" data-selectable-paragraph=""><span>Мы напишем декоратор, который будет писать лог при вызове другой функции.</span></p>
<p id="b774" class="ip iq dt ar ir b em is eo it iu iv iw ix iy iz ja dl" data-selectable-paragraph=""><strong class="ir kz"><span>Напишите функцию декоратора. </span></strong><span>Декоратор принимает функцию </span><code class="ia kl km kn ko b">func</code><span>, в качестве аргумента. Он также определяет функцию </span><code class="ia kl km kn ko b">log_function_called</code>, <span>которая вызывает </span><code class="ia kl km kn ko b">func()</code><span>и выполняет некоторый код </span><code class="ia kl km kn ko b">print(f'{func} called.')</code><span>. Затем он возвращает функцию, которую он определил.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">def logging(func):
  def log_function_called():
    print(f'{func} called.')
    func()
  return log_function_called</pre>
<p><span>Давайте напишем другие функции, к которым мы затем добавим декоратор:</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">def my_name():
  print('chris')
def friends_name():
  print('naruto')

my_name()
friends_name()

#=&gt; chris
#=&gt; naruto</pre>
<p><span>Теперь добавим декоратор к обоим функциям.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">@logging
def my_name():
 print('chris')
@logging
def friends_name():
 print('naruto')

my_name()
friends_name()

#=&gt; &lt;function my_name at 0x10fca5a60&gt; called.
#=&gt; chris
#=&gt; &lt;function friends_name at 0x10fca5f28&gt; called.
#=&gt; naruto</pre>
<p><span>Посмотрите, как мы можем теперь легко добавить логирование в любую функцию, которую мы пишем, просто добавив </span><code class="ia kl km kn ko b">@logging</code> <span>над ней.</span></p>
<h2>5. Объясните, как работает функция диапазона (range function)</h2>
<p id="7521" class="ip iq dt ar ir b em jy eo jz iu ka iw kb iy kc ja dl" data-selectable-paragraph=""><span>Range генерирует список целых чисел и его можно использовать тремя способами.</span></p>
<p id="7b65" class="ip iq dt ar ir b em is eo it iu iv iw ix iy iz ja dl" data-selectable-paragraph=""><span>Функция принимает от 1 до 3 аргументов. Рассмотрим три случая &#8212; запись с одним, двумя и тремя аргументами.</span></p>
<p id="129e" class="ip iq dt ar ir b em is eo it iu iv iw ix iy iz ja dl" data-selectable-paragraph=""><code class="ia kl km kn ko b"></code><strong class="ir kz">range(stop)</strong><strong class="ir kz"><span>:</span></strong><span> генерирует целые числа от 0 до целого числа «stop».</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">for i in range(10)
#=&gt; [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]</pre>
<p data-selectable-paragraph=""><code class="ia kl km kn ko b"></code><strong class="ir kz">range(start, stop)</strong><strong class="ir kz"><span>:</span></strong><span> генерирует целые числа от «start» до «stop».</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">for i in range(2,10)
#=&gt; [2, 3, 4, 5, 6, 7, 8, 9]</pre>
<p data-selectable-paragraph=""><code class="ia kl km kn ko b"></code><strong class="ir kz">range(start, stop, step)</strong><strong class="ir kz"><span>:</span></strong><span> генерирует целые числа от «start» до «stop» с интервалами «step».</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">for i in range(2,10,2)
#=&gt; [2, 4, 6, 8]</pre>
<p>Во всех случаях stop (верхняя граница) не включается в список.</p>
<h2>6. Определите класс с именем car и с 2 свойствами, &#171;color&#187; и &#171;speed&#187;. Затем создайте экземпляр и верните свойство speed</h2>
<pre class="EnlighterJSRAW" data-enlighter-language="python">class Car :
    def __init__(self, color, speed):
        self.color = color
        self.speed = speed

car = Car('red','100mph')
car.speed

#=&gt; '100mph'</pre>
<h2>7. В чем разница между методом класса, методом экземпляра и статическим методом в Python?</h2>
<p id="0069" class="ip iq dt ar ir b em jy eo jz iu ka iw kb iy kc ja dl" data-selectable-paragraph=""><strong class="ir kz"><span>Методы экземпляра:</span></strong><span> принимают параметр </span><code class="ia kl km kn ko b">self</code> <span>и относятся к конкретному экземпляру класса.</span></p>
<p id="e033" class="ip iq dt ar ir b em is eo it iu iv iw ix iy iz ja dl" data-selectable-paragraph=""><strong class="ir kz"><span>Статические методы:</span></strong><span> используйте декоратор </span><code class="ia kl km kn ko b">@staticmethod</code> для методов<span>, которые не связаны с конкретными экземплярами и являются автономными (не изменяют свойств класса или экземпляра).</span></p>
<p id="87bb" class="ip iq dt ar ir b em is eo it iu iv iw ix iy iz ja dl" data-selectable-paragraph=""><strong class="ir kz"><span>Методы класса:</span></strong><span> принимают параметр </span><code class="ia kl km kn ko b">cls</code> <span>и могут изменять сам класс.</span></p>
<p id="b789" class="ip iq dt ar ir b em is eo it iu iv iw ix iy iz ja dl" data-selectable-paragraph=""><span>Проиллюстрируем разницу вокруг вымышленного </span><code class="ia kl km kn ko b">CoffeeShop</code> <span>класса.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">class CoffeeShop:
    specialty = 'espresso'
    
    def __init__(self, coffee_price):
        self.coffee_price = coffee_price
    
    # instance method
    def make_coffee(self):
        print(f'Making {self.specialty} for ${self.coffee_price}')
    
    # static method    
    @staticmethod
    def check_weather():
        print('Its sunny')

    # class method
    @classmethod
    def change_specialty(cls, specialty):
        cls.specialty = specialty
        print(f'Specialty changed to {specialty}')</pre>
<p id="266f" class="ip iq dt ar ir b em is eo it iu iv iw ix iy iz ja dl" data-selectable-paragraph=""><code class="ia kl km kn ko b">CoffeeShop</code> <span>У класса есть свойство </span><code class="ia kl km kn ko b">specialty</code><span>, установленное значение по умолчанию </span><code class="ia kl km kn ko b">'espresso'</code><span>. Каждый экземпляр </span><code class="ia kl km kn ko b">CoffeeShop</code> <span>инициализируется со свойством </span><code class="ia kl km kn ko b">coffee_price</code><span>. Он также имеет 3 метода: метод экземпляра, статический метод и метод класса.</span></p>
<p id="2815" class="ip iq dt ar ir b em is eo it iu iv iw ix iy iz ja dl" data-selectable-paragraph=""><span>Давайте инициализируем экземпляр кофейни с </span><code class="ia kl km kn ko b">coffee_price</code> <span>= </span><code class="ia kl km kn ko b">5</code><span>. Затем вызовем метод экземпляра </span><code class="ia kl km kn ko b">make_coffee</code><span>.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">coffee_shop = CoffeeShop('5')
coffee_shop.make_coffee()
#=&gt; Making espresso for $5</pre>
<p><span>Теперь вызовем статический метод. Статические методы не могут изменять класс или состояние экземпляра, поэтому они обычно используются для служебных функций. Мы используем наш ститический метод, чтобы проверить погоду. </span><code class="ia kl km kn ko b">Its sunny</code><span>.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">coffee_shop.check_weather()
#=&gt; Its sunny</pre>
<p><span>Теперь давайте используем метод класса, чтобы изменить вид кофе, а затем вызовем метод </span><code class="ia kl km kn ko b">make_coffee</code><span>.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">coffee_shop.change_specialty('drip coffee')
#=&gt; Specialty changed to drip coffee

coffee_shop.make_coffee()
#=&gt; Making drip coffee for $5</pre>
<p><span>Обратите внимание, как метод </span><code class="ia kl km kn ko b">make_coffee</code> <span>раньше изготавливал </span><code class="ia kl km kn ko b">espresso</code>, <span>но теперь делает </span><code class="ia kl km kn ko b">drip coffee</code><span>!</span></p>
<h2><strong>8. В чем разница между &#171;func&#187; и &#171;func()&#187;?</strong></h2>
<p>Цель этого вопроса &#8212; понять, знаете ли вы, что все функции также являются объектами в Python.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">def func():
    print('Im a function')
    
func
#=&gt; function __main__.func&gt;

func()    
#=&gt; Im a function</pre>
<p><code class="ia kl km kn ko b">func</code> <span>это объект, представляющий функцию, которую можно присвоить переменной или передать другой функции. </span><code class="ia kl km kn ko b">func()</code> <span>с круглыми скобками вызывает функцию и возвращает то, что находится в return.</span></p>
<h2>9. Объясните, как работает функция map()</h2>
<p><code class="ia kl km kn ko b">map</code><span> возвращает список, составленный из возвращаемых значений, от применения функции к каждому элементу в последовательности.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">def add_three(x):
    return x + 3
li = [1,2,3]
list_data = [i for i in map(add_three, li)]
print(list_data)
# [4, 5, 6]</pre>
<h2>10. Объясните, как работает функция reduce()</h2>
<p id="4e69" class="ip iq dt ar ir b em jy eo jz iu ka iw kb iy kc ja dl" data-selectable-paragraph=""><span>Эту функцию довольно сложно сразу понять, пока вы не используете её несколько раз.</span></p>
<p id="7b73" class="ip iq dt ar ir b em is eo it iu iv iw ix iy iz ja dl" data-selectable-paragraph=""><code class="ia kl km kn ko b">reduce</code> <span>берет функцию и последовательность и перебирает эту последовательность. На каждой итерации текущий элемент и выходные данные предыдущего элемента передаются в функцию. В конце возвращается одно значение.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">from functools import reduce

def add_three(x,y):
    return x + y

li = [1,2,3,5]

reduce(add_three, li)
#=&gt; 11</pre>
<p>Возвращается значение <code class="ia kl km kn ko b">11</code><span>, которое является суммой </span><code class="ia kl km kn ko b">1+2+3+5</code><span>.</span></p>
<h2>11. Объясните, как работает функция фильтра filter()</h2>
<p id="2a66" class="ip iq dt ar ir b em jy eo jz iu ka iw kb iy kc ja dl" data-selectable-paragraph=""><span>Функция filter() буквально делает то, о чем говорится в её названии: Фильтрует элементы в последовательности/списке.</span></p>
<p id="b800" class="ip iq dt ar ir b em is eo it iu iv iw ix iy iz ja dl" data-selectable-paragraph=""><span>Каждый элемент передается функции, которая возвращается в выведенной последовательности, если функция возвращается, </span><code class="ia kl km kn ko b">True</code> <span>и отбрасывается, если функция возвращается </span><code class="ia kl km kn ko b">False</code><span>.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">def add_three(x):
    if x % 2 == 0:
        return True        
    else:
        return False

li = [1,2,3,4,5,6,7,8]
new_listdata = [i for i in filter(add_three, li)]
print(new_listdata)
#=&gt; [2, 4, 6, 8]</pre>
<p><span>Обратите внимание, что все элементы, не делимые на 2, были удалены.</span></p>
<h2 id="4475" class="jk jl dt ar aq jm jn jo jp jq jr js jt ju jv jw jx" data-selectable-paragraph=""><span>12. Питон вызывает по ссылке или по значению?</span></h2>
<p id="2a49" class="ip iq dt ar ir b em is eo it iu iv iw ix iy iz ja dl" data-selectable-paragraph=""><span>Неизменяемые объекты, такие как строки, числа и кортежи, вызываются по значению (т.е. в функцию передается именно значение, а не ссылка на объект). Обратите внимание, что значение </span><code class="ia kl km kn ko b">name</code> <span>не изменилось вне функции при изменении внутри. Значение </span><code class="ia kl km kn ko b">name</code> <span>было назначено новому блоку в памяти для переменной этой функции.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">name = 'chr'
def add_chars(s):
    s += 'is'
    print(s)
    
add_chars(name)    
print(name)
#=&gt; chris
#=&gt; chr</pre>
<p><span>Изменяемые объекты, такие как список, вызываются по ссылке. Обратите внимание, как список, определенный вне функции, был изменен внутри функции. Параметр в функции указывает на оригинальный блок в памяти, в котором сохранено значение </span><code class="ia kl km kn ko b">li</code><span>.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">li = [1,2]
def add_element(seq):
    seq.append(3)
    print(seq)
    
add_element(li)    
print(li)
#=&gt; [1, 2, 3]
#=&gt; [1, 2, 3]</pre>
<h2 id="5c35" class="jk jl dt ar aq jm jn jo jp jq jr js jt ju jv jw jx" data-selectable-paragraph=""><span>13. Как перевернуть список?</span></h2>
<p><span>Для того, чтобы перевернуть список, необходимо вызвать функцию </span><code class="ia kl km kn ko b">reverse()</code>, которая является методом списка. Функция изменяет сам список<span>.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">li = ['a','b','c']
print(li)
li.reverse()
print(li)
#=&gt; ['a', 'b', 'c']
#=&gt; ['c', 'b', 'a']</pre>
<h2 id="578f" class="jk jl dt ar aq jm jn jo jp jq jr js jt ju jv jw jx" data-selectable-paragraph=""><span>14. Как работает умножение строк?</span></h2>
<p><span>Давайте посмотрим результаты умножения строки </span><code class="ia kl km kn ko b">'cat'</code> <span>на 3.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">'cat' * 3
#=&gt; 'catcatcat'</pre>
<p><span>Строка соединяется сама с собой 3 раза.</span></p>
<h2 id="f94a" class="jk jl dt ar aq jm jn jo jp jq jr js jt ju jv jw jx" data-selectable-paragraph=""><span>15. Как работает умножение списков?</span></h2>
<p><span>Давайте посмотрим результат умножения списка </span><code class="ia kl km kn ko b">[1,2,3]</code> <span>на 2.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">[1,2,3] * 2 
# =&gt; [1, 2, 3, 1, 2, 3]</pre>
<p><span>Выводится список, содержащий задвоенное содержимое [1,2,3].</span></p>
<h2 id="3991" class="jk jl dt ar aq jm jn jo jp jq jr js jt ju jv jw jx" data-selectable-paragraph=""><span>16. Что означает «self» в классе?</span></h2>
<p id="1d10" class="ip iq dt ar ir b em jy eo jz iu ka iw kb iy kc ja dl" data-selectable-paragraph=""><span>Self относится к экземпляру самого класса. Это то, как мы предоставляем методам доступ и возможность обновлять объект, которому они принадлежат.</span></p>
<p id="4ca7" class="ip iq dt ar ir b em is eo it iu iv iw ix iy iz ja dl" data-selectable-paragraph=""><span>Ниже передача self для </span><code class="ia kl km kn ko b">__init__()</code> <span>дает возможность установить </span><code class="ia kl km kn ko b">color</code> для <span>экземпляра при инициализации.</span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">class Shirt:
    def __init__(self, color):
        self.color = color
        
s = Shirt('yellow')
s.color
#=&gt; 'yellow'</pre>
<h2 id="88a6" class="jk jl dt ar aq jm jn jo jp jq jr js jt ju jv jw jx" data-selectable-paragraph=""><span>17. Как объединить списки в Python?</span></h2>
<p>Сумма 2х списков объединяет их:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">a = [1,2]
b = [3,4,5]
c = a + b
print(c)
print(a + b)
#=&gt; [1, 2, 3, 4, 5]
#=&gt; [1, 2, 3, 4, 5]</pre>
<h2><strong>18. В чем разница между мелкой и глубокой копией (shallow copy vs. deep copy)?</strong></h2>
<p>Мы обсудим это в контексте изменяемого объекта &#8212; списка. Для неизменных объектов, shallow copy против deep copy не столь актуально.</p>
<p>Мы пройдемся по 3-м сценариям.</p>
<p><strong>1) Ссылка на оригинальный объект.</strong> Она указывает на новое имя, li2 указывает на то же место в памяти, на которое указывает li1. Таким образом, любое изменение, которое мы делаем в li1 также происходит в li2.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">li1 = [['a'],['b'],['c']]
li2 = li1
li1.append(['d'])
print(li2)
#=&gt; [['a'], ['b'], ['c'], ['d']]</pre>
<p><strong>2) Создать shallow copy оригинала.</strong> Мы можем сделать это с помощью list() конструктора или более питонического mylist.copy().<br />shallow copy создает новый объект, но заполняет его ссылками на оригинал. Таким образом, добавление нового объекта в исходную коллекцию li3 не распространяется на li4, а изменение одного из объектов li3 будет распространяться на li4.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">li3 = [['a'],['b'],['c']]
li4 = list(li3)
li3.append([4])
print(li4)
#=&gt; [['a'], ['b'], ['c']]
li3[0][0] = ['X']
print(li4)
#=&gt; [[['X']], ['b'], ['c']]</pre>
<p><strong>3) Создать deep copy.</strong> Это сделано с copy.deepcopy(). 2 объекта теперь полностью независимы, и изменения одного из них не влияют на другой список.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">import copy
li5 = [['a'],['b'],['c']]
li6 = copy.deepcopy(li5)
li5.append([4])
li5[0][0] = ['X']
print(li6)
#=&gt; [['a'], ['b'], ['c']]</pre>
<h2><strong>19. В чем разница между списками и массивами?</strong></h2>
<blockquote>
<p><strong>Примечание:</strong> стандартная библиотека Python имеет объект массива, но здесь я специально ссылаюсь на обычно используемый массив Numpy.</p>
</blockquote>
<ul>
<li>Списки существуют в стандартной библиотеке Python. Массивы определены Numpy.</li>
<li>Списки могут быть заполнены различными типами данных в каждом индексе. Массивы требуют однородных элементов.</li>
<li>Арифметика в списках добавляет или удаляет элементы из списка. Арифметика на массивах &#8212; это функция линейной алгебры.</li>
<li>Массивы также используют меньше памяти и обладают значительно большей функциональностью.</li>
</ul>
<h2><strong>20. Как объединить два массива Numpy?</strong></h2>
<p>Помните, массивы &#8212; это не списки. Массивы из Numpy нельзя сложить как списки, т.к. арифметические функции переходят в разряд линейной алгебры (сложение матриц).<br />Для объединения массивов нам нужно использовать функцию сцепления Numpy.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">import numpy as np

a = np.array([1,2,3])
b = np.array([4,5,6])

np.concatenate((a,b))

#=&gt; array([1, 2, 3, 4, 5, 6])</pre>
<h2><strong>21. Назовите изменяемые и неизменяемые объекты в Python</strong></h2>
<p><strong>Неизменяемые объекты</strong> &#8212; означает, что состояние не может быть изменено после создания. Примеры: <strong>int, float, bool, string и tuple</strong>.<br /><strong></strong></p>
<p><strong>Изменяемый объект</strong> &#8212; означает, что состояние может быть изменено после создания. Примерами являются <strong>list, dict и set</strong>.</p>
<h2><strong>22. Как округлить число до 3 десятичных знаков в Python?</strong></h2>
<p>Используйте функцию <strong>round(value, decimal_places)</strong>.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">a = 5.12345
round(a,3)
#=&gt; 5.123</pre>
<h2><strong>23. Как вывести кусок списка &#8212; slice a list?</strong></h2>
<p>Синтаксис <strong>slice</strong> следующий, необходимо <strong>list</strong> передать 3 аргумента, <strong>list[start:stop:step]</strong>, где <strong>step</strong> (шаг) &#8212; это интервал, через который возвращаются элементы.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">a = [0,1,2,3,4,5,6,7,8,9]
print(a[:2])
#=&gt; [0, 1]

print(a[8:])
#=&gt; [8, 9]

print(a[2:8])
#=&gt; [2, 3, 4, 5, 6, 7]

print(a[2:8:2])
#=&gt; [2, 4, 6]</pre>
<h2><strong>24. Что такое pickling (маринование)?</strong></h2>
<p><strong>Pickling</strong> &#8212; это метод сериализации и десериализации объектов в Python.</p>
<p>В приведенном ниже примере мы сериализуем и десериализуем список словарей.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">import pickle
obj = [
    {'id':1, 'name':'Stuffy'},
    {'id':2, 'name': 'Fluffy'}
]
with open('file.p', 'wb') as f:
    pickle.dump(obj, f)
with open('file.p', 'rb') as f:
    loaded_obj = pickle.load(f)
print(loaded_obj)
#=&gt; [{'id': 1, 'name': 'Stuffy'}, {'id': 2, 'name': 'Fluffy'}]</pre>
<h2><strong>25. В чем разница между словарями (dictionaries) и JSON?</strong></h2>
<p><strong>Dictionary</strong> &#8212; это тип данных Python, набор проиндексированных, но неупорядоченных ключей и значений.</p>
<p><strong>JSON</strong> &#8212; это просто строка, которая следует заданному формату и предназначена для передачи данных.</p>
<h2><strong>26. Какие ORM вы использовали в Python?</strong></h2>
<p><strong>ORM (объектно-реляционное отображение или object relational mapping)</strong> отображают модели данных (обычно в приложении) в таблицы базы данных и упрощают транзакции базы данных.</p>
<p><strong>SQLAlchemy</strong> обычно используется для фреймворка Flask, а Django имеет собственный ORM.</p>
<h2><strong>27. Как работает any() и all()?</strong></h2>
<p><strong>Any()</strong> принимает последовательность и возвращает true, если какой-либо элемент в последовательности равен true.<br /><strong>All()</strong> возвращает истину, только если все элементы в последовательности истинны.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">a = [False, False, False]
b = [True, False, False]
c = [True, True, True]

print( any(a) )
print( any(b) )
print( any(c) )
#=&gt; False
#=&gt; True
#=&gt; True

print( all(a) )
print( all(b) )
print( all(c) )
#=&gt; False
#=&gt; False
#=&gt; True</pre>
<h2><strong>28. Что быстрее для поиска элемента &#8212; словарь или список в Python?</strong></h2>
<p>Поиск значения в списке занимает <strong>O(n)</strong> времени, потому что весь список необходимо перебирать до тех пор, пока значение не будет найдено.</p>
<p>Поиск ключа в словаре занимает <strong>O(1)</strong> времени, потому что это хеш-таблица.</p>
<p>Это может иметь огромное значение во времени, если значений много, поэтому словари обычно рекомендуются для скорости. Но у них есть и другие ограничения, такие как необходимость в уникальных ключах.</p>
<h2><strong>29. В чем разница между модулем и пакетом?</strong></h2>
<p><strong>Модуль</strong> &#8212; это файл (или набор файлов), который можно импортировать вместе.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">import sklearn</pre>
<p><strong>Пакет</strong> &#8212; это каталог модулей.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">from sklearn import cross_validation</pre>
<p>Таким образом, пакеты являются модулями, но не все модули являются пакетами.</p>
<h2><strong>30. Как увеличить и уменьшить целое число в Python?</strong></h2>
<p>Увеличение и уменьшение может быть сделано с<strong> +=</strong> и <strong>-=.</strong></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">value = 5

value += 1
print(value)
#=&gt; 6

value -= 1
value -= 1
print(value)
#=&gt; 4</pre>
<h2><strong>31. Как преобразовать целое число в двоичное?</strong></h2>
<p>Используйте <strong>bin()</strong> функцию.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">bin(5)
#=&gt; '0b101'</pre>
<h2><strong>32. Как удалить дубликаты элементов из списка?</strong></h2>
<p>Удалить дубликаты элементов из списка можно сделать путем преобразования списка в набор, а затем обратно в список.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">a = [1,1,1,2,3]
a = list(set(a))
print(a)

#=&gt; [1, 2, 3]</pre>
<p>Обратите внимание, что наборы не обязательно будут сохранять порядок списка.</p>
<h2><strong>33. Как проверить, существует ли значение в списке?</strong></h2>
<p>Использование <strong>in</strong>.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">'a' in ['a','b','c']
#=&gt; True

'a' in [1,2,3]
#=&gt; False</pre>
<h2><strong>34. В чем разница между дополнением и расширением?</strong></h2>
<p><strong>append</strong> добавляет значение в список, а <strong>extend</strong> добавляет в список значения из другого списка.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">a = [1,2,3]
b = [1,2,3]
a.append(6)
print(a)
#=&gt; [1, 2, 3, 6]

b.extend([4,5])
print(b)
#=&gt; [1, 2, 3, 4, 5]</pre>
<h2><strong>35. Как получить абсолютное значение (модуль) целого числа?</strong></h2>
<p>Это можно сделать с помощью abs() функции.<span class="jm jn ds as kq b fu kt ku r kv" data-selectable-paragraph=""></span></p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">abs(2)
#=&gt; 2

abs(-2)
#=&gt; 2</pre>
<h2><strong>36. Как объединить два списка (2 lists) в список кортежей (list of tuples)?</strong></h2>
<p>Вы можете использовать zip() функцию для объединения списков в список кортежей. Функция zip() не ограничена для объединения только 2 списков. zip() также можно вызвать с 3 или большим числом списков.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">a = ['a','b','c']
b = [1,2,3]
[(k,v) for k,v in zip(a,b)]
#=&gt; [('a', 1), ('b', 2), ('c', 3)]</pre>
<h2><strong>37. Как отсортировать словарь по ключу в алфавитном порядке?</strong></h2>
<p>Вы не можете &#171;отсортировать&#187; словарь, потому что словари не имеют порядка, но вы можете вернуть отсортированный список кортежей, в котором есть ключи и значения, которые есть в словаре.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">d = {'c':3, 'd':4, 'b':2, 'a':1}
sorted(d.items())
#=&gt; [('a', 1), ('b', 2), ('c', 3), ('d', 4)]</pre>
<h2><strong>38. Как класс наследуется от другого класса в Python?</strong></h2>
<p>В приведенном ниже примере Audi наследуется от Car. И с этим наследованием приходят методы экземпляра родительского класса (т.е. из класса Car в класс Audi).</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">class Car():
    def drive(self):
        print('vroom')

class Audi(Car):
    pass

audi = Audi()
audi.drive()</pre>
<h2><strong>39. Как можно удалить все пробелы из строки?</strong></h2>
<p>Применяем функцию replace</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">s = 'A string with     white space'
s.replace(' ', '')
#=&gt; 'Astringwithwhitespace'</pre>
<h2><strong>40. Почему следует использовать enumerate() для выполнения итерации последовательности?</strong></h2>
<p>Функция enumerate() позволяет отслеживать индекс при итерации по последовательности. Это более pythonic, чем определение и увеличение целого числа, представляющего индекс.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">li = ['a','b','c','d','e']

for idx,val in enumerate(li):
    print(idx, val)

#=&gt; 0 a
#=&gt; 1 b
#=&gt; 2 c
#=&gt; 3 d
#=&gt; 4 e</pre>
<h2><strong>41. В чем разница между pass, continue и break?</strong></h2>
<p><span style="color: #ff6600;"><strong>pass</strong></span> &#8212; значит ничего не делать. Обычно его используют, потому что Python не позволяет создавать класс, функцию или оператор if без кода внутри.<br />В приведенном ниже примере будет выдана ошибка без кода внутри <strong>i &gt; 3</strong>, поэтому следует использовать <strong>pass</strong>.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">a = [1,2,3,4,5]
for i in a:
    if i &gt; 3:
        pass
    print(i)
#=&gt; 1
#=&gt; 2
#=&gt; 3
#=&gt; 4
#=&gt; 5</pre>
<p><span style="color: #ff6600;"><strong>continue</strong></span> &#8212; переводит цикл на следующий элемент и останавливает выполнение цикла для текущего элемента. Так <strong>print(i)</strong> никогда не выполнится для значений, где <strong>i &lt; 3</strong>.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">for i in a:
    if i &lt; 3:
        continue
    print(i)
#=&gt; 3
#=&gt; 4
#=&gt; 5</pre>
<p><span style="color: #ff6600;"><strong>break</strong> </span>&#8212; прекращает цикл и последовательность больше не повторяется. Таким образом, элементы <strong>i со значения 3</strong> не выводятся.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">for i in a:
    if i == 3:
        break
    print(i)    
#=&gt; 1
#=&gt; 2</pre>
<h2><strong>42. Как перевести цикл (loop) в запись одной строки для списка (list)?</strong></h2>
<p>Рассмотрим цикл <strong>for (for loop)</strong> &#8212; Как было до</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">a = [1,2,3,4,5]
 
a2 = []
for i in a:
     a2.append(i + 1)
print(a2)
#=&gt; [2, 3, 4, 5, 6]</pre>
<p>Как можно преобразовать &#8212; Как стало после</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">a3 = [i+1 for i in a]
print(a3)
#=&gt; [2, 3, 4, 5, 6]</pre>
<p>Понимание списка обычно считается более pythonic, когда оно все еще читаемо.</p>
<h2><strong>43. Приведите пример троичного оператора (ternary operator)</strong></h2>
<p>Тернарный оператор (ternary operator) &#8212; это однострочный оператор if / else.<br />Синтаксис выглядит так <span style="color: #ff6600;"><strong>&#8216;a if condition else b&#8217;</strong></span>.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">x = 5
y = 10

'greater' if x &gt; 6 else 'less'
#=&gt; 'less'

'greater' if y &gt; 6 else 'less'
#=&gt; 'greater'</pre>
<pre class="hk hl hm hn ho kr ks ca"><span id="a45b" class="jm jn ds as kq b fu kt ku r kv" data-selectable-paragraph=""></span></pre>
<h2><strong>44. ​​Как проверить, что строка содержит только цифры?</strong></h2>
<p>Для этих целей Вы можете использовать функцию isnumeric()</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">'123a'.isnumeric()
#=&gt; False

'123'.isnumeric()
#=&gt; True</pre>
<h2><strong>45. Как проверить, что строка содержит только буквы</strong></h2>
<p>Для этих целей Вы можете использовать функцию isalpha().</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">'123a'.isalpha()
#=&gt; False

'a'.isalpha()
#=&gt; True</pre>
<h2><strong>46. Как проверить, что строка содержит только цифры и буквы</strong></h2>
<p>Для этих целей Вы можете использовать функцию isalnum().</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">'123abc...'.isalnum()
#=&gt; False

'123abc'.isalnum()
#=&gt; True</pre>
<h2><strong>47. Как вернуть список ключей из словаря</strong></h2>
<p>Это может быть сделано путем передачи словарю питона list() конструктора list()</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">d = {'id':7, 'name':'Shiba', 'color':'brown', 'speed':'very slow'}

list(d)
#=&gt; ['id', 'name', 'color', 'speed']</pre>
<h2><strong>48. Как строку преобразовать в верхний и нижний регистр?</strong></h2>
<p>Вы можете использовать строковые методы upper() и lower() для преобразования регистра</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">small_word = 'potatocake'
big_word = 'FISHCAKE'

small_word.upper()
#=&gt; 'POTATOCAKE'

big_word.lower()
#=&gt; 'fishcake'</pre>
<h2><strong>49. В чем разница между remove, del и pop?</strong></h2>
<p>remove() удаляет первое совпадающее значение</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">li = ['a','b','c','d']
li.remove('b')
li
#=&gt; ['a', 'c', 'd']</pre>
<p>del() удаляет элемент по индексу</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">li = ['a','b','c','d']
del li[0]
li
#=&gt; ['b', 'c', 'd']</pre>
<p>pop() удаляет элемент по индексу и возвращает этот элемент.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">li = ['a','b','c','d']
li.pop(2)
#=&gt; 'c'
li
#=&gt; ['a', 'b', 'd']</pre>
<h2><strong>50. Приведите пример словарного понимания (dictionary comprehension)</strong></h2>
<p>Ниже мы создадим словарь с буквами алфавита в качестве ключей и индекс в алфавите в качестве значений.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python"># creating a list of letters
import string
list(string.ascii_lowercase)
alphabet = list(string.ascii_lowercase)
# list comprehension
d = {val:idx for idx,val in enumerate(alphabet)} 
d
#=&gt; {'a': 0,
#=&gt;  'b': 1,
#=&gt;  'c': 2,
#=&gt; ...
#=&gt;  'x': 23,
#=&gt;  'y': 24,
#=&gt;  'z': 25}</pre>
<h2><strong>51. Как выполняется обработка исключений в Python?</strong></h2>
<p>Python предоставляет 3 слова для обработки исключений try, except и finally.<br />Синтаксис выглядит следующим образом.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">try:
    # try to do this
except:
    # if try block fails then do this
finally:
    # always do this</pre>
<p>В следующем примере блок try завершается ошибкой, потому что мы не можем складывать целые числа со строками. В except блоке val = 10 и затем finally блок печатает complete.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">try:
    val = 1 + 'A'
except:
    val = 10
finally:
    print('complete')
    
print(val)
#=&gt; complete
#=&gt; 10</pre>


<p></p>
<p><a class="a2a_button_telegram" href="https://www.addtoany.com/add_to/telegram?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-job-interview-question-and-answer-for-data-scientist%2F&amp;linkname=51%20Python%20Interview%20%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%2F%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%D0%BD%D0%B0%20%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D0%B4%D0%BB%D1%8F%20Data%20Scientist" title="Telegram" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_whatsapp" href="https://www.addtoany.com/add_to/whatsapp?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-job-interview-question-and-answer-for-data-scientist%2F&amp;linkname=51%20Python%20Interview%20%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%2F%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%D0%BD%D0%B0%20%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D0%B4%D0%BB%D1%8F%20Data%20Scientist" title="WhatsApp" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-job-interview-question-and-answer-for-data-scientist%2F&amp;linkname=51%20Python%20Interview%20%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%2F%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%D0%BD%D0%B0%20%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D0%B4%D0%BB%D1%8F%20Data%20Scientist" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-job-interview-question-and-answer-for-data-scientist%2F&amp;linkname=51%20Python%20Interview%20%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%2F%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%D0%BD%D0%B0%20%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D0%B4%D0%BB%D1%8F%20Data%20Scientist" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_vk" href="https://www.addtoany.com/add_to/vk?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-job-interview-question-and-answer-for-data-scientist%2F&amp;linkname=51%20Python%20Interview%20%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%2F%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%D0%BD%D0%B0%20%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D0%B4%D0%BB%D1%8F%20Data%20Scientist" title="VK" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-job-interview-question-and-answer-for-data-scientist%2F&amp;linkname=51%20Python%20Interview%20%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%2F%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%D0%BD%D0%B0%20%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D0%B4%D0%BB%D1%8F%20Data%20Scientist" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-job-interview-question-and-answer-for-data-scientist%2F&amp;linkname=51%20Python%20Interview%20%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%2F%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%D0%BD%D0%B0%20%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D0%B4%D0%BB%D1%8F%20Data%20Scientist" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fpython.ivan-shamaev.ru%2Fpython-job-interview-question-and-answer-for-data-scientist%2F&#038;title=51%20Python%20Interview%20%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%2F%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%D0%BD%D0%B0%20%D1%81%D0%BE%D0%B1%D0%B5%D1%81%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D0%B4%D0%BB%D1%8F%20Data%20Scientist" data-a2a-url="https://python.ivan-shamaev.ru/python-job-interview-question-and-answer-for-data-scientist/" data-a2a-title="51 Python Interview вопрос/ответ на собеседовании для Data Scientist"></a></p><p>Сообщение <a href="https://python.ivan-shamaev.ru/python-job-interview-question-and-answer-for-data-scientist/">51 Python Interview вопрос/ответ на собеседовании для Data Scientist</a> появились сначала на <a href="https://python.ivan-shamaev.ru">Python 3 | Data Science | Нейронные сети | AI - Искусственный Интеллект</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://python.ivan-shamaev.ru/python-job-interview-question-and-answer-for-data-scientist/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
