Найти - Пользователи
Полная версия: Медицинская программа расчета
Начало » Python для новичков » Медицинская программа расчета
1
Sergun
Всем привет! Я ранее уже обращался мне помогли советом. Но столкнулся дальше с проблемой )
Состряпал код который считает параметры (в моем случае три label) и выдает определенное значение - это нормально(поле ОТС 3). Но используя эти же результаты(эти же самые переменные) я хочу получить отдельный результат (поле ОТС). В связи с тем что я не очень опытный в питоне и скорее всего запутался прошу мне помочь ))
Надо что бы в поле ОТС выходил результат вычислений функции(calculations)
А в поле ОТС 3 результат вычислений с ОТС но корень из 3(функция calculat).
Далее я планирую использовать еще вычисления и хочу бы ранее введеные данные в поля(такие как ЗСЛЖ,МЖП) я мог тоже считать в другой формуле(не вбивая их повторно) Формулы расчета прикладываю
Относительная толщина стенок = (ЗСЛЖ + МЖП) / КДР (вывести на экран)
x= (МЖП + КДР + ЗСЛЖ) ^3 (его выводить не нужно)

Масса миокарда (линейное) = 0,8 * 1,04 * (x - КДР^3) + 0,6 (вывести на экран)

Индекс массы миокарда = масса миокарда (линейное) / ППТ (вывести на экран)

Надеюсь адекватно обьъяснил,жду помощи)

 from tkinter import *
import tkinter as tk
from math import *
def calculation(*args):
    text = sqrt(round(int(c1_count_var.get()) * int(c2_count_var.get()) // 3600))
    l.config(text=text)
#def calculations(*args):
    #text = int(c7_count_var.get() + int(c9_count_var.get() // int(c11_count_var())))
   # lb.config(text=text)
def calculations(*args):
    if c7_count_var.get() == "" or c9_count_var.get() == "" or c11_count_var.get() == "" :
        return
    x.set(str(round((int(c7_count_var.get()) * int(c9_count_var.get())) / int(c11_count_var.get()))))
def calculat(*args):
    if c7_count_var.get() == "" or c9_count_var.get() == "" or c11_count_var.get() == "" :
        return
    v.set(str(round((int(c7_count_var.get()) * int(c9_count_var.get())) + int(c11_count_var.get()))))
root = tk.Tk()
root.title("Кардиология ")
root.geometry("400x500")
root.resizable(width=False, height=False)
root['bg'] = 'grey'
c1_count_var = StringVar()
c1_count_var.trace('w', calculation)
c2_count_var = StringVar()
c2_count_var.trace('w', calculation)
c7_count_var = StringVar()
c7_count_var.trace('w', calculations)
c7_count_var = StringVar()
c7_count_var.trace('w', calculat)
c9_count_var = StringVar()
c9_count_var.trace('w', calculations)
c9_count_var = StringVar()
c9_count_var.trace('w', calculat)
c12_count_var = StringVar()
c12_count_var.trace('w', calculations)
c11_count_var = StringVar()
c11_count_var.trace('w', calculations)
c11_count_var = StringVar()
c11_count_var.trace('w', calculat)
x = StringVar()
v = StringVar()
c4_count = Label(text="Кардиология", font='arial 15 bold', fg='lime', bg='black')
c4_count.pack(side=TOP)
#c5_count = Label(text="ППТ", font='arial 15 bold', fg='lime', bg='black')
#c5_count.place(x=190, y=70)
c1_count = Label(text="Рост(см)", font='arial 15 bold', fg='lime', bg='black')
c1_count.place(x=5, y=70)
c1_count_entry = Entry(width='5', font='Arial 15 bold', textvariable=c1_count_var)
c1_count_entry.place(x=5, y=100)
c2_count = Label(text="Вес(кг)", font='arial 15 bold', fg='lime', bg='black')
c2_count.place(x=100, y=70)
c2_count_entry = Entry(width='5', font='Arial 15 bold', textvariable=c2_count_var)
c2_count_entry.place(x=100, y=100)
c5_count = Label(text="ППТ", font='arial 15 bold', fg='lime', bg='black')
c5_count.place(x=190, y=70)
l = tk.Label(font='arial 15 bold')
l.place(x=190, y=100)
c4_count = Label(text="Относительная толщина стенок", font='arial 15 bold', fg='lime', bg='black')
c4_count.place(x=40, y=140)
c7_count = Label(text="ЗСЛЖ", font='arial 15 bold', fg='lime', bg='black')
c7_count.place(x=5, y=190)
c7_count_entry = Entry(width='5', font='Arial 15 bold', textvariable=c7_count_var)
c7_count_entry.place(x=5, y=220)
c9_count = Label(text="МЖП", font='arial 15 bold', fg='lime', bg='black')
c9_count.place(x=80, y=190)
c9_count_entry = Entry(width='5', font='Arial 15 bold', textvariable=c9_count_var)
c9_count_entry.place(x=80, y=220)
c11_count = Label(text="КДР", font='arial 15 bold', fg='lime', bg='black')
c11_count.place(x=170, y=190)
c11_count_entry = Entry(width='5', font='Arial 15 bold', textvariable=c11_count_var)
c11_count_entry.place(x=170, y=220)
c12_count = Label(text="ОТС", font='arial 15 bold', fg='lime', bg='black')
c12_count.place(x=240, y=190)
Output = Label(textvariable=x, font='arial 15 bold')
Output.place(x=260, y=220)
c13_count = Label(text="ОТС^3", font='arial 15 bold', fg='lime', bg='black')
c13_count.place(x=300, y=190)
Outputs = Label(textvariable=v, font='arial 15 bold')
Outputs.place(x=305, y=220)
root.mainloop()
ZerG
проблема в чем?
Добавь еще одну функцию и вычисляй что хочешь
Sergun
ZerG
проблема в чем?Добавь еще одну функцию и вычисляй что хочешь
Вот как раз проблема в этом и состоит. Я добавил функцию в данном случае ее зовут “calculat” а вычисления не работают. Может у меня глаз замылился и я не вижу очевидную ошибку )
ZerG
Сорри но код ваш режет глазики
Названия не очевидны - все в столбик - потому разобраться в нем можно только если приставят пистолет к виску
Но на вскидку
 c11_count_var = StringVar()
c11_count_var.trace('w', calculations)
c11_count_var = StringVar()
c11_count_var.trace('w', calculat)
Не перезатираете ли вы одну и туже переменную разными функциями?
Опять же для чего *args в функциях если вы не передаете в них переменные?
Sergun
ZerG
Сорри но код ваш режет глазикиНазвания не очевидны - все в столбик - потому разобраться в нем можно только если приставят пистолет к вискуНо на вскидку
Может быть и перезатираю.
Ладно подумаю в эту сторону -отпишусь что там у меня получится
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB