Программирование и научные вычисления на языке Python/§3/Упражнения

  

1 range(n) возвращает:

список [0, 1, 2, ..., n]
список [0, 1, 2, ..., n-1]
кортеж (0, 1, 2, ..., n-1)

2 В чем отличие между методами append() и insert() ?

append() добавляет элемент в конец последовательности, а insert() - в начало.
Никакой разницы, просто append() - для списков, а insert() - для кортежей.
Метод append() добавляет элемент в конец списка, а insert() - в место, указанное первым аргументом метода.

3 В чем отличие оператора == от оператора -= ?

Первый оператор отвечает за сравнение на условие равенства, второй - оператор сравнения на условие, что левая переменная меньше правой.
Первый - оператор сравнения, второй - альтернативная запись одного из операторов инкремента/декремента.
Отличие лишь в написании, оба операторы используются для сравнения.


Нечетные числа

Напишите код, который выводит нечетные числа от 1 до n, задаваемое в начале программы. Название программы: odd.py.

# -*- coding: utf-8 -*-

n = int(input("Введите n: "))

for i in range(1, n+1, 2):
    print(i)

Список нечетных

Модифицируйте предыдущую программу так, чтобы получаемые числа сохранялись в списке. Название программы: odd_list1.py.

# -*- coding: utf-8 -*-

n = int(input("Введите n: "))

lst = [i for i in range(1,n+1,2)]
print(lst)

Используя range

Напишите предыдущий код, используя функцию range. Название программы: odd_list2.py.

# -*- coding: utf-8 -*-

n = int(input("Введите n: "))

lst1 = range(1, n+1, 2)
lst2 = [0.0]*len(lst1)

for i in range(len(lst1)):
    lst2[i] = lst1[i]
print(lst2)

Списки на пальцах

Вы видите перед собой следующий текст программы:

a = [1, 3, 5, 7, 11]
b = [13, 17]
c = a + b
print c
d = [e+1 for e in a]
print d
d.append(b[0] + 1)
d.append(b[-1] + 1)
print d

Не используя Python, скажите что выведет программа после последней инструкции.

[2, 4, 6, 8, 12, 14, 18]

Вложенные списки

Пусть мы задали следующий список:

q = [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h']]

Как нам получить из списка:

  1. букву 'a';
  2. список ['d', 'e', 'f'];
  3. последний элемент, 'h';
  4. элемент 'd'?;
  5. Объясните почему q[-1][-2] дает нам значение 'g'.
# -*- coding: utf-8 -*-

q = [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h']]

# Как нам получить из списка:
# 1. букву 'a';
print(q[0][0])

# 2. список ['d', 'e', 'f'];
print(q[1])

# 3. последний элемент, 'h';
print(q[2][1])

# 4. элемент 'd'?;
print(q[1][0])

# 5. Объясните почему q[-1][-2] дает нам значение 'g'.
#
# q[-1] обращается к последнему списку в списке q, т. е. ['g', 'h']
# q[-1][-2] обращается ко 2 символу с конца в списке ['g', 'h']