Помощник Python

1. Снова массивы (они же в python списки)

Список - тип данных для хранения набора элементов.
Задать его можно следующим образом:

a = [0, 2, 4, 7]
b = ["yes", "no"]

Обратиться к списку можно с помощью квадратных скобок, а именно:

# Это комментарий
print(a[1]) # Другой комментарий, выведет 2
print(b[0]) # выведет yes

Длину списка можно узнать через len(a). (где а - название списка)
Пройти циклом по массиву можно двумя способами:

A = [1, 2, 3, 4, 5]

# Вариант 1, хотим напечатать каждый элемент дважды
for element in A:
    print(element, element)
# 1 1
# 2 2
# 3 3 
# 4 4
# 5 5
# ОБРАТИТЕ ВНИМАНИЕ! Этим способом вы НЕ можете менять значения элементов массива, по которым вы проходите:
for element in A:
    element = element * 2
print(A) # [1, 2, 3, 4, 5]

# Вариант 2.1, хотим умножить каждый элемент на 2
for i in range(len(A)):
    A[i] = A[i]*2

print(A) #[2, 4, 6, 8, 10]

A = [1, 2, 3, 4, 5]
# Вариант 2.2, хотим сложить каждый чётный индекс со следующим нечётным
for i in range(0, len(A) - 1, 2): # i проходит значения от 0 (вкл) до 4 (невкл) с шагом 2
    A[i] = A[i] + A[i+1]
print(A) # [3, 2, 7, 4, 5]
# Ответьте себе на вопрос: а что если бы внутри range было бы написано len(A), а не len(A) - 1


При этом можно обращаться и с конца, используя отрицательные числа, то есть под индексом -1 будет последний элемент списка.

# Пример
a = [1, 1, 2, 3, 5, 10, 13]
a[-1] = a[-1] + 1 #увеличить последний элемент на 1
a[-2] = a[-3] + a[-4] #заменить второй с конца элемент на сумму третьего и четвёртого с конца

b = []
for i in range(1, len(a)):
    b.append(a[-i] + 1)
# в этом цикле i проходит значения от 1 до 7 (длина списка "а") не включая
#последнее значение, и последоваетльно добавляет элементы a[-1] + 1, a[-2] + 1 ... a[-6] + 1
print(" ".join(b)) #выведет строку вида b[0]*пробел*b[1]*пробел*...*пробел*b[-1]
#15 9 6 4 3 2
print("".join(a)) #выведет строку вида a[0]a[1]a[2]...a[-1] без разделителя
#11235814

Также можно с помощью if узнать, содержится ли элемент в списке:

a = [0, 2, 4, 7]
for i in range(10): #пробегаем i от 0 до 9
    if i in a: # если i есть в а
        print(i, "exists!")
    else: # иначе (если i не находится в а)
        print(i, "does not exist!")

# 0 exists!
# 1 does not exist!
# 2 exists!
# 3 does not exist!
# 4 exists!
# 5 does not exist!
# 6 does not exist!
# 7 exists!
# 8 does not exist!
# 9 does not exist!

if 1 not in a:
    print("1 does not exist!")
else:
    print("1 exists!")

# 1 does not exist!


В задачах может быть полезна следующая конструкция:

A = input().split()
for i in range(len(A)):
  A[i] = int(A[i])

Она позволяет сделать из строчки чисел, записанных через пробел, список А.

Для того, чтобы создать двумерный массив, можно воспользоваться следующим кодом:

N = int(input()) # принимаем на вход число - размер двумерного массива
# [0 for i in range(N)] создаёт одномерный массив длины N, заполненный нулями
# вместо 0 можно использовать что угодно, в том числе массив
A = [ [0 for i in range(N)] for j in range(N)] # так можно создать массив 10 на 10 и записать его в переменную A

A[1][2] = 3 # присваеваем значение
print(A[4][4]) # выведет 0
print(A[1][2]) # выведет 3

print(A[N][3]) #!! выведет ошибку, т.к. выйдет за пределы массива