Вы не авторизованы и не можете видеть весь контент сайта. Хотите авторизоваться?
Данный сайт использует куки. Это позволяет нам анализировать взаимодействие посетителей с сайтом и делать его лучше. Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie.
Вы можете установить этой сайт в виде иконки на рабочем столе
и использовать его как нативное приложение.
Хотите установить это веб-приложение?
Python для начинающих 014
<% normalizedTimer %>
Что выведет код:
```python
class Squares:
def __init__(self, start, stop):
self.value = start - 1
self.stop = stop
def __iter__(self) :
return self
def __next__ (self) :
if self.value == self.stop:
raise StopIteration
self.value += 1
return self.value ** 2
X = Squares(1, 3)
print([n for n in X], [n for n in X])
```
Вопрос № 1(Верно)(Неверно)
Ответы:
[][]
[1, 4, 9] [1, 4, 9]
[] [1, 4, 9]
[1, 4, 9] []
<pre>
Какой из вариантов кода сделает вывод:
1 4 9 16 25
</pre>
Вопрос № 2(Верно)(Неверно)
Ответы:
```python
def gsquares(start, stop):
for i in range (start, stop + 1):
yield i ** 2
for i in gsquares (1, 5):
print(i, end=' ')
```
```python
class Squares:
def __init__(self, start, stop):
self.value = start - 1
self.stop = stop
def __iter__(self) :
return self
def __next__ (self) :
if self.value == self.stop:
raise StopIteration
self.value += 1
return self.value ** 2
for i in [n for n in Squares(1, 5)]:
print(i, end=' ')
```
```python
for i in (x ** 2 for x in range (1, 6)):
print(i, end=' ')
```
```python
for i in [х ** 2 for х in range (1, 6)]:
print(i, end=" ")
```
Что выведет код?
```python
class SkipObject:
def __init__(self, wrapped):
self.wrapped = wrapped
def __iter__(self):
return Skipiterator(self.wrapped)
class Skipiterator:
offset = 0
def __init__(self, wrapped):
self.wrapped = wrapped
def __next__(self):
if self.offset >= len(self.wrapped):
raise StopIteration
else:
item = self.wrapped[self.offset]
self.__class__.offset += 1
return item
S = SkipObject('ABCD')
for i in S:
for j in S:
print(i + "" + j, end="")
```
Вопрос № 3(Верно)(Неверно)
Ответы:
AAABACADBABBBCBDCACBCCCDDADBDCDD
ABACADBCCDCD
ABACAD
AAABACAD
Пусть S - это список.
Нужно вывести каждый второй элемент:
```python
for x in S[::2]:
print(x)
```
В чем проблема такого подхода?
Отметьте все правильные аргументы.
Вопрос № 4(Верно)(Неверно)
Ответы:
У такого подхода нет проблем.
Результат среза S[::2] будет полностью храниться в памяти
Операция среза для списка невозможна.
Сравните два следующих варианта кода:
Первый вариант
```python
class Squares: # Генератор на основе__ iter__ + yield
def __init__ (self, start, stop):
self.start = start
self.stop = stop
def __iter__(self):
for value in range(self.start, self.stop + 1):
yield value ** 2
for i in Squares (1, 5):
print(i, end=' ')
```
Второй вариант
```python
class Squares:
def __init__ (self, start, stop):
self.start = start
self.stop = stop
def gen(self):
for value in range(self.start, self.stop + 1):
yield value ** 2
for i in Squares (1, 5).gen():
print (i, end= ' ')
```
Они эквивалентны (c точки зрения вывода) или имеют различие?
Вопрос № 5(Верно)(Неверно)
Ответы:
Эквивалентны
Не эквивалентны
Что выведет следующий код:
```python
_formats = {
'ymd' : '{d.year}-{d.month}-{d.day}',
'mdy' : '{d.month}/{d.day}/{d.year}',
'dmy' : '{d.day}/{d.month}/{d.year}'
}
class Date:
def __init__(self, year, month, day):
self.year = year
self.month = month
self.day = day
def __format__(self, code):
if code == '':
code = 'ymd'
fmt = _formats[code]
return fmt.format(d=self)
d = Date(2012, 12, 21)
print(format(d), format(d, 'mdy'))
```
Вопрос № 6(Верно)(Неверно)
Ответы:
12-21-2012 21/12/2012
2012/12/21 12/21/2012
12/21/2012 2012-12-21
2012-12-21 12/21/2012
2012-12-21 21/12/2012
Дан код
```python
S = Squares(1, 3)
for i in S:
for j in S:
print('%s:%s' % (i, j) , end=' ')
```
Который дает следующий вывод:
<pre> 1:1 1:4 1:9 4:1 4:4 4:9 9:1 9:4 9:9
Какие реализации класса Squares возможны?</pre>
Вопрос № 7(Верно)(Неверно)
Ответы:
```python
class Squares:
def __init__ (self, start, stop) : # Генератор, не основанный на yield
self.start = start # Множество просмотров: дополнительный объект
self.stop = stop
def __iter__ (self):
return Squareslter(self.start, self.stop)
class Squareslter:
def __init__ (self, start, stop):
self.value = start - 1
self.stop = stop
def __next__(self):
if self.value == self.stop:
raise StopIteration
self.value += 1
return self.value ** 2
```
```python
class Squares:
def __init__ (self, start, stop):
self.start = start
self.stop = stop
def __iter__(self):
for value in range(self.start, self.stop + 1):
yield value ** 2
```
```python
class Squares:
def __init__ (self, start, stop):
self.start = start
self.stop = stop
def __iter__(self):
yield from (x**2 for x in range(self.start, self.stop+1))
```
Что выведет код
```python
class A:
def __iter__(self):
yield from range(10)
a = A()
print(5 in a, 20 in a)
```
Вопрос № 8(Верно)(Неверно)
Ответы:
<pre>True</pre>
<pre>True True</pre>
<pre>False False</pre>
<pre>True False</pre>
<pre>Будет ошибка, потому, что отсутствует метод __contains__</pre>
Что выведет код
```python
class A:
def __init__(self):
self.x = [1, 2, 3]
def __getitem__(self, i):
return self.x[i]
print(3 in a, 30 in a)
```
Вопрос № 9(Верно)(Неверно)
Ответы:
<pre>True</pre>
<pre>True True</pre>
<pre>False False</pre>
<pre>True False</pre>
<pre>Будет ошибка, потому, что отсутствует метод __contains__</pre>
<pre>Будет ошибка, потому, что отсутствует метод __iter__</pre>
<pre>Может ли метод __getitem__ быть использован для итераций вместо метода __iter__?</pre>