from random import choice
from string import ascii_letters, digits
from os import system, name, sys
def length_str():
""" Функция определяет длину строки. """
while True:
global len_str
len_str = input( "{0:40}: ".format("Введите длину строки", end = ''))
if not len_str.isdigit():
print("Необходимо ввести число, а не строку. ")
continue
if len_str < '0':
print(u"Длина строки не может быть отрицательной.")
continue
if len_str == '0':
print(u"Строка не может быть пустой.")
continue
else:
len_str = int(len_str)
break
return len_str
def length_podstr():
""" Функция определяет длину подстроки. """
while True:
len_podstr = input( "{0:40}: ".format("Введите длину подстроки", end = ''))
if not len_podstr.isdigit():
print("Необходимо ввести число, а не строку. ")
continue
if int(len_podstr) < 0:
print(u"Длина подстроки не может быть отрицательной.")
continue
if len_podstr < '1':
print(u"Подстрока не может быть пустой.")
continue
if int(len_podstr) > len_str:
print(u"А ты - гениальный малый )")
continue
else:
len_podstr = int(len_podstr)
break
return len_podstr
def main():
len_str = length_str()
stroka = ''.join(choice(ascii_letters + digits) for i in range(len_str))
report_2 = {"Сгенерирована строка длиной %s элементов" %len_str: stroka}
for key, value in report_2.items():
print("{0:40}:{1:32}".format(key, value))
len_podstr = length_podstr()
k = len_str // len_podstr
list_podstr = []
for n in range(1, k + 1):
podstroka = stroka[len_podstr * (n - 1) :len_podstr * n]
report = {"Подстрока_" + str(n) : podstroka}
for key, value in report.items():
print("{0:40}:{1:32}".format(key, value))
list_podstr.append(podstroka)
ost = stroka[len_str - (len_str % len_podstr): len_str]
print("{0:40}:{1:32}".format("Oстаток длиной %s символа" %(len_str % len_podstr), ost))
print("\nСписок из подстрок: \n", list_podstr)
for n in range(0, k):
report_3 = {"Сумма %s элемента списка с подстрокой" %(n + 1) : list_podstr[n] + ost}
for key, value in report_3.items():
print("{0:40}:{1:50}".format(key, value))
if __name__ == "__main__":
system(['clear', 'cls'][name == sys.platform])
main()