Мне нужно создать программу для проекта на Python, в которой я регистрирую пациента и его информацию, а также его жизненные показатели (вариабельность сердечного ритма (VFC), насыщение кислородом (VSO), артериальное кровяное давление (VPA), температуру тела ( VTC)) но я также хочу иметь возможность добавлять больше значений к жизненным показателям одного человека без необходимости его повторной регистрации.
(Я португалец, поэтому некоторая часть кода будет на этом языке)
Это код, который у меня есть:
import csv
import os
from datetime import datetime, date
import statistics
import matplotlib.pyplot as plt
registos_dir = "A52810_registos_pacientes_v01"
os.makedirs(registos_dir, exist_ok=True)
valores_normais = {"VFC": (50, 100), "VSO": (1, 3), "VPA": (0, 10), "VTC": (0.5, 1.0)}
def calcular_idade(data_nascimento):
hoje = date.today()
return hoje.year - data_nascimento.year - ((hoje.month, hoje.day) < (data_nascimento.month, data_nascimento.day))
def calcular_desvio_padrao_lista(dados):
desv_pad = statistics.stdev(dados)
return desv_pad
def calcular_desvio_padrao_arquivo(arquivo):
try:
with open(arquivo, 'r') as f:
valores = [float(line.strip()) for line in f.readlines() if line.strip()]
if len(valores) < 2:
raise ValueError("O arquivo precisa conter pelo menos dois valores numéricos.")
return statistics.stdev(valores)
except Exception as e:
print(f"Erro ao processar o arquivo {arquivo}: {e}")
return None
def obter_float(prompt):
while True:
try:
return float(input(prompt))
except ValueError:
print("Entrada inválida. Por favor, insira um número válido.")
def obter_data(prompt):
while True:
try:
return datetime.strptime(input(prompt), "%d-%m-%Y").date()
except ValueError:
print("Formato inválido. Insira a data no formato DD-MM-AAAA.")
def obter_dados():
dados = []
while True:
try:
valor = float(input("Insira um valor numérico: "))
dados.append(valor)
while True:
continua = input("Inserir mais dados? (s/n): ").strip().lower()
if continua == "n":
if len(dados) >= 2:
return dados
else:
print("É preciso fornecer pelo menos dois valores numéricos.")
elif continua == "s":
break
else:
print("Resposta inválida. Digite 's' para sim ou 'n' para não.")
except ValueError:
print("Erro. Insira um número válido.")
def obter_arquivo(prompt):
while True:
arquivo = input(prompt)
if os.path.exists(arquivo):
return arquivo
print("Arquivo não encontrado. Tente novamente.")
def registar_paciente():
nome = input("Nome completo do paciente: ").strip()
data_nasc = obter_data("Data de nascimento (DD-MM-AAAA): ")
peso = obter_float("Peso (kg): ")
altura = obter_float("Altura (cm): ")
idade = calcular_idade(data_nasc)
resultados = {}
while True:
tipo = input("Deseja fornecer os dados manualmente ou através de um arquivo?\n1. Manual\n2. Arquivo\nEscolha: ").strip()
if tipo == "1":
for sinal in ["VFC", "VSO", "VPA", "VTC"]:
print(f"\nInsira os dados para {sinal}:")
valores = obter_dados()
desv_pad = calcular_desvio_padrao_lista(valores)
dentro_do_normal = valores_normais[sinal][0]
Подробнее здесь: [url]https://stackoverflow.com/questions/79345504/how-to-add-information-to-an-existing-patient-without-erasing-the-existing-dat[/url]
Мне нужно создать программу для проекта на Python, в которой я регистрирую пациента и его информацию, а также его жизненные показатели (вариабельность сердечного ритма (VFC), насыщение кислородом (VSO), артериальное кровяное давление (VPA), температуру тела ( VTC)) но я также хочу иметь возможность добавлять больше значений к жизненным показателям одного человека без необходимости его повторной регистрации. (Я португалец, поэтому некоторая часть кода будет на этом языке) Это код, который у меня есть: [code] import csv import os from datetime import datetime, date import statistics import matplotlib.pyplot as plt
def calcular_desvio_padrao_arquivo(arquivo): try: with open(arquivo, 'r') as f: valores = [float(line.strip()) for line in f.readlines() if line.strip()] if len(valores) < 2: raise ValueError("O arquivo precisa conter pelo menos dois valores numéricos.") return statistics.stdev(valores) except Exception as e: print(f"Erro ao processar o arquivo {arquivo}: {e}") return None
def obter_float(prompt): while True: try: return float(input(prompt)) except ValueError: print("Entrada inválida. Por favor, insira um número válido.")
def obter_data(prompt): while True: try: return datetime.strptime(input(prompt), "%d-%m-%Y").date() except ValueError: print("Formato inválido. Insira a data no formato DD-MM-AAAA.")
def obter_dados(): dados = [] while True: try: valor = float(input("Insira um valor numérico: ")) dados.append(valor) while True: continua = input("Inserir mais dados? (s/n): ").strip().lower() if continua == "n": if len(dados) >= 2: return dados else: print("É preciso fornecer pelo menos dois valores numéricos.") elif continua == "s": break else: print("Resposta inválida. Digite 's' para sim ou 'n' para não.") except ValueError: print("Erro. Insira um número válido.")
def obter_arquivo(prompt): while True: arquivo = input(prompt) if os.path.exists(arquivo): return arquivo print("Arquivo não encontrado. Tente novamente.")
def registar_paciente(): nome = input("Nome completo do paciente: ").strip() data_nasc = obter_data("Data de nascimento (DD-MM-AAAA): ") peso = obter_float("Peso (kg): ") altura = obter_float("Altura (cm): ") idade = calcular_idade(data_nasc)
resultados = {}
while True: tipo = input("Deseja fornecer os dados manualmente ou através de um arquivo?\n1. Manual\n2. Arquivo\nEscolha: ").strip() if tipo == "1": for sinal in ["VFC", "VSO", "VPA", "VTC"]: print(f"\nInsira os dados para {sinal}:") valores = obter_dados() desv_pad = calcular_desvio_padrao_lista(valores) dentro_do_normal = valores_normais[sinal][0]
У меня уже есть собственное приложение в AppStore и Play Store, созданное на Swift и Java соответственно. теперь я хочу создать свое приложение для iOS и Android в одной базе кода, поэтому я выбираю флаттер и создаю свое приложение на флаттере.
но...
У меня уже есть собственное приложение в AppStore и Play Store, созданное на Swift и Java соответственно. теперь я хочу создать свое приложение для iOS и Android в одной базе кода, поэтому я выбираю флаттер и создаю свое приложение на флаттере.
но...
Это мой первый вопрос, так что, надеюсь, я все делаю правильно.
У нас есть задание, по которому нам нужно создать мини-канал погоды (он должен обучать подробнее о наследовании и абстрактных классах). Думаю, я по большей части это понимаю, но одна...