Dans le prolongement du Traitement itératif de Python appris par chimio-automatique, j'expliquerai les «fonctions» avec le thème de la lipidomique (analyse complète des lipides). Nous expliquerons principalement des exemples pratiques de chimioinfomatique, donc si vous souhaitez vérifier les bases, veuillez lire l'article suivant avant de lire cet article.
Les chercheurs de sociétés pharmaceutiques ont résumé les fonctions en Python
Une fonction est un ensemble d'une série de processus et peut être créée en écrivant def function name (argument formel):
. Au fait, «def» est une abréviation de «définir».
Une fois que vous avez créé une fonction, il ne vous reste plus qu'à appeler le nom de la fonction pour exécuter le traitement décrit dans la fonction.
La valeur de retour (valeur de retour) peut être écrite en utilisant return
.
def show_smiles_pa():
return 'OC(CCCCCCCCCCCCCCC)=O'
show_smiles_pa() # OC(CCCCCCCCCCCCCCC)=O
Dans l'exemple ci-dessus, c'est une fonction qui renvoie l'acide palmitique décrit en notation SMILES.
Après avoir défini la fonction, appelez le nom de la fonction show_smiles_pa
pour obtenir la valeur de retour.
Dans l'exemple ci-dessus, il n'y a pas d'argument formel lors de la création d'une fonction, mais il est possible de créer une fonction avec un argument formel. Un exemple est présenté ci-dessous.
def oxidize_fatty_acid(smiles):
if smiles.count('=') <= 1:
return 'This fatty acid is not oxidized. '
else:
return smiles.replace('/C=C\\', 'C(O)C')
smiles_pa = 'OC(CCCCCCCCCCCCCCC)=O'
oxidize_fatty_acid(smiles_pa) # This fatty acid is not oxidized.
smiles_la = 'OC(CCCCCCC/C=C\C/C=C\CCCCC)=O'
oxidize_fatty_acid(smiles_la) # OC(CCCCCCCC(O)CCC(O)CCCCCC)=O
Dans l'exemple ci-dessus, SMILES (chaîne de caractères) est reçu comme argument formel, et s'il s'agit d'un acide gras saturé, "Cet acide gras n'est pas oxydé." Est retourné, et s'il s'agit d'un acide gras insaturé, c'est une double chaîne carbonée. La valeur de retour est SMILES, qui est un composé dont la liaison est oxydée.
Il est également possible de définir plusieurs arguments formels. Un exemple est présenté ci-dessous.
def calculate_exact_mass(Cn, Un):
return 12 * Cn + 1.00783 * (2 * Cn - 2 * Un) + 15.99491 * 2
calculate_exact_mass(16, 0)
calculate_exact_mass(18, 2)
Vous pouvez également prendre un argument de mot-clé, avec nom du mot-clé = valeur
.
Un exemple est présenté ci-dessous.
def abbreviate_fatty_acid(Cn, Un, sep=':'):
return str(Cn) + sep + str(Un)
abbreviate_fatty_acid(16, 0) # 16:0
abbreviate_fatty_acid(16, 0, sep='_') # 16_0
Dans l'exemple ci-dessus, si l'argument mot-clé sep
n'est pas spécifié lors de l'appel de la fonction, la valeur par défaut:
lors de la définition de la fonction est utilisée, et si sep
est spécifié lors de l'appel de la fonction, cette valeur est utilisée. Il sera mis à jour.
Lorsque vous utilisez une fonction, vous devez faire attention à la "portée des variables". La portée d'une variable est la plage dans laquelle la variable peut être utilisée. Dans certains cas, elle ne peut être utilisée qu'à l'intérieur de la fonction (variable privée), et dans d'autres cas, elle peut être utilisée en dehors de la fonction (variable globale).
def abbreviate_fatty_acid(a, b):
Cn = a
Un = b
return Cn, Un
Cn = 16
Un = 0
abbreviate_fatty_acid(18, 2) # Cn = 18, Un = 2
print(Cn, Un) # Cn = 16, Un = 0
Dans l'exemple ci-dessus, les variables «Cn» et «Un» qui apparaissent à l'intérieur de la fonction «abbreviate_fatty_acid» sont toutes deux des variables privées et sont différentes des «Cn» et «Un» définis en dehors de la fonction. Ainsi, appeler une fonction ne met pas à jour les valeurs des variables «Cn» et «Un».
Maintenant, si vous voulez mettre à jour les valeurs des variables «Cn» et «Un» en appelant la fonction, utilisez «global» et utilisez «global» pour faire «Cn» et «Un» dans la fonction des variables globales au lieu de variables privées. Vous devez montrer qu'il y en a.
def abbreviate_fatty_acid(a, b):
global Cn
global Un
Cn = a
Un = b
return Cn, Un
Cn = 16
Un = 0
abbreviate_fatty_acid(18, 2) # Cn = 18, Un = 2
print(Cn, Un) # Cn = 18, Un = 2
Dans l'exemple ci-dessus, «Cn» et «Un» sont traités comme des variables globales, donc les valeurs de «Cn» et «Un» sont également mises à jour lorsque la fonction est appelée.
Ici, nous avons expliqué les fonctions Python, en nous concentrant sur les connaissances pratiques pouvant être utilisées en chimioinfomatique. Revoyons à nouveau les principaux points.
--Une fonction est un ensemble de processus décrits ensemble. Une fois créé, le processus peut être exécuté simplement en l'appelant.
Ensuite, l'article suivant explique les classes Python.
Classe Python apprise avec chemoinfomatics
Recommended Posts