Решение модуля 2.6 из курса «Программирование на Python»

Показываю разборы с ответами и решениями урока 2.6 (Задачи по материалам недели) для курса «Программирование на Python».
Предыдущий модуль 2.5 следующий модуль 3.1

Напишите программу, которая считывает с консоли числа (по одному в строке) до тех пор, пока сумма введённых чисел не будет равна 0 и сразу после этого выводит сумму квадратов всех считанных чисел.

Гарантируется, что в какой-то момент сумма введённых чисел окажется равной 0, после этого считывание продолжать не нужно.

В примере мы считываем числа 1, -3, 5, -6, -10, 13; в этот момент замечаем, что сумма этих чисел равна нулю и выводим сумму их квадратов, не обращая внимания на то, что остались ещё не прочитанные значения.

a1 = int (input())
s= a1
s2 = 0+abs(a1**2)
while s!=0:
    a1 = int(input())
    s = s + a1
    s2 = s2+abs(a1)**2
    if s==0:
        break
print(s2)

Напишите программу, которая выводит часть последовательности 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 … (число повторяется столько раз, чему равно). На вход программе передаётся неотрицательное целое число n — столько элементов последовательности должна отобразить программа. На выходе ожидается последовательность чисел, записанных через пробел в одну строку.

Например, если n = 7, то программа должна вывести 1 2 2 3 3 3 4.

n = int(input())
lis = []
for i in range(1, n+1):
    for j in range(1, i+1):
        lis.append(i)
print(*lis[:n])

Напишите программу, которая считывает список чисел lstlst из первой строки и число xx из второй строки, которая выводит все позиции, на которых встречается число xx в переданном списке lstlst.

Позиции нумеруются с нуля, если число xx не встречается в списке, вывести строку «Отсутствует» (без кавычек, с большой буквы).

Позиции должны быть выведены в одну строку, по возрастанию абсолютного значения.

s = [ int(i) for i in input().split()]
n = int(input())
t = []
l = len(s)-1
if n in s:
    for i in range(0,l+1):
        if s[i]==n:
            t.append(i)
    g = len(t)-1
    for j in range(0,g+1):
        print(t[j],end=' ')
else:
    print('Отсутствует')

Напишите программу, на вход которой подаётся прямоугольная матрица в виде последовательности строк. После последней строки матрицы идёт строка, содержащая только строку «end» (без кавычек, см. Sample Input).

Программа должна вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен сумме элементов первой матрицы на позициях (i-1, j), (i+1, j), (i, j-1), (i, j+1). У крайних символов соседний элемент находится с противоположной стороны матрицы.

В случае одной строки/столбца элемент сам себе является соседом по соответствующему направлению.

m = []
while True:
    n = input().split()
    if n[0] == 'end':
        break
    else:
        m.append(n)
for i in range(len(m)):
    x = ''
    for j in range(len(m[i])):
        a = int(m[i - 1][j])
        if i == len(m) - 1:
            b = int(m[0][j])
        else:
            b = int(m[i + 1][j])
        c = int(m[i][j - 1])
        if j == len(m[i]) - 1:
            d = int(m[i][0])
        else:
            d = int(m[i][j + 1])
        s = a + b + c + d
        x += str(s) + ' '
    print(x.rstrip())

Выведите таблицу размером n \times nn×n, заполненную числами от 11 до n^2n2 по спирали, выходящей из левого верхнего угла и закрученной по часовой стрелке, как показано в примере (здесь n=5):

a=int(input())
nul=[[0]*a for i in range(a)]
x,y=0,0
for i in range(1,a**2+1):
    nul[x][y]=i
    if x<=y+1 and x+y<a-1: y+=1
    elif x<y: x+=1
    elif x+y>=a : y-=1
    elif x>=y : x-=1
for i in range(a):
    print(*nul[i])

Понравилась статья? Поделиться с друзьями:
Комментарии: 1
  1. Al

    n = int(input())
    m = [[0] * n for i in range(n)]
    i, j, di, dj = 0, 0, 0, 1

    for k in range(n * n):
    m[i][j] = k + 1
    if (not -1 < i + di < n) or (not -1 < j + dj < n) or m[i + di][j + dj] != 0:
    di, dj = dj, -di
    i, j = i + di, j + dj

    [print(*i) for i in m]

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Adblock
detector