nuevo en la programación aquí.
En python estoy construyendo una secuencia de comandos que le permite a uno entrar en un tampón de pH y de un aminoácido código de tres letras. La salida debe decirle a los otros aminoácidos que se debe tener interacciones electrostáticas con los. La primera iteración parece funcionar, sin embargo después de que deja de devolver cualquier salida no importa lo que los parámetros que se introducen. Mi conjetura es que de alguna manera los valores booleanos están siendo reemplazados o algo. Hay una manera para cada iteración para iniciar completamente nuevo? Me gustaría que el usuario sea capaz de continuar la introducción de parámetros y el resultado no ser influenciado por la iteración anterior.
He aquí el código (lo siento si es complicado):
aaDic = {
'Arg': 12.48,
'Asp': 3.90,
'Cys': 8.37,
'Glu': 4.07,
'His': 6.04,
'Lys': 10.54,
'Tyr': 10.46,
}
while True:
x = input("Enter pH of buffer: ")
y = input("Enter three letter code for an amino acid: ")
if float(x) > float(aaDic[y]):
ProtonationInput = True
elif float(x) < float(aaDic[y]):
ProtonationInput = False
print("\n")
print("Is your amino acid,", y, ", protonated?", ProtonationInput, "\n")
print("At pH", x, y, "likely interacts with the following residues: \n")
for aa in aaDic.keys():
if float(x) > float(aaDic[aa]):
aaDic[aa] = True
elif float(x) < float(aaDic[aa]):
aaDic[aa] = False
#print(aa, aaDic[aa], "\n")
for aa in aaDic.keys():
if ProtonationInput == True:
if aaDic[aa] == False:
print(aa, "\n")
elif ProtonationInput == False:
if aaDic[aa] == True:
print(aa, "\n")
continue
Gracias de antemano!