Найти - Пользователи
Полная версия: Как развернуть строку в обратном порядке
Начало » Python для новичков » Как развернуть строку в обратном порядке
1 2 3
anotcher
Добрый вечер! Подскажите как реализовать числовой прямоугольник без использования списков. Через вложенные циклы. Не могу сделать числовую змейку. Такой вариант почему-то не работает.
 N = 5 #int(input()) # высота
M = 5 #int(input()) # ширина
index = 1
for i in range(N):
    if i % 2 == 0:
        for j in range(M):
            print(str(index).rjust(3), end=' ')
            index += 1
    else:
        # вот этот цикл по идее должен разворачивать
        # строку в обратном порядке, но не разворачивает
        for j in range(M-1, -1, -1):
            print(str(index).rjust(3), end=" ")
            index +=1
    print() 
Genabox
развернуть строку
 variable = '12345'
def reverseds(variable):
    res=''.join(reversed(variable))
    return res
n = reverseds(variable)
print(n)
у тебя INT а не стринг
py.user.next
anotcher
Подскажите как реализовать числовой прямоугольник без использования списков.
Опиши задачу детально. По коду мы задачи не восстанавливаем, особенно по говнокоду.
anotcher
py.user.next
Нужно написать числовую змейку по заданной высоте и ширине. Реализация желательно должна быть через вложенные циклы.
py.user.next
anotcher
Нужно написать числовую змейку по заданной высоте и ширине.
Нарисуй её вручную и рисунок приложи. Потому что “числовая змейка” звучит точно так же, как “числовой слонёнок” или “числовая собачка”. Что это значит?
anotcher
Примерно так результат должен выглядеть. Я могу сделать так матрицей. Но желательно реализовать без использования матрицы.
Сейчас нарисовал такое решение, и хочу понять почему оно не верное.
 N = 4 # int(input())
M = 5 # int(input())
index = 1
for i in range(N):
    if i % 2 == 0:
        for j in range(M):
            we = ''.join(str(index))
            print(f"{we:>2}", end=' ')
            index += 1
    else:
        for j in range(M - 1, -1, -1):
            we = ''.join(str(index))
            print(f"{we:>2}", end=' ')
            index += 1
    print()
m1r42
А че так все сложно то? Если просто нужен принт, то как-то так:
 N = 4 # int(input())
M = 5 # int(input())
index = 1
for x in range(N):
    for y in range(M):
        print(f"{index:>2}", end=' ')
        index += 1
    print()
m1r42
Genabox
развернуть строку

variable = ‘12345’
def reverseds(variable):
res=''.join(reversed(variable))
return res
n = reverseds(variable)
print(n)

у тебя INT а не стринг

К теме вопроса про разворот строки, хотя в этой задаче он и не нужен.
Открыл для себя вот такой вариант:
 s = s[::-1]
Rodegast
 >>> [ " ".join(x[::-1] if i%2 else x) for i,x in enumerate( list(map(lambda x: str(x).zfill(2), range(n,k))) for n,k in zip(range(1, 48, 8), range(9, 56, 8)) ) ]
['01 02 03 04 05 06 07 08',
'16 15 14 13 12 11 10 09',
'17 18 19 20 21 22 23 24',
'32 31 30 29 28 27 26 25',
'33 34 35 36 37 38 39 40',
'48 47 46 45 44 43 42 41']
anotcher
m1r42
В данной задаче такое не подойдет, уже пробовал(((
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB