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

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

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2021, 13:28   #1
kilogram4ik
Пользователь
 
Регистрация: 15.10.2020
Сообщений: 68
По умолчанию помогите сделать правильную проверку.

нужно сделать проверку на "-0,00,буквы и т.д", а использовать нужно как целые так и дробные.
Проверку которую я сделал проверяет только целые (положительные ) , а дробные она не берет. Еще есть проблема в том что моя проверка не хочет работать с отрицательными числами , они просто не проходят проверку , а они должны быть.

Помогите ее сделать правильно.

Код:
from tkinter import *
from tkinter import messagebox
import math

app = Tk ()
app.title=('практика')
app.geometry('555x360')




def kilogram4ik():
       try:
           d = e1.get()
           d1 = e2.get()
           if d.isdigit() and d1.isdigit():
               if float(d) and float(d1) > 100000:
                   messagebox.showinfo("GUI Python", "макс число 100000")
               else:
                   if len(d) and len(d1)>1:
                       if d[0] + d[1] == '00' or d1[0] + d1[1] == '00'or d[0]=='-0' and (d[1])>0 or d1[0] =='-0' and (d1[1])>0:
                           messagebox.showinfo("GUI Python", "НЕЛЬЗЯ!!!")
                           exit
                   else:
                       a = float(e1.get())
                       B = float(e2.get())
                       z1 = (math.sin(a) + math.cos(2 * B + a)) / (math.cos(a) - math.sin(2 * B - a))
                       label.config(text=str(z1))


           else:
               messagebox.showinfo("GUI Python", "НЕЛЬЗЯ!!!")
       except ValueError:
            messagebox.showinfo("GUI Python", "Ошибка ввода.Вводить буквы нельзя")



def kilogram4ik1():
        try:
            d = e1.get()
            d1 = e2.get()
            if d.isdigit() and d1.isdigit():
                if float(d) and float(d1) > 100000:
                    messagebox.showinfo("GUI Python", "макс число 100000")
                else:
                    if len(d) and len(d1) > 1:
                        if d[0] + d[1] == '00' or d1[0] + d1[1] == '00' or d[0] == '0' and (d[1]) > 0 or d1[0] == '0' and (d1[1]) > 0:
                            messagebox.showinfo("GUI Python", "НЕЛЬЗЯ -0 и 00")
                            exit
                    else:
                        a = float(e1.get())
                        B = float(e2.get())
                        z2 = (1 + math.sin(2 * B)) / (math.cos(2 * B))
                        label1.config(text=str(z2))


            else:
                messagebox.showinfo("GUI Python", "НЕЛЬЗЯ!!!")
        except ValueError:
            messagebox.showinfo("GUI Python", "Ошибка ввода.Вводить буквы нельзя")


l3=Label(text="а=")
l3.pack()



e1 = Entry(width=10)
e1.pack()


l4=Label(text="B=")
l4.pack()



e2 = Entry(width=10)
e2.pack()


btn = Button(text="посчитать пример 1",command=kilogram4ik)
btn.pack()

btn1 = Button(text="посчитать пример 2",command=kilogram4ik1)
btn1.pack()

l1 = Label(text="пример №1 : z1=(sin(a)+cos(2B+a))/(cos(a)-sin(2B-a))", font=(2))
l1.pack()

l2 = Label(text="пример №2 : z2=(1+sin(2B))/cos(2B)", font=2)
l2.pack()

l5=Label()
l5.pack()

label=Label(font=3)
label.pack()

label1=Label(font=3)
label1.pack()

app.mainloop()
kilogram4ik вне форума Ответить с цитированием
Старый 05.03.2021, 00:22   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Сложно понять какова цель такой проверки.
Может вам поможет конструкция try..except?
Сеть вам в помощь.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 05.03.2021, 10:55   #3
kilogram4ik
Пользователь
 
Регистрация: 15.10.2020
Сообщений: 68
По умолчанию

ViktorR, ну смысл проверки в том чтобы всякую хрень (кроме цифр) нельзя было вводить. В любом случае интернет очень помог . Спасибо за совет .
kilogram4ik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите определить правильную кодировку в англоязычной Windows. KBO Помощь студентам 0 24.07.2016 17:30
помогите сделать проверку полей на js nikosur JavaScript, Ajax 1 08.07.2014 22:13
Как сделать правильную перелинковку внутри html сайта? Pyatachok HTML и CSS 1 15.12.2012 20:23
как сделать правильную ссылку? usolka Помощь студентам 5 03.11.2010 00:06
Помогите проверку ввода сделать Panda Помощь студентам 3 01.07.2008 20:50