Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме 85 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2022, 04:14   #1
ZeQipe
Новичок
Джуниор
 
Регистрация: 24.10.2022
Сообщений: 2
По умолчанию Проблема при ctrl+v в окно input

Код:
def input_str():
    str = input("Введите сюда текст > ")
    lst = [i for i in str]
    return lst

def input_index(lst):
    index = float(input('Введите индекс необходимого значения\n> '))
    if int(index) == index:
        if index == 0:
            return 1
        else:
            return int(index)
    else:
        while int(index)!= index:
            if int(index)!= index:
                print('Индекс должен быть целым числом.')
            elif index > len(lst):
                print('В вашем тексте нет такого количества символов.')
            index = float(input('Попробуйте еще раз > '))
        if index == 0:
            return 1
        else:
            return int(index)

def action_list():
    print('Выберите действие:\n1 - Количество символов;\n2 - Поиск по индексу \n'
          '3 - В скобках ли значение по индексу\n4 - Удалить все пробелы\n5 - Удалить все знаки\n'
          '6 - Удалить пробелы и знаки\n7 - Удалить конкретные символы из текста\n8 - Вывести текущий текст\n'
          '9 - Ввести новый текст\n10 - Вывести список действий\n0 - Выход из программы')

def print_str(lst):
    str = lst[0]
    lst = lst[1::]
    for i in lst:
        str += i
    print(str)

print("Парсинг текста. Скопируйте текст не имеющий переносов текста.")
lst = m.input_str()
m.action_list()
target = -1
while target != 0:
    target = int(input('Введите номер действия\n>'))
    if target == 1:
        print('Всего символов в заданной строке: ', len(lst))
    elif target == 8:
        m.print_str(lst)
    elif target == 9:
        lst = m.input_str()
    elif target == 10:
        m.action_list()
    elif target == 0:
        break
    else:
        print("Неверное действие")
Программа рассчитана на то, что пользователь вставит с помощью ctrl+v в окно input у str свой текст. Однако, проблема заключается в том, что при вставке текста, у которого есть перенос абзаца, код записывает в target то, что находится после переноса абзаца. То есть, если мы будем вставлять текст:
"первая часть текста
перенесенная часть текста."
то в str записывается "первая часть текста" и в target записывается "перенесенная часть текста.". Из-за этого программа крашится. Как с этим можно бороться?

p.s: Предоставил часть кода, что бы уменьшить его объем.
ZeQipe вне форума Ответить с цитированием
Старый 24.10.2022, 08:23   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,264
По умолчанию

А что вы хотите, чтобы программа сделала? Что изменится, если пользователь на вопрос target введет строку?
p51x вне форума Ответить с цитированием
Старый 24.10.2022, 14:01   #3
ZeQipe
Новичок
Джуниор
 
Регистрация: 24.10.2022
Сообщений: 2
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А что вы хотите, чтобы программа сделала? Что изменится, если пользователь на вопрос target введет строку?
Target должен принимать числовое значение. Так суть в том, что она туда автоматом загоняет текст, который идет после абзаца, программа крашится из-за этого
ZeQipe вне форума Ответить с цитированием
Старый 24.10.2022, 14:28   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,264
По умолчанию

Никому он ничего не должен. Вы так и не ответили на мои вопросы.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме 85 тыс рублей в месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод EOF c консоли - это Ctrl+Z и Ctrl+M Почему? 8Observer8 Общие вопросы по программированию, компьютерный форум 10 13.01.2023 09:33
Ctrl+C, Ctrl+Break в ReadConsoleInput, WriteConsoleInput Cepguo Win Api 1 22.04.2018 11:12
Python. Функция Input(), проблема с типами данных Cyboredis Python 8 25.06.2016 21:28
Имитировать нажатие ctrl+c и ctrl+v andrey_abc Общие вопросы C/C++ 1 05.06.2015 00:11
Модальное окно на input Lau JavaScript, Ajax 7 27.09.2013 04:58