1

(14 відповідей, залишених у Обговорення)

добрий день, допоможіть будь ласка покращити код до завдання. Чи можна зробити це легшим шляхом?
Заповнити матрицю випадковими числами. Розмістити на головній діагоналі
суми елементів, які розміщені на діагоналях, перпендикулярних до головної.

from random import randint
m = int(input('Кількість рядків: '))
M = [[ randint(0, 20) for j in range(m)] for i in range(m)]
for i in range(m):
    print(M[i])
h = 2 #для індексу стовпців
k = 1 #лічильник для чогось 
l = []
h = 2 #лічильник для елементів діагоналей
p = 0 #для сум
g = 1 #для діагоналей
f = 0 #лічильник для сум 
s = 1 #і це тоже
for i in range (m-1): # шукає потрібні елементи
    while h<=(m-1):
        if m<=4: 
            l.append(M[i][h]+M[h][i])
        else:
            l.append(M[i][h])
            l.append(M[h][i])
        h+=2
    h = 2+k
    k+=1
print(l)
if m > 4 and m%2==0:
    while g<=(m-2): #елементи діагоналі
        f = 0
        p = 0
        if g>((m-2)/2): 
            s-=2
            while f<=s:
                p += l[0]
                l.pop(0)
                f+=1
        else:    
            while f<=s:
                p += l[0]
                l.pop(0)
                f+=1
            s+=2
        M[g][g]=p
        g+=1
elif m>4 and m%2 !=0:
     while g<=(m-2): #елементи діагоналі
        f = 0
        p = 0
        if g>(m//2):
            s-=4
            while f<=s:
                p += l[0]
                l.pop(0)
                f+=1
        else:    
            while f<=s:
                p += l[0]
                l.pop(0)
                f+=1
            s+=2
        M[g][g]=p
        print(M[g])
        g+=1
else:
    while g<=(m-2):
        M[g][g]=l[0]
        l.pop(0)
        g+=1
for i in range(m):
    print(M[i])

2

(3 відповідей, залишених у Python)

дуже дякую за пораду з нормальними назвами змінним, так дійсно видніше де помилки, і з тим каунт вже дійшло, але воно досі не докінця працює????

sentence = input()
words = []
words_with_3e = []
words_with_o = []
sentence = sentence.split()
for word in sentence:
    if word[0] == word[-1]:
        words.append(word)
for word in sentence:    
    if (word.count('o')) == True:
        words_with_o.append(word)
for word in sentence:
    if (word.count('e')) == 3:
        words_with_3e.append(word)
print(' '.join(map(str, words))) 
print(' '.join(map(str, words_with_o)))
print(' '.join(map(str, words_with_3e)))

дописала ще частину до 3 е, але вот що воно видає:
[img]Screenshot_2022-11-10-19-56-52-59_c759c 44d10a956b96f85cc66750ff86e[/img]
вот що мала на увазі про не бачить слова, можливо я просто десь натупила, але не знаю????????????

3

(3 відповідей, залишених у Python)

Задано речення. Скласти програму, яка визначає і виводить
на екран: слова а) які розпочинаються і закінчуються на одну і ту ж літеру; б)
які містять три літери «е»; в) які містять хоча б одну літеру «о».

s = input()
l = []
l_2 = []
l_3 = []
h = 0
s = s.split()
for i in s:
     if i[0] == i[-1]:
         l.append(i) 
for y in s:
     if (s.count('о')) == 1:
         l_3.append(y)   
print(' '.join(map(str, l))) 
print(' '.join(map(str, l_3)))

він недописаний, але мав би працювати хоч частково, але чомусь на другому фор він не бачить тих слів які підходять до умови в першому, була б вдячна за допомогу вирішення цієї проблеми