Форум сайта python.su
py.user.nextразьясни о великий гуру хотя бы на примере с одним столбцом или одной строкой как правильно складывать, я же говорю я новичек в этом деле, не хватает опыта, везде про рэндж написано одно и тоже… range(start, stop, step) шаг 1 он будет перебирать каждый символ, шаг 2 перебирает через символ, так чтоли?
Ты и задание неправильно составил, и код неправильно написал. Тебе нужно исправить и то, и другое.
Офлайн
Вы когда такие конструкции:
m[i - 1]
m[i][j + 1]
Отредактировано Yuri197 (Апрель 25, 2019 18:03:22)
Офлайн
:):)
angree77Эк вас проняло.
разьясни о великий гуру хотя
angree77
я попросил объяснить почему так происходит
angree77Я вам предельно конкретно посоветовал. Научитесь в отладчике локализовывать ошибку с точностью до оператора а не до строки. Это юные питонисты 12-13 лет за 5 минут осваивают.
Вам вместо того чтобы выписать лекарство сказал
angree77Это влечет еще один совет, читайте что вам в консоли интерпретатор пишет. Отладчик не нужен чтобы понять на какой строке ошибка, это в консоли всегда выводится. Ктож мог подумать что вы для этого отладчик используете.
как раз таки отладчиком я и поймал эту ошибку и именно эту строку
angree77А тут нечего объяснять, все написано “index out of range” тут и добавить нечего.
я попросил объяснить почему так происходит
angree77Это конструктив. Вертаемся к совету 2 который вы невнимательно прочитали.
строкой как правильно складывать, я же говорю я новичек в этом деле,
Офлайн
angree77Напиши задание. Не надо кодом его описывать, код у тебя всё равно неправильный. Любое задание можно описать словами.
разьясни о великий гуру хотя бы на примере с одним столбцом или одной строкой как правильно складывать
Отредактировано py.user.next (Апрель 26, 2019 00:46:45)
Офлайн
py.user.nextПопробуем с чистого листа:
Напиши задание.
Отредактировано angree77 (Апрель 26, 2019 03:00:02)
Офлайн
Для входной матрицы
1 2
3 4
Результат какой?
(2+2+3+3) (1+1+4+4)
(1+1+4+4) (3+3+2+2)
Такой?
Отредактировано py.user.next (Апрель 26, 2019 04:31:13)
Офлайн
py.user.nextага все правильно для 1 сосед с права 2-ка, сосед слева (это получается -1 элемент) опять таки 2-ка
Результат какой?
(2+2+3+3) (1+1+4+4)
(1+1+4+4) (3+3+2+2)
Отредактировано angree77 (Апрель 26, 2019 04:42:59)
Офлайн
>>> def f(m): ... out = [] ... rows, cols = len(m), len(m[0]) ... for i in range(rows): ... out.append([]) ... for j in range(cols): ... value = 0 ... if i == 0 and i + 1 == rows: ... value += m[i][j] + m[i][j] ... elif i == 0: ... value += m[-1][j] + m[i + 1][j] ... elif i + 1 == rows: ... value += m[0][j] + m[i - 1][j] ... else: ... value += m[i - 1][j] + m[i + 1][j] ... if j == 0 and j + 1 == cols: ... value += m[i][j] + m[i][j] ... elif j == 0: ... value += m[i][-1] + m[i][j + 1] ... elif j + 1 == cols: ... value += m[i][0] + m[i][j - 1] ... else: ... value += m[i][j - 1] + m[i][j + 1] ... out[i].append(value) ... return out ... >>> f([[1]]) [[4]] >>> f([[1, 2]]) [[6, 6]] >>> f([[1, 2, 3]]) [[7, 8, 9]] >>> f([[1], [2]]) [[6], [6]] >>> f([[1], [2], [3]]) [[7], [8], [9]] >>> f([[1, 2], [3, 4]]) [[10, 10], [10, 10]] >>> f([[1, 2, 3], [4, 5, 6]]) [[13, 14, 15], [13, 14, 15]] >>> f([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) [[16, 17, 18], [19, 20, 21], [22, 23, 24]] >>>
Отредактировано py.user.next (Апрель 26, 2019 05:28:09)
Офлайн
Спасибо Добрый человек…. С функцией выглядит более компактно, я сегодня как раз по функциям читал мануалы
После некоторой доработки кода и вывод в удобоваримом чтении матриц
m = []
while True:
lst = [str(i) for i in input().split()]
if lst[0] == 'end':
break
m.append(lst)
for i in range(len(m)):
for j in range(len(m[0])):
m[i][j] = int(m[i][j])
out = []
rows, cols = len(m), len(m[0])
for i in range(rows):
out.append([])
for j in range(cols):
value = 0
if i == 0 and i + 1 == rows:
value += m[i][j] + m[i][j]
elif i == 0:
value += m[-1][j] + m[i + 1][j]
elif i + 1 == rows:
value += m[0][j] + m[i - 1][j]
else:
value += m[i - 1][j] + m[i + 1][j]
if j == 0 and j + 1 == cols:
value += m[i][j] + m[i][j]
elif j == 0:
value += m[i][-1] + m[i][j + 1]
elif j + 1 == cols:
value += m[i][0] + m[i][j - 1]
else:
value += m[i][j - 1] + m[i][j + 1]
out[i].append(value)
for i in range(len(m)):
for j in range(len(m[0])):
print(out[i][j],end=' ')
print()
Отредактировано angree77 (Апрель 28, 2019 18:28:26)
Офлайн
Добрый день Уважаемые!
Возник одни вопрос залип на нем конкретно, задача на вход stdin подаются слова
Могут как с маленькой буквы так и с большой, на выходе надо посчитать повторяющиеся слова,
например вход:
Вася, Петя, Маша, пошел, вася, гости, петя, гости
выход:
петя 2
вася 2
пошел 1
маша 1
гости 2
Алгоритм решения продумал уже но залип с одной командой перевода в нижний регистр списка, решается функцией через словарь и увеличением значения где ключи это: вася, петя, маша, пошел, вася, гости, петя, гости, если ключ совпадает значение value увеличивается на 1-ку
words = input().split()
def count_word(d):
d = dict.fromkeys(words,0) #создается словарь с нулевыми значениями value
for key in words:
if key in d:
value += 1
else:
d[key] = 1
print(d)
return d
print(count_word(words))
Отредактировано angree77 (Апрель 30, 2019 17:53:40)
Офлайн