Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 20.09.2022
Сообщений: 3

Функция проверки ввода как отдельная функция для других функций

20.09.2022, 14:47. Показов 2067. Ответов 3

Студворк — интернет-сервис помощи студентам
Проверка на ввод - принимает значения вплоть до типа '2.3pi/1.05' или '5.6/pi'.
Возможно, есть ошибки при вводе, пока не нашла.
Как эту проверку отдельно в блок функции proverka_vvoda вынести, чтобы потом вставлять везде, где есть input-ы? Пока с такими выносами только ошибки - где-то не стыкуется синтаксис.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from math import pi as PI
import re
 
def polovinka():
    n = None
    while True:
        vvod = (input('Полное число (целое, с точкой, дробью и/или пи): '))
        try:
            shablon = r'^[0-9.ip/]+$' #ищет только символы: 0123456789.ip/
            match = re.search(shablon, vvod)
            if match is not None:
                n1 = match.group()
                print('n1 чистая:', n1)
                n1 = n1.replace('pi', '*PI')
                n1 = n1.replace('/*', '/')
                if n1.count('/') == 1:
                    n1 = n1.replace('/', '/(') + ')'
                if n1.count('/') >= 2:
                    print('Косых:', n1.count('/'))
                    n1 = 'Много косых'
                if n1[0] == '*':
                    n1 = n1[1:]
                print('перед конверт.в float n1 =', n1)
                try:
                    n = eval(n1)
                    print('n =', n, type(n))
                    if n <= 0:
                        pass
                    else:
                        break
                except:
                    print('Ошибка, попробуйте снова')
                    continue
        except:
            break
        print('Ошибка, попробуйте снова')
    print('polovinka =', n/2)
    return n/2
    
polovinka()
 
def proverka_vvoda():
    ???
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.09.2022, 14:47
Ответы с готовыми решениями:

Функция для вызова других функций
короч нужна функция, которая принимала какое либо значения к примеру интовое, и в зависимости от значения вызывала бы другие функции) я...

Функция для проверки ввода букв (без isalpha)
Здравствуйте. Нужна функция, проверяющая введённое значение на наличие лишних символов. То есть, должна показывать &quot;ошибку...

Нужно сделать, чтобы программа состояла из 3 функций, тоесть 1-ая функция ввода массива, 2-ая основная функция, 3-я- вывод массива
Есть программа #include &lt;iostream&gt; #include &lt;algorithm&gt; const int N = 5; int handSet(void) { int a; std::cout...

3
213 / 109 / 46
Регистрация: 12.12.2016
Сообщений: 399
20.09.2022, 15:33
так что ли?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
def polovinka():
    n = proverka_vvoda()
    print('polovinka =', n / 2)
    return n / 2
 
def proverka_vvoda():
    n = None
    while True:
        vvod = (input('Полное число (целое, с точкой, дробью и/или пи): '))
        try:
            shablon = r'^[0-9.ip/]+$'  # ищет только символы: 0123456789.ip/
            match = re.search(shablon, vvod)
            if match is not None:
                n1 = match.group()
                print('n1 чистая:', n1)
                n1 = n1.replace('pi', '*PI')
                n1 = n1.replace('/*', '/')
                if n1.count('/') == 1:
                    n1 = n1.replace('/', '/(') + ')'
                if n1.count('/') >= 2:
                    print('Косых:', n1.count('/'))
                    n1 = 'Много косых'
                if n1[0] == '*':
                    n1 = n1[1:]
                print('перед конверт.в float n1 =', n1)
                try:
                    n = eval(n1)
                    print('n =', n, type(n))
                    if n <= 0:
                        pass
                    else:
                        break
                except:
                    print('Ошибка, попробуйте снова')
                    continue
        except:
            break
    return n
 
polovinka()
0
0 / 0 / 0
Регистрация: 20.09.2022
Сообщений: 3
20.09.2022, 18:21  [ТС]
Примерно, но надо, чтобы input был с разной надписью.
Т.е одна функция: "Введите площадь комнаты"
Другая функция: "Введите размеры участка"
Т.е. по идее надо проверку делать внутри функции сразу после переменной 'vvod'. Я поместила первое же 'try' и всё что ниже в отдельную ф-цию на проверку, но она не работает - ругается на break, continue и т.д., хотя если функции не разделять, то всё ладно.
0
213 / 109 / 46
Регистрация: 12.12.2016
Сообщений: 399
20.09.2022, 23:10
Лучший ответ Сообщение было отмечено Alisa777 как решение

Решение

Цитата Сообщение от Alisa777 Посмотреть сообщение
надо, чтобы input был с разной надписью
Python
1
2
3
4
5
6
7
8
9
10
11
def polovinka():
    n = proverka_vvoda(title='введите площадь комнаты:')
    print('polovinka =', n / 2)
    return n / 2
 
def proverka_vvoda(title):
    n = None
    while True:
        vvod = (input(f'{title}'))
        ...
        try:
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.09.2022, 23:10
Помогаю со студенческими работами здесь

Функция проверки правильности ввода
мне нужна функция проверяющая правильность ввода данных с клавиатуры предположим необходимо вводить только целые числа))

Функция проверки ввода, принимающая разные типы данных
Мне нужно написать функцию для проверки ввода, но так чтобы она могла делать свою работу, получая разные типы данных(char, int, float...

Отдельная функция
Есть исходник си там создается матрица(рандомно от а до б) и в ней есть цикл поиска максимального числа в матрице.Все работает НО,как ее...

Отдельная функция определителя!
Здраствуйте. Помогите пожалуйста сделать функцию. Есть рабочая программа нахождения определителя матрицы в C Builder. Хочу вынести...

Отдельная функция чтения из файла C++
Здравствуйте! Помогите пожалуйста! Хочу функцию чтения из файла сделать отдельно от main. int read_g_from_file(int **Graph, bool...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru