[Python] Chapitre 05-01 Syntaxe de contrôle (opérateur de comparaison et branchement conditionnel)

[Python] Chapitre 05-01 Opérateurs de comparaison et branchement conditionnel

Dans ce chapitre, vous apprendrez la syntaxe de contrôle. Les programmes que vous avez écrits jusqu'à présent ont été essentiellement traités dans l'ordre du haut et exécutés dans l'ordre.

Cependant, comme dans nos vies, nous prenons généralement des décisions tout en prenant des décisions. Par exemple, «sortez si le temps est ensoleillé» et «passez à l'intérieur si le temps est pluvieux».

Vous pouvez choisir le processus à exécuter en faisant le même jugement dans un programme informatique. Cependant, vous devez apprendre un nouvel opérateur appelé opérateur de comparaison pour spécifier la condition. L'opérateur de comparaison n'est pas si difficile, mais la notation est différente de celle des mathématiques, alors gardez cela comme un point.

Opérateur de comparaison ~ Description de la condition ~

Tout d'abord, je vais expliquer les opérateurs de comparaison importants dans le branchement conditionnel. Par exemple, les formules suivantes sont, bien entendu, égales.

5 = 2 + 3

Pour vérifier si cela est égal dans un programme Python, écrivez: Entrez le code suivant dans la ** console Python **. De plus, veuillez écrire deux ** = (égaux) consécutifs. ** **

>>> 5 == 2 + 3
True

J'essaie de déterminer si l'ajout de 2 et 3 donne 5. Naturellement, ce sera ** True **. De plus, bien qu'il soit décrit comme ** "==" **, il s'agit d'un opérateur de comparaison. Le jugement se fait en comparant le côté gauche et le côté droit. Veuillez noter que si vous définissez ** "=" (égal) **, ce sera un devoir. (*) </ font> En Python, "==" est un opérateur de comparaison qui signifie égalité, mais veuillez noter que cela dépend du langage de programmation.

Maintenant, osons entrer des valeurs différentes. Entrez le code suivant dans la ** console Python **.

>>> 5 == 1 + 3
False

J'essaie de déterminer si le résultat de l'ajout de 1 et 3 est 5. Naturellement, ce sera ** Faux **.

Il existe d'autres types d'opérateurs de comparaison comme suit.

Opérateur de comparaison sens Exemple Signification de l'exemple
== égal x == 5 X et 5 sont-ils égaux??
!= Inégal x != 5 X et 5 ne sont-ils pas égaux??
> Plus grand x > 5 Est x supérieur à 5?
>= c'est tout x >= 5 Est-ce que x 5 ou plus??
< Moins de (moins de) x < 5 Est x inférieur à 5?
<= Moins que x <= 5 Est-ce que x 5 ou moins??

Voici un exemple d'exécution. Remplaçons par une valeur différente et essayons-la.

>>> 5 == 5
True
>>> 5 != 5
False
>>> 5 != 4
True
>>> 5 > 4
True
>>> 5 >= 5
True
>>> 5 > 5
False

Vous pouvez également comparer des chaînes de caractères et des listes.

>>> 'book' == 'book'
True
>>> 'book' != 'book'
False
>>> L1 = [1, 2, 3]
>>> L2 = [1, 2, 3]
>>> L1 == L2
True

Branche conditionnelle (si instruction)

Ici, nous aborderons le branchement conditionnel. Pour écrire une branche conditionnelle, écrivez une instruction ** if **.

La grammaire est décrite comme suit.

si condition:
Traitement à exécuter lorsque les conditions sont remplies

Cela "lorsque la condition est remplie" signifie que le résultat de l'opérateur de comparaison (c'est-à-dire la condition) est ** True **.

N'oubliez pas ** ":" ** (deux-points) après l'expression conditionnelle. Sans cela, une erreur se produira.

Aussi, avant le "processus à exécuter lorsque les conditions sont remplies", la "touche Tab" est utilisée pour ** indenter (en bas) **. N'oubliez pas cela aussi. Sans cela, le contenu de l'instruction ** if ** ne peut pas être compris. (Les détails sont décrits ci-dessous)

Ecrire grammaticalement rend la tâche difficile, je vais donc l'expliquer tout en écrivant le programme. Les programmes décrits cette fois sont les suivants. Entrez une valeur entière à partir du clavier, et si elle est positive, créez un programme qui indique "Une valeur positive a été entrée". </ font>

Tout d'abord, je voudrais exprimer les conditions avec un ** organigramme **. Dessiner un organigramme permet à quiconque de comprendre plus facilement le contenu du programme.

image.png

Créons un programme basé sur cela. Je vais créer un programme, mais cette fois, pour la première fois depuis longtemps, je vais créer un dossier et un fichier .py pour entrer le programme dans l'éditeur. Pour ce fichier, créez un dossier chap05 </ font> et créez-y un fichier appelé 05-01-01.py </ font>. Faire. Si vous oubliez comment le créer, veuillez le vérifier au "Chapitre 01-03".

05-01-01.py


#Entrez une valeur entière. Si elle est laissée telle quelle, ce sera une chaîne de caractères, donc convertissez-la en valeur numérique avec la fonction int.
n = int(input('Veuillez saisir une valeur entière:'))

#Imprimer avec la fonction d'impression si la valeur est positive, c'est-à-dire si n est supérieur à 0
if n > 0:
    print('Une valeur entière positive a été entrée')

Après avoir écrit le programme, exécutons-le.

[Résultat de l'exécution] </ font> Entrez une valeur entière: 5 </ font> Une valeur entière positive a été entrée

** "5> 0 ou pas" ** est jugé à la place de ** n> 0 ** dans if. Bien sûr, comme c'est ** True **, l'intérieur de l'instruction if est exécuté.

À propos du retrait

Plus tôt, j'ai mentionné que le contenu de l'instruction if devrait être mis en retrait. Creusons un peu plus loin dans cela. Veuillez ajouter le code suivant.

05-01-01.py


#Entrez une valeur entière. Si elle est laissée telle quelle, ce sera une chaîne de caractères, donc convertissez-la en valeur numérique avec la fonction int.
n = int(input('Veuillez saisir une valeur entière:'))

#Imprimer avec la fonction d'impression si la valeur est positive, c'est-à-dire si n est supérieur à 0
if n > 0:
    print('Une valeur entière positive a été entrée')
    print(f'Maintenant, c'est à votre tour{n}Je suis entré.')

J'écrirai un autre code. Créez un fichier appelé 05-01-02.py </ font> dans le dossier chap05 </ font>. La seule différence est que vous n'avez pas mis en retrait la dernière sortie.

05-01-02.py


#Entrez une valeur entière. Si elle est laissée telle quelle, ce sera une chaîne de caractères, donc convertissez-la en valeur numérique avec la fonction int.
n = int(input('Veuillez saisir une valeur entière:'))

#Imprimer avec la fonction d'impression si la valeur est positive, c'est-à-dire si n est supérieur à 0
if n > 0:
    print('Une valeur entière positive a été entrée')
print(f'Maintenant, c'est à votre tour{n}Je suis entré.')

Veuillez exécuter chacun d'eux. Dans ce cas, veuillez saisir une valeur négative **.


05-01-01.py Résultat d'exécution

[Résultat de l'exécution] </ font> Entrez une valeur entière: -1 </ font>


05-01-02.py Résultat d'exécution

[Résultat de l'exécution] </ font> Entrez une valeur entière: -1 </ font> Vous avez maintenant entré -1.

Avez-vous vu la différence? Premièrement, puisque la valeur numérique entrée est ** n = -1 **, à ** n> 0 **, ** -1> 0 ** et ** False **, donc l'intérieur de l'instruction if est traité. Ne sera pas. Jusqu'à présent, il est commun aux deux programmes.

Dans 05-01-01.py </ font>, les deux lignes de l'instruction if sont indentées, elles sont donc traitées comme un traitement dans l'instruction if **, cette fois. N'a pas été traité. Dans 05-01-02.py </ font>, l'un d'entre eux n'est pas indenté, donc l'instruction if se termine et ** est exécutée comme un processus en dehors de l'instruction if **. Tu seras là.

Il est difficile d'écrire en lettres, donc si vous dessinez dans un organigramme, les différences seront les suivantes. image.png

Branche conditionnelle (instruction if-else)

Dans les programmes que j'ai écrits jusqu'à présent, lorsqu'une valeur positive est entrée, "Une valeur entière positive a été entrée" est sortie. Mais que faire si une valeur négative est entrée? J'ai en fait tapé -1 plus tôt, mais il n'a pas dit "une valeur entière négative a été entrée".

En d'autres termes, rien n'est écrit sur ce qu'il faut faire si les conditions ne sont pas remplies. Si vous souhaitez écrire une telle condition, utilisez ** else **. La syntaxe est la suivante.

si condition:
Traitement à exécuter lorsque les conditions sont remplies
else:
Que se passe-t-il lorsque les conditions ne sont pas remplies

En fait, écrivez le programme comme suit. Créez un fichier appelé 05-01-03.py </ font> dans le dossier chap05 </ font> et entrez le code suivant. S'il te plait donne moi.

05-01-03.py


#Entrez une valeur entière. Si elle est laissée telle quelle, ce sera une chaîne de caractères, donc convertissez-la en valeur numérique avec la fonction int.
n = int(input('Veuillez saisir une valeur entière:'))

#Imprimer avec la fonction d'impression si la valeur est positive, c'est-à-dire si n est supérieur à 0
if n > 0:
    print('Une valeur entière positive a été entrée')
else:  ##Sortie avec la fonction d'impression suivante lorsque les conditions ci-dessus ne sont pas remplies
    print('Valeur entière négative entrée')
print(f'Maintenant, c'est à votre tour{n}Je suis entré.')


05-01-03.py Résultat d'exécution

[Résultat de l'exécution] </ font> Entrez une valeur entière: -1 </ font> Valeur entière négative entrée Vous avez maintenant entré -1.

Pour expliquer, j'ai entré ** n = -1 ** comme valeur d'entrée cette fois. Par conséquent, dans la condition, ** - 1> 0 **, donc ** False **, et la condition n'est pas satisfaite. Par conséquent, le côté ** else ** est exécuté et "Une valeur entière négative a été entrée" est sortie.

Branche conditionnelle (instruction if-elif-else)

Maintenant, essayez à nouveau dans cet état et entrez ** 0 ** comme valeur d'entrée. Ensuite, le résultat est le suivant.


05-01-03.py Résultat d'exécution

[Résultat de l'exécution] </ font> Entrez une valeur entière: 0 </ font> Valeur entière négative entrée Vous avez maintenant entré 0.

Même si ** 0 ** n'est ni un nombre positif ni un nombre négatif, "Une valeur entière négative a été entrée" est affiché. Quand ** 0 ** est entré, j'essaierai de l'améliorer afin que "0 a été entré" soit sorti.

Mais alors il y a trois branches. Comment l'exprimez-vous? Pour résoudre ce problème, utilisez l'instruction ** elif **. La syntaxe est la suivante.

si condition 1:
Processus exécuté lorsque la condition 1 est remplie
condition elif 2:
Processus exécuté lorsque la condition 2 n'est pas satisfaite sans satisfaire la condition 1
else:
Traitement à exécuter lorsque la condition 2 n'est pas remplie

Écrivons réellement le programme. Créez un fichier 05-01-04.py </ font> dans le dossier chap05 </ font> et entrez le code suivant S'il te plait donne moi.

05-01-04.py


#Entrez une valeur entière. Si elle est laissée telle quelle, ce sera une chaîne de caractères, donc convertissez-la en valeur numérique avec la fonction int.
n = int(input('Veuillez saisir une valeur entière:'))

#Imprimer avec la fonction d'impression si la valeur est positive, c'est-à-dire si n est supérieur à 0
if n > 0:
    print('Une valeur entière positive a été entrée')
elif n < 0:  ##Sortie avec fonction d'impression même si n est inférieur à 0
    print('Valeur entière négative entrée')
else:  ##n>Mais n<Quand ce n'est pas 0 (c'est-à-dire quand il vaut 0)
    print('0 a été entré')
print(f'Maintenant, c'est à votre tour{n}Je suis entré.')

Exprimons-le dans un organigramme ici. Je pense que c'est comme suit. Suivons le processus en comparant le programme et l'organigramme. image.png

Problème de pratique

Nous avons préparé des exercices. Veuillez essayer de le résoudre. De plus, veuillez utiliser le nom de fichier spécifié dans [] et le créer dans chap05 </ font>. Vous pouvez spécifier n'importe quel nom de variable que vous souhaitez. [05-01-p1.py] [1] Créez un programme qui détermine si l'entier saisi est pair ou impair. (Indice: pair est divisé par 2 pour obtenir 0 et impair est divisé par 2 pour obtenir 1).
05-01-p1.py résultat de l'exécution

[Résultat de l'exécution] </ font> Veuillez saisir un entier: 1 </ font> Est impair

[05-01-p2.py] [2] Lisez une valeur entière positive et divisez-la par 3, "la valeur est divisible par 3", "la valeur est supérieure à 1 lorsqu'elle est divisée par 3", "la valeur est divisée par 3" Créez un programme qui affiche l'un des «et 2 surplus».
05-01-p2.py résultat de l'exécution
> [Résultat de l'exécution] Veuillez saisir un entier: 256 Cette valeur est supérieure à 1 lorsqu'elle est divisée par 3

finalement

Aujourd'hui, j'ai appris les instructions if, qui sont importantes pour la programmation. Si les déclarations apparaissent souvent comme une évidence pour les programmes à apprendre dans le futur. Chaque programme a un jugement de condition, alors assurez-vous de vous en souvenir.

Retournez à [Lien de la table des matières]

Recommended Posts