• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Python 3 и задачка

shinenvice034

Active member
11.08.2020
42
0
Имеем вот такое вот условие:
Имеется любая рандомная строка, состоящая из чисел, к примеру 23428545763857234823948234243423421939891289. Программа запрашивает у пользователя число (минимум 32, максимум 1024), которое обозначает количество цифр в строке, и генерирует эту строку. Далее из строки извлекаются следующие отрезки и записываются в следующие переменные:
1) В переменную G записывается последние 4 символа строки ПРИ ЛЮБОЙ ДЛИНЕ СТРОКИ
2) В переменную U записываются первые 4 символа строки при длине строки равной 32, первые 5 символов при длине строки равной 33 и т.д (т.е если пользователь указал длину строки равной 32, то мы делаем отрезок в 4 первых символа. Если пользователь указал длину строки равной 33, то делаем отрезок длиной в 5 первых символов и т.д)
3) В переменную E записываются 4 последующих символа после отрезка, записанного в переменную U ПРИ ЛЮБОЙ ДЛИНЕ СТРОКИ.
То есть от длины строки зависит только длина отрезка записываемого в переменную U. Покажу на примере.

Я указал в программе длину строки 38. Программа сгенерировала строку 485968123478695041273485693128657329653.
В переменную G программа записывает последние 4 символа - 9653
В переменную U программа записывает первые 10 символов - 4859681234
В переменную E программа записывает 4 символа, следующие после последнего символа отрезка из переменной U - 7869

За реализацию программы буду благодарен!!
 
Решение
Python:
from random import randint


def get_string_length():
    user_length = int(input("Введите длину строки: "))
    left_border = 32
    step = 4
    if user_length in range(left_border, 1024):
        res = "".join([str(randint(0, 9)) for _ in range(user_length + 1)])
        #res = '485968123478695041273485693128657329653'
        g = res[-step:]
        u = res[0:user_length - left_border + step]
        e = res[len(u):len(u) + step]
        print(g, u, e)
    else:
        get_string_length()


get_string_length()
Python:
from random import randint


def get_string_length():
    user_length = int(input("Введите длину строки: "))
    left_border = 32
    step = 4
    if user_length in range(left_border, 1024):
        res = "".join([str(randint(0, 9)) for _ in range(user_length + 1)])
        #res = '485968123478695041273485693128657329653'
        g = res[-step:]
        u = res[0:user_length - left_border + step]
        e = res[len(u):len(u) + step]
        print(g, u, e)
    else:
        get_string_length()


get_string_length()
 
Решение
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab