Structures de contrôle Python (avec exemples)
Boucles
Contrairement à C et ST, for les boucles en Python ne comptent pas les variables de boucle, mais itèrent sur une séquence. Ce type de séquence peut être un "dictionnaire", une liste, un tuple, les caractères d'une chaîne ou les lignes d'un fichier.
L'exemple suivant montre quelques for boucles:
from __future__ import print_function
print("Enumerating over a simple list:")
for i in (1,2,3,4):
print(i, end=", ") # end= replaces the newline with ", "
print() # but we still need a newline at the end of this case.
print("Enumerating over the characters in a string:")
for i in "CODESYS": # characters are representet as strings of length 1.
print(i, end=", ")
print()
print("Enumerating over the integers 1 to 4:")
for i in range(1, 5): # upper bound is exclusive.
print(i, end=", ")
print()
print("Enumerating using xrange:")
for i in xrange(5): # xrange is similar to range, but needs less memory for large ranges.
print(i, end=", ")
print()
print("Enumerating including the item number:")
for i, v in enumerate("CODESYS"):
print(i, v)Sortie résultante :

Si vous avez besoin d'un index ou d'un numéro en plus de l'article, vous devez utiliser enumerate comme indiqué dans le dernier cas de l'exemple de script. Le code suivant est considéré comme de mauvais style :
text = "CODESYS"
for i in range(len(text)): # BAD STYLE!
v = text[i] # DON'T TRY THIS AT HOME!
print(i, v)Outre for boucles, Python a aussi while boucles qui sont très similaires à celles en C et ST :
i = 0
while i < 3;
print(i)
i += 1Remarque : Cet exemple n'est pas très pratique. Vous utiliseriez plus probablement un for boucle avec une plage.
SINON
La if/else La construction est similaire à celles des autres langages de programmation. Voici un court exemple :
from __future__ import print_function
i = int(system.ui.query_string("Please enter an integral number..."))
if i < 0:
print("Your number was negative.")
elif i > 0:
print("Your numer was positive.")
else:
print("It seems your number was zero.")La else branch est facultatif et il peut y avoir zéro, un ou plusieurs elif branches.
Fonctions, classes et méthodes
Python permet de définir des fonctions et des classes avec des méthodes. Une classe avec des méthodes est fondamentalement similaire à un bloc fonctionnel dans ST ou à des classes dans des langages tels que C++, Java ou C#. Cependant, Python ne prend pas en charge les interfaces.
Pour des informations détaillées, consultez la documentation Python pour définir Les fonctions et Des classes.
#defining a function with name sum and two parameters a and b:
def sum(a, b):
return a + b # we return the sum of a and b.
# we can now call the function defined above:
print(sum(5,7))
# Now we define a class Foo:
class Foo:
# The class gets a method "bar".
# Note: for methods, the first parameter is always "self" and
# points to the current instance. This is similar to "this" in
# ST and other languages.
def bar(self, a, b):
print("bar(%s,%s)" % (a,b))
# We create an instance of the class:
f = Foo()
# We call the method bar on the instance.
f.bar("some", "params")Modules et bibliothèques standards
Dans IEC, vous pouvez importer des bibliothèques pour les réutiliser par d'autres codes écrits. En pendant, il y a la possibilité en Python d'importer des modules.
La Bibliothèque standard Python contient de nombreux modules à des fins différentes, telles que :
Traitement des chaînes
Gestion de la date et de l'heure
Collections
Enfilage
Fonctions mathématiques
La gestion des fichiers
Persistance
Compression et archivage
Accès à la base de données
Services de chiffrement
Accès réseau et Internet
Envoi d'e-mails
Pour créer vos propres modules, écrivez un fichier Python qui définit les fonctions et les classes que vous souhaitez fournir. Enregistrez ce fichier dans le même répertoire que notre exemple de script. Si vous nommez le fichier mymodule.py, alors vous pouvez l'importer avec import mymodule.
Voici un exemple d'importation et d'utilisation de la fonction cosinus et de la constante pi de la math module:
from math import cos, pi print(pi) # prints 3.14159265359 print(cos(pi)) # prints -1.0
Ce qui suit contient d'autres exemples qui accèdent aux informations sur le système d'exploitation, la version de Python et l'interpréteur :
import os print(os.environ["OS"]) from sys import platform, version, executable print(platform) print(version) print(executable)

Il y a un module spécial __future__ pour activer de nouvelles fonctionnalités linguistiques. Surtout, il est utilisé lorsque les développeurs Python introduisent de nouvelles fonctionnalités rétrocompatibles. Ces types de fonctionnalités doivent être activés avec des "__future__ importations". Un exemple que nous utilisons dans la plupart de nos exemples de scripts ici est l'activation de la nouvelle syntaxe de puissance de print comme une fonction au lieu d'une instruction.
# make print() a function instead of a statement from __future__ import print_function
La documentation Python fournit une liste de tous __future__ importations.
En plus des modules Python normaux, le code IronPython peut également accéder aux assemblages .NET comme s'il s'agissait de modules Python. Cela ouvre l'accès au bibliothèque de classes de framework .NET et des bibliothèques tierces. Voici un exemple d'ouverture d'une boîte de dialogue à l'aide de la Windows Forms bibliothèque:
import clr
clr.AddReference("System.Windows.Forms")
from System.Windows.Forms import MessageBox
MessageBox.Show("Hello")