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

Python 3 и задачка

shinenvice034

Active member
11.08.2020
42
0
BIT
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()

f22

Codeby Academy
Gold Team
05.05.2019
1 940
228
BIT
1 772
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()
 
Решение
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!