0% ont trouvé ce document utile (0 vote)
38 vues36 pages

Introduction à Python pour Débutants

Ce document fournit une introduction à la programmation Python pour les débutants. Il couvre des sujets tels que l'installation d'environnements de développement Python, l'écriture de programmes simples pour résoudre des problèmes mathématiques, l'utilisation d'instructions conditionnelles et de boucles, le travail avec des types de données courants comme les listes et les chaînes, ainsi que quelques algorithmes de base. Le document est destiné à être un tutoriel avec du code exemple fourni et des explications des concepts et de la syntaxe Python. Il vise à équiper les lecteurs de compétences fondamentales en programmation Python.

Traduit par

ScribdTranslations
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
38 vues36 pages

Introduction à Python pour Débutants

Ce document fournit une introduction à la programmation Python pour les débutants. Il couvre des sujets tels que l'installation d'environnements de développement Python, l'écriture de programmes simples pour résoudre des problèmes mathématiques, l'utilisation d'instructions conditionnelles et de boucles, le travail avec des types de données courants comme les listes et les chaînes, ainsi que quelques algorithmes de base. Le document est destiné à être un tutoriel avec du code exemple fourni et des explications des concepts et de la syntaxe Python. Il vise à équiper les lecteurs de compétences fondamentales en programmation Python.

Traduit par

ScribdTranslations
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

LYCÉE VĨNH ĐỊNH

Enseignant : Lê Thanh Phú


Matière : Informatique

Quảng Trị, janvier 2022


PYTHON DE BASE

TABLE DES MATIÈRES


CHSUJET 1 : FAIRE CONNAISSANCE AVEC PYTHON............................................................................................................3
CHSUJET 2 : PROGRAMME DE RÉSOLUTION DE PROBLÈMES SIMPLESN .......................................................................5
CHTHÈME 3 : PHRASES FIXESNH RẼ NHÁNH.......................................................................................................10

CHỦ ĐỀ 4– CÂU LỆNH LẶP .................................................................................................................12


CHỦ ĐỀ 5 : IAÊTRE LISTE –LISTE ....................................................................................................14
CHỦ ĐỀ 5 : IAỂU DỮ LIBEAU.............................................................................................................17
CHỦ ĐỀ 6 : KIỂU DỮ LIỆU TỆP..............................................................................................................21
CHSUJET 7 : PROGRAMME FILS........................................................................................................23
CHỦ ĐỀ 8 : MỘT SỐ THC'est fondamentalement différent lorsque l'on [Link] HSG........................................................25
Snombres premiers: ..............................................................................................................................25
2. Ước/ Bội:.....................................................................................................................................25
3. Sắp xếp:.......................................................................................................................................26
4. Trouverm nhbinaire.....................................................................................................................28
5. Tas :...........................................................................................................................................29

6. Dictionnaire– Python : .............................................................................................................................29


7. Ensemble– Python :...............................................................................................................................30
8. Một sTruc différent :.......................................................................................................................31
CHSUJET 9 : ACCÉLÉRER LE PROGRAMME PYTHON...............................................................................32
CHỦ ĐỀ 10 : TẠO TEST VỚI PYTHON ...................................................................................................34
CHỦ ĐỀ 11 : CHẤM PYTHON TRONG THEMIS .....................................................................................36

Enseignant : Lê Thanh Phú 2|T r a n g


PYTHON DE BASE

CHỦ ĐỀ1:LÀM QUEN PYTHON


1. Outils de programmation :
Il existe de nombreux logiciels qui nous aident à écrire et à exécuter des programmes écrits en Python comme :

• Pycharm
• Atome
• Thony
• Vscode
•…
Mỗi phần mềm đều có ưu nhược điểm riêng, cách cài đặt và viết chương trình cũng khác
nhau. Pycharm supporte très bien le code, cependant il est trop lourd, lorsqu'il s'exécute, il prend environ 1 Go de RAM donc la machine

Avec 4 Go de RAM, il y a souvent des ralentissements. Atom a une belle interface et une bibliothèque d'outils riche, cependant l'outil...
déboguer ne répond pas pour enseigner et apprendre la partie trouver et corriger les erreurs. Thony est très léger, lorsqu'il fonctionne il prend

environ 40 Mo de mémoire, cependant les utilitaires sont très peu nombreux et l'outil de débogage est encore trop simple.
Facile à installer, facile à utiliser, professionnel, bon support lors du codage, bon support pour le débogage, adapté à
chuyên đề F và các kỳ thi HSG theo tôi vẫn là VScode. Khi chạy chiếm tầm 300MB bộ nhớ, tạo một
Le dossier et le code de tous les exercices sont très pratiques. Surtout en classe de 12, j'utilise toujours VSCode pour HTML5 et CSS.

Actuellement, l'outil de support à la programmation pour l'installation simple est utilisé officiellement pour les examens.
Thonny. Donc, si quelqu'un commence à apprendre ou participe à un programme de perfectionnement pour le niveau élite, il devrait utiliser Thonny.

2. Télécharger et installer le logiciel :

a) Installer Thonny pour Windows :


• Accès trang[Link] allez dans la section Télécharger la version 4.0.1 pour Windows et choisissez la version
compatible avec votre ordinateur :

• Exécutez le fichier que vous venez de télécharger pour l'installer.


b) Quelques options pour Thonny :
- Choisissez une interface sombre pour moins fatiguer vos yeux lors du codage :

• Ouvrez Thonny, allez dans Outils, choisissez Option, puis choisissez Thème et Police
• UI Theme: Chọn Clean Dark
• Syntaxe : Choisissez demain soir
- Suggestions de code et autofinishing du code lors de la saisie :

• Ouvrez Thonny, allez dans Outils, sélectionnez Options, puis Éditeur


• Tick chọn vào hai mục sau:
oAutomatically show parameter infor after typing‘(‘
oProposer automatiquement des complétions en tapant

Enseignant : Lê Thanh Phú 3|T r a n g


PYTHON DE BASE

3. Premier programme Python


• Ouvrez Thonny, tapez le programme suivant pour essayer :

• Enregistrer sous le nom : [Link]


• Appuyez sur F5 pour exécuter le programme. Le résultat de l'exécution du programme sera affiché dans la fenêtre.
Coquille juste en dessous.

Enseignant : Lê Thanh Phú 4|T r a n g


PYTHON DE BASE

SUJET 2 : PROGRAMME DE RÉSOLUTION DE PROBLÈMES SIMPLES


1. Exemple :
Voici un programme simple qui résout le problème de calcul et d'affichage de la superficie d'un cercle:
Programme Expliquer

Déclaration de la bibliothèque mathématique

Entrez le rayon à partir du clavier


Calculer l'aire d'un cercle
Annonce des résultats de la superficie

2. Les parties spécifiques :

a) La section de déclaration de bibliothèque :

Comme l'exemple ci-dessus, nous voyons que la première partie, et très importante, dans la programmation est la déclaration des bibliothèques.

La déclaration de bibliothèque permet d'accéder aux programmes disponibles dans la bibliothèque. Actuellement, Python
il existe un système de bibliothèque énorme sur de nombreux domaines.

Voici la bibliothèque math, qui contient de nombreux modules utilisés pour divers travaux.
mathématiques. Quelques fonctions mathématiques typiques :
Fonction Utilisation
[Link] Constante pi = 3,141592653589793
[Link](x) Retourner le nombre réel qui est la racine carrée du nombre réel positif x. Si nous appelons cette fonction
avec un nombre négatif signalera une erreur
[Link](x) Renvoie la partie entière du nombre réel x. Par exemple : [Link](5.6) = 5
[Link](x) Arrondir vers le bas au nombre entier le plus proche. Par exemple : [Link](5.9) = 5

[Link](x) Làm tròn lên số nguyên gần nhất. Ví dụ: [Link](5.3) = 6


[Link](x) Retour au prix absolu du nombre x.
[Link](x, y) Retrouvez le plus grand commun diviseur de deux entiers x et y.
[Link](x, y) Le retour au nombre réel est la valeur xy. Cette fonction a une marge d'erreur assez grande, donc à utiliser avec parcimonie.
utiliser. Si vous voulez calculer xyde deux entiers, il faut utiliser : x**y
[Link](x) Retourner la valeur trigonométrique sin(x)
[Link](x) Retourner la valeur trigonométrique cos(x)
[Link](x) Retourner la valeur de la tangente(x)
[Link](x) Retourne à la mesure U de l'angle cos(U) = x.
Utilisé pour trouver la mesure d'un angle. Notez que l'unité est le radian.

[Link]és(x) Convertir l'unité de radians en degrés. Exemple : [Link]([Link]) = 180 degrés.

[Link](x) Convertir l'unité x degrés en radians. Par exemple : [Link](180) = 3.14159...


math.log2(x) Retour à logarithme de base 2 de x.
math.log10(x) Traduire le logarithme en base 10 de x.
[Link](n, k) C(k,n) est la combinaison de k parmi n. Cela peut être utilisé pour compter le nombre de façons de choisir.
ra k éléments parmi n éléments. Par exemple : [Link](7, 5) = 21

… …
Il existe encore de nombreuses bibliothèques utiles, que vous découvrirez au fur et à mesure de votre apprentissage.

Enseignant : Lê Thanh Phú 5|T r a n g


PYTHON DE BASE
b) Partie de traitement principal :

La partie traitement du problème de calcul simple comporte généralement trois étapes comme dans l'exemple ci-dessus.
• Entrez les informations nécessaires pour l'ordinateur
• Calculer la résolution du problème
• Annonce des résultats de l'article
Partie Contenu de base
Pour saisir des informations à partir du clavier, Python nous prend en charge avec la fonctionentrée()

Fonctionentrée()par défaut, renvoie une chaîne de caractères saisie depuis le clavier. Voici
Voici quelques exemples :

Opération de saisie Commande Python


Une chaîne de caractères hoten = input()
un entier x = int(input())
La commande ci-dessus utilise hamint() pour convertir une chaîne de nombres.

nguyên được nhập vào bởi hàminput() thành số


x = float(input())
un certain nombre de pratiques
Entrer
deux entiers supérieurs à deux x = int(input())
informations
ligne y = int(input())
Il y a deux entiers écartés x,y = map(int, input().split())
Dans l'ordre ci-dessus :
espace
input().split()va séparer la chaîne d'entrée en deux
xâu số nguyên dựa vào dấu cách.
carte(int, ..)séparer deux chaînes de nombres en 2 nombres
x,y = map(float, input().split())
Hai nombres réels sont séparés par un espace

cette manière
Trois entiers x,y,z = map(int, input().split())
- Python fournit une instruction d'affectation pour le calcul : nom_de_variable = expression

- Exemple de calcul de la surface d'un rectangle :s = a*b


-Pour écrire des expressions de calcul, Python fournit plusieurs types d'opérations :
1. Opération arithmétique : Les exemples ci-dessous prennent a = 5 et b = 7.

Permission
Mô Tả Exemple
mathématiques

+ L'opération d'addition des valeurs ensemble a + b = 12

Calcul - L'opération de soustraction des valeurs entre elles a - b = -2

* La multiplication des valeurs ensemble a * b = 42

/ La division des nombres réels a / b = 0.71428…

// L'opération de division pour obtenir la partie entière a // b = 0

% Phép toán chia lấy phần dư a%b=5

** Opération exponentielle. a**b = ab a ** b = 78125

Enseignant : Lê Thanh Phú Trang


PYTHON DE BASE
2,Opérations Relationnelles.
Ce type d'opération est utilisé pour comparer les valeurs entre elles, et son résultat sera renvoyé.
à vrai si correct et faux si incorrect. Et il est souvent utilisé dans des instructions conditionnelles
poursuite.
En Python, il existe également 6 types d'opérateurs relationnels de base comme suit :
(dans les exemples ci-dessous, la valeur est de 5 et la valeur est de 7).
Magie
Note Exemple
mathématiques

Comparer les valeurs des arguments pour voir si elles sont égales
== s'il y a égalité, le résultat retourné sera a == b // Faux
làVrai et inversement seraFaux.

Comparer les valeurs des arguments pour voir s'ils sont différents
hay pas.
!= a != b //Vrai
Si différent, le résultat sera True et
le contraire sera Faux.

Le symbole < représente l'opération inférieure, si l'opposée


< le numéro 1 est inférieur à l'argument 2, donc le résultat sera True a < b //Vrai
et inversement ce sera Faux.

Le symbole > représente l'opération de plus grand, si l'argument


> 1 est supérieur à l'argument 2 alors le résultat renvoyé sera True et a > b //Faux
À l'inverse, ce sera Faux.

Le symbole > représente l'opération de moins que ou égal à,


<= si l'argument 1 est inférieur ou égal à l'argument 2 alors résultat a <= b //Vrai
le résultat sera True et sinon ce sera False.

Le signe > représente l'opération « plus grand ou égal à »,


>= si l'argument 1 est supérieur ou égal à l'argument 2 alors résultat a >= b //Faux
le fruit renverra True et sinon ce sera False.
3,L'opération d'affectation.
L'opération d'affectation est une opération utilisée pour attribuer la valeur d'un objet à un autre objet.
différent. Et en Python, il est également exprimé comme dans d'autres langages. Et
ci-dessous se trouvent 8 opérations de ce type que Python prend en charge.

Permission
Note Exemple
mathématiques
Cette opération est utilisée pour attribuer une valeur
c = a (à ce moment c aura la valeur =
= la valeur d'un objet pour un
5)
valeur

Cette opération additionne puis fixe le prix.


+= traitement pour l'objet
c += a (semblable à c = c + a)

Cette opération soustrait puis affecte une valeur


-= c -= a (similaire à c = c - a)
cho đối tượng

Enseignant : Lê Thanh Phú 7|T r a n g


PYTHON DE BASE

Cette opération soustrait puis assigne une valeur


*= c *= a (similaire à c = c * a)
cho đối tượng

Cette opération divise puis attribue une valeur


/= c /= a (identique à c = c / a)
cho đối tượng

Cette opération est divisible et est donc ajoutée.


% c %= a (similaire à c = c % a)
valeur pour l'objet
Cette opération est exponentielle puis attachée.
**= c **= a (semblable à c = c ** a)
valeur pour l'objet

Cette opération arrondit ensuite.


//= c //= a (semblable à c = c // a)
attribuer une valeur à l'objet

4,L'algèbre de Boole.
Les opérations logiques dans Python sont identiques à celles des autres langages. Cela comprend
Il existe 3 types de base comme suit :

Magie
Note
mathématiques

Si les deux côtés de cette opération sont True, alors le résultat sera True et
et
Inversement, si l'un des deux côtés est Faux, alors le résultat sera Faux.

Si 1 des 2 parties est vrai, alors le résultat sera vrai et vice versa.
ou si les deux parties sont fausses, alors le résultat renvoyé sera faux.

Ceci est une forme de négation, si l'expression est vraie alors elle renverra faux.
pas
et vice versa.
5, Opérations bit à bit.
Cette opération s'effectue sur les bits des valeurs. Imaginez que vous avez
2 variables a = 12 et b = 15 mais si nous les convertissons en binaire alors 2 variables
cela aura la valeur suivante : a = 00001100 et b = 00001111.
Calcul Exemple

& (a & b) = 12 (00001100)

| (a | b) = 14 (00001111)

^ (a ^ b) = 3 (00000011)

~ (-a) = -13 (00001101)

<< a<<a = 49152

>> a>>a = 0
6,Opération d'exploitation.
Cette opération est souvent utilisée pour vérifier si un argument se trouve dans un ensemble.
hợp d’arguments ou non (liste). En Python, nous supportons deux types d'opérations comme suit :
Supposons : a = 4, b = [1,5,7,6,9]

Enseignant : Lê Thanh Phú 8|T r a n g


PYTHON DE BASE

Magie
Remarque Exemple
mathématiques
Si un argument appartient à un ensemble d'arguments, il sera renvoyé.
dans a dans b //Faux
sur True et vice versa

Si un argument n'appartient pas à un ensemble d'arguments, il


pas dans a n'est pas dans b //Vrai
renverra True et vice versa
-Pour imprimer des informations, Python fournit la commandeimprimer()

- Cette commande permet d'imprimer une ou plusieurs valeurs à l'écran. Les valeurs dans une commande
in sera imprimé avec un espace entre chaque.
- Quelques exemples :

Commande d'impression Signification

imprimer(12) dans le numéro 12 sur l'écran

print(15, "hoà bình") en numéro 15 et la chaîne de caractères “paix”

résultat à l'écran : 15 paix


imprimer("nombre pair:", 2) sốchẵn: 2
Annonce
imprimer(format(s, '.3f')) Affichez le résultat s à l'écran, arrondi à 3 chiffres.
résultat
décimal
print('bonjour' + 'vous') Salut
print('bonjour', 'vous') Salut ami
print('bonjour', end = ' ') -end = ' ' est pour terminer mais ne descend pas
imprimer('vous')
dòng màchỉ in thêm một dấu cách
- kết quả:chào bạn
imprimer('salut') in ra hai dòng:
imprimer('vous') bonjour
vous
3. Exemple :
- VD1:Programme qui saisit deux côtés d'un rectangle séparés par un espace et calcule l'aire
a, b = map(int, input().split())
s = a*b
imprimer(s)
- VD2 : Programme pour entrer le rayon, calculer et afficher l'aire d'un cercle. Résultat arrondi à 5.
chiffre décimal
importer math
r = int(input())
s = [Link] * r * r
imprimer(format(s, '.5f'))

Enseignant : Lê Thanh Phú 9|T r a n g


PYTHON DE BASE

CHỦ ĐỀ 3: CÂU LỆNH RẼ NHÁNH


1. Instruction if–else
-Syntaxe de base :
si conditions:
instruction1
sinon:
instruction2
- Si la condition est vraie, alors exécutez l'instruction 1, sinon exécutez l'instruction 2.
-Cas suivant : Si la condition est vraie, alors exécutez deux instructions. Python utilise l'indentation pour déterminer.
Les instructions doivent être au même niveau. Donc, l'instruction 1 et l'instruction 2 doivent avoir le même retrait.
si condition :
l'ordre1
commande2
-Dans le cas où la condition est vraie, seul l'instruction 1 sera exécutée car ces deux instructions ne sont pas dans le même bloc d'instructions :

conditions :
l'ordre1
Commande2
La commande suivante générera une erreurErreur d'indentationniveau de retrait non défini
si condition :
l'ordre1
lệnh2
2. Quelques exemples :

Exemple Ý nghĩa, kết quả


a = 33 b plus grand que a
b = 45
ifb > a :
b est plus grand que a
a,b =68,33 a = 68 et b = 33 donc cela donnera :
si b > a : b n'est pas plus grand que a
b est plus grand que a
sinon :
b n'est pas plus grand que a
a =200 Utilisez elif pour vérifier la condition
b = 33
ifb > a:
b lớn hơn
elifa == b:
b égale a
sinon :
b bé hơn a
a = 34 La commande d'impression combinée if then pour vérifier
b = 68
print("A")ifa > belse print("B")
ifa > bandc > a: Expression conditionnelle avec opérateur et
print("Essayer deux conditions")
ifa > bora > c: Expression conditionnelle avec l'opération ou
Il suffit qu'un des deux soit vrai
si x > 10 : Utiliser des if imbriqués
plus grand que 10,
si x > 20 :
et est supérieur à 20!

Enseignant : Lê Thanh Phú 10|T r a n g


PYTHON DE BASE
sinon :
Mais pas plus de 20.
a, b = 33, 45 La deuxième instruction est au même niveau que l'instruction if
si b > a :
donc après avoir exécuté la commande if, on va
print("b est plus grand que a")
Bonjour vous exécutez la commande print("Bonjour vous")
a = int(input()) - Entrez un nombre entier a à partir du clavier
ifa >= 0 :
Utiliser des if imbriqués pour vérifier
ifa == 0 :
imprimer("Zéro") de quel type de nombre s'agit-il.
sinon:
Nombre positif
sinon :
Nombre négatif
a = int(input()) Équivalent à l'exemple ci-dessus
ifa == 0 :
Imprimer("Zéro")
elifa > 0:
S numéro positif
sinon :
Nombre négatif

Enseignant : Lê Thanh Phú 11|T r a n g


PYTHON DE BASE

THÈME 4 – INSTRUCTION DE BOUCLE


1. Répéter un nombre de fois connu :
- Contrairement à C++ ou Pascal, Python parcourt chaque élément d'une liste de manière séquentielle.
le troisième de nous dans la liste.
forx indanhsach:
Ordre de traitement

- Python 3 fournit la fonction range() pour créer une liste de nombres dans une plage :
• intervalle(u, v)créer une liste de nombres de u à v-1
• plage(u, v, w)créera une liste de nombres de u à v-1, chaque nombre étant séparé du précédent par w unités
vị
- Quelques exemples de la boucle for :

Exemple Signification, résultat

forxin[0,1,2]: - Répéter 3 fois


imprimer(x) - x prend respectivement les valeurs 0, 1, 2.
pourxrange(2,6): plage(2,6)traversez une section comprenant des nombres
imprimer(x)
de 2 à 5.
- x prend successivement les valeurs 2, 3, 4, 5
pour x dans range(2,10, 2): plage(2,10,2)trảvềmột đoạn gồm các
imprimer(x)
entier[2, 4, 6, 8]
s=0 - je reçois successivement les valeurs 7, 6,
pour i dans range(7,3,-1): 5, 4 (Répétition)
s +=i
imprimer(s)
fruits = ["Táo","Chuối","Đào"] x prend successivement des valeurs dans une liste pour
forxinfruits:
imprimer(x) avant

forxin"banana": Parcourez les lettres de la chaîne


imprimer(x)
banane
L = ["a","b","c"] Ordrepauseaidez à arrêter la boucle après l'impression
forxinL:
imprimer(x) bonne écran.
ifx == "b":
pause
L = ["a","b","c"] Seulement imprimer a, ne pas imprimer b. Car si x = 'b' alors cela s'est arrêté
forxinL:
ifx == "b": boucle
pause
imprimer(x)
L = ["a","b","c"] La commande continue permet de sauter 2 commandes en dessous.
forxinL:
ifx == "b": et passez à l'itération suivante.
continuer Le résultat sera imprimé et
print(x)
s = s + x

2. Répéter un nombre de fois non connu à l'avance :

-Syntaxe de la commande while :

Tout en condition :
Bloc d'instructions en boucle

-Signification : Tant que la condition est vraie, le bloc d'instructions sera toujours exécuté

Enseignant : Lê Thanh Phú 12|T r a n g


PYTHON DE BASE

Exemple Ý nghĩa, kết quả


i=1 Affichera à l'écran 5 lignes contenant successivement 5 nombres :
tant que i < 6 : 1
imprimer(i) 2
i += 1 3
4
5
x = 1 - affichera à l'écran 4 nombres séparés par un espace :
tandis quex <=10:
1 4 7 10
imprimer(x, fin = " ")
x += 3
je = 1 Affiche à l'écran les trois chiffres 1, 2, 3 sur trois lignes. Parce que

tandis queje <6: quand i = 3, la boucle a été interrompue


imprimer(i)
sii == 3:
pause
i += 1
je = 0 - Afficher à l'écran les nombres 1, 2, 4, 5, 6.
pendantje <6: -Ne pas imprimer le numéro 3 car lorsque i = 3, la commande est exécutée
i += 1 continuer à ignorer les autres instructions du même bloc
sii == 3:
continuer répéter
imprimer(i)

Enseignant : Lê Thanh Phú 13|T r a n g


PYTHON DE BASE

THÈME 5 : TYPE DE LISTE - LISTE


1. Concept, déclaration :
- List là một danh sách các phần tử có cùng kiểu hoặc khác kiểu được đánh số. Phần tử đầu tiên
est noté 0. L'objectif est d'utiliser une seule variable pour stocker plusieurs objets.
Exemple : a = [7, 4, 9.8, 'Bonjour', 'Phú'] utilisez une variable pour gérer et stocker 5 objets. Le premier élément
vous pouvez accéder via l'indice :a[0] = 7. Élémente numéro 5 :a[4] = ‘Phú’
2. Certaines opérations avec la Liste :

Travail à réaliser L'ordre correspondant


Khởi tạoalà một list trống chưa có phần tử a =[]
a 0]
Initialiser une liste de 5 éléments : a = [0, 0, 0, 0, = [0]*5
Initialiser une liste contenant 6 éléments : b = [iforiinrange(1,7)]
b = [1, 2, 3, 4, 5, 6]
a = espaces
Entrez une liste de nombres entiers séparés par des [int(x) pour x dans input().split()]
espace sur la même ligne
a = liste(map(int,
Entrez une liste composée de nombres entiers séparés par des espaces input().split()))
dâucách sur une seule ligne (Méthode 2)
Entrez une liste de nombres réels sur une ligne a = liste(map(float,input().split()))
Nhập một list gồmnsốnguyên, mỗi số trên a = []
pour dans la plage(n):
une ligne.
[Link](int(input()))
dans la liste a, chaque élément sur une ligne forxina:
imprimer(x)
dans la liste a en une ligne, les éléments sont séparés par forxina:
print(x, end=' ')
nhau un espace
dans la liste a, il y a des nombres entiers sur une ligne, print(' '.join(str(x) for x in a))
les éléments sont séparés par un espace (espacement 2
plus rapide)
dans la liste a, il y a des chaînes de caractères sur une ligne, print(' '.join(xforxina))
les éléments sont séparés par un espace
Copier la liste a de la section[2] jusqu'à la fin b = a[2:]
Copier la liste a de l'élément tửa[0] à l'élément. b = a[:4]
a[3]
Copiez la liste a des éléments a[3] à a[6] b = a[3:7]
La liste de contrôle ne prend que a[2], a[4], a[6] b = a[2:7:2]
Nombre d'éléments dans la liste n = len(a)
Parcourir les éléments de la liste de début en finforxina
imprimer(x)
Ajouter un élément à la liste [Link](x)
Ajoutez l'élément x à la position u [Link]érer(u, x)
Supprimer le dernier élément de la liste [Link]()
Supprimer le premier élément de la liste ayant la valeur [Link](x)
Supprimer toute la liste [Link]()
Comptez combien d'éléments ont une valeur de x. [Link](x)
face dans la liste
Retourne vrai si x est présent dans la liste a xina
max(a)
Retourner la valeur de l'élément le plus grand dans la liste
min(a)
Retourner la valeur de l'élément le plus petit dans la liste
Retourner la somme de la Liste somme(a)

Enseignant : Lê Thanh Phú 14|T r a n g


PYTHON DE BASE
[Link](min(a))
Retourner la position de l'élément le plus petit dans la liste
Inverser toute la liste [Link]()
Trier la liste par ordre croissant [Link]()
Trier la liste par ordre décroissant [Link](reverse=True)

3. Exemple illustratif :
Exercice Code d'exemple
Programmez l'entrée d'un nombre entier n = int(input())
dương N et la séquence de nombres entiers A comprenant N éléments.a = liste(map(int, input().split()))
amax =max(a)
Trouvez l'élément le plus grand de la séquence des entiers.
print(amax, end=' ')
la position de celui-ci. (0 < n < 10000 ; |Ai| < 10^9). Sipour i dans la plage(n) :
s'il y a plusieurs éléments ayant la même valeur maximale alors si a[i] == amax :
la réponse est l'élément avec la plus petite position. print(i+1)
pause
Données d'entrée Résultat Ou de la manière suivante :
5 12 2 n = int(input())
a = liste(mapp(int, input().split()))
1 12 -4 -3 12
imprimer(max(a), [Link](max(a)) + 1)
n =deint(input())
Programmer pour entrer N et la séquence nombres A
a = [int(x) for x in input().split()]
composé de N éléments (5 < N < 1000). Je vais trier
[Link]()
trier la séquence A en une séquence non décroissante et
imprimer(*a)
notification de la série A affichée à l'écran après classement
Ou méthode 2 : plus rapide pour l'impression :
classer.
Données d'entrée Résultat n = int(input())
a = list(map(int,input().split()))
5 12345 [Link]()
13254 print(' '.join(str(x)forxina))

4. Tableau à deux dimensions :

-On peut créer une liste où chaque élément est une liste pour obtenir un tableau à deux dimensions.
-Ci-dessous, une illustration de l'opération de saisie et d'impression :

m, n = map(int, input().split())
a = [[]*n for i in range(m)]
forxinrange(m):
a[x] = liste(map(int,input().split()))
#dans un tableau à deux dimensions
imprimer(m, n)
forxinrange(m) :
imprimer(*a[x])
Bài tập Code d'exemple
Donnez un tableau à deux dimensions de taille NxN (N n = int(input())
a =dans
d'un tableau de m lignes et N colonnes). Programmation pour entrer []le tableau
pour i dans la plage(n) :
Salut, trouve et affiche à l'écran les chiffres u = liste(map(int,input().split()))
le plus grand de chaque ligne. (1 < N < 15) [Link](u)
pour i dans la plage(n) :
Données d'entrée Résultat
print(max(a[i]))
3 3
123 6
456 9
789

Enseignant : Lê Thanh Phú 15|T r a n g


PYTHON DE BASE

Programmation pour entrer un tableau à deux m, n =map(int,input().split())


dimensions comprenant m
a
La ligne et la colonne ne contiennent que des entiers. Calculer = [[]*npourinrange(m)]
pour in la plage(m) :
somme des éléments de chaque colonne et notification
a[i] = liste(map(int, input().split()))
ces sommes s'affichent à l'écran. (1 < m, n < 100) pour jinrange(n):
sum = 0
Données d'entrée Résultat pour dans la plage(m):
23 5 somme += a[i][j]
123 7 imprimer(somme)
456 9

Enseignant : Lê Thanh Phú 16|T r a n g


PYTHON DE BASE

THÈME 5 : TYPE DE DONNÉES CHAÎNE


1. Notion :
Le type de chaîne en Python est une séquence de caractères entourée par des guillemets simples ou doubles. Par exemple : "Bonjour

vous
On peut considérer une chaîne de caractères comme une liste de caractères consécutifs numérotés à partir de 0. Par exemple :

avec s = 'THPTVinhDinh' alorss[0] = ‘T’, s[4] = ‘V’, s[7] = ‘h’.


- Entrez une chaîne de caractères en utilisant une fonctionentrée().Par exemple:s = entrée()
-Pour afficher une chaîne de caractères à l'écran, utilisez la fonctionimprimer(). Exemple :imprimer(s)

- Parcourir chaque caractère de la chaîne progressivement du début à la fin peut utiliser une boucle for :
forxins:
imprimer(s)
Ou naviguer par index :
pour i dans la plage(len(s)):
imprimer(s[i])
-Pour rechercher une chaîne de caractères qui apparaît dans une autre chaîne : utiliser l'opérateur in
if'quang'in'quangtri':
imprimer('có xuất hiện')
-Pour trouver la position d'une sous-chaîne dans une autre chaîne, utilisez la fonction find(). Cette fonction renvoie la position d'apparition.

Tout d'abord, s'il n'apparaît pas, cela renverra -1. L'exemple suivant donne la réponse : Il apparaît à la position 5
QuangTri_2022
[Link]('Tri') > -1 :
print('Co xuat hien tai vi tri', [Link]('Tri'))
Commande de séparation de sous-chaîne basée sur le caractère défini. Par exemple, ceci séparera la chaîne s = 'Quang Tri 2022' en une

listea = ['Quang', 'Tri', '2022']


Quang Tri 2022
a = [Link](' ')
-Exemple similaire mais séparé par une virgule :
Quang,Tri,2022
a = [Link](',')
2. D'autres opérations sur la chaîne de caractères :
Les opérations suivantes illustrent sur la chaîne s = 'chao'

Action Signification

banToi L'opération de concaténer deux chaînes en une. S = 'banToi'

s = s*3 Répétez la chaîne s 3 [Link]


s = [Link]() En majuscule la première lettre de S, les autres caractères restent inchangés.

s = [Link]() In hoa kítự đầu tiên mỗi từ. s = ‘Chao Ban’→ Salut les amis
s = [Link]() Convertir toute la chaîne s en minuscules
s = [Link]() Convertir toute la chaîne s en lettres majuscules
x = [Link]('p') Comptez combien de caractères 'p' il y a dans la chaîne s.

[Link]() Retourner une chaîne ne contenant que des caractères alphanumériques.


[Link]() Renvoie vrai si la chaîne s ne contient que des lettres et n'est pas vide
s.est_decimal() Renvoie vrai si la chaîne ne contient que des caractères numériques et n'est pas vide
s.est_minuscule() Retournez vrai si la chaîne contient au moins 1 caractère minuscule et 1 caractère majuscule
contient des caractères en MAJUSCULES
[Link]() Similaire à la fonction ci-dessus

Enseignant : Lê Thanh Phú 17|T r a n g


PYTHON DE BASE
[Link](x) Retourner la première/dernière position d'apparition de la chaîne x. S'il n'y a pas
[Link](x) retour actuel -1.
s = [Link]() Supprimer les espaces blancs à gauche/droite/des deux côtés de la chaîne s
s = [Link]() Par exemple : s = [Link]() supprimera les caractères blancs à gauche de la chaîne s
s = [Link]()
s = [Link](x) Ajoutez des caractères non à gauche pour que la chaîne s ait une longueur de x

s = '15', s = [Link](4, '0')→ 0015


s = [Link]() Changer les lettres majuscules en minuscules et les minuscules en majuscules.

x = int(s) int() aide à convertir une chaîne de nombres en un nombre


s = str(x) str() convertir le nombre x en une chaîne
ord(s[i]) Récupérer le code ascii du caractère s[i]
chr(x) Obtenir le caractère dont le code ascii est x
r = s[:x] Copier les x premiers caractères de la chaîne s

r = s[x:] Copier xâustừvị tríx jusqu'à la fin de la chaîne

r = s[3:6] Copiez les caractères de la position 3 à 5 de la chaîne s


s = s[:x] + s[x+1:] Supprimer le caractère à la position x de la chaîne s

s = [Link]('h', '') Xoá hết kí tự ‘h’ của xâus

3. Một số ví dụvận dụng:


Exercice Code correspondant
s =entrée()
Programmez pour entrer une chaîne de caractères, comptez
et afficher à l'écran le nombre de caractères A présents print([Link]('A'))
face intérieure de la chaîne.
Une chaîne est appelée chaîne standard si :s = input()
il n'y a pas de caractères blancs supplémentaires au début et à la fin [Link]('
la chaîne; ') > -1 :
Il n'y a pas deux caractères blancs consécutifs. Je vais établir. s = [Link](' ', ' ')
s = [Link]()
entrez une chaîne et affichez-la à l'écran imprimer(s)
après normalisation
Données d'entrée Résultat
Salut les amis Salut tout le monde

Programmer l'entrée d'une chaîne de noms a = input().split(' ')


préparez et affichez le nom de la chaîne à l'écran imprimer(a[len(a) - 1])
juste entré.
Ou :
Données d'entrée Résultat a =input().split(' ')
Le Thanh Huy Huy [Link]()
imprimer(a[0])

4. Expression régulière : RegEx


- RegEx est l'abréviation de l'expression régulière, qui est une chaîne de caractères formant un motif de recherche. RegEx
peut être utilisé pour vérifier si une chaîne contient le motif de recherche spécifié.
-RegEx est un outil très puissant pour effectuer des opérations de recherche sur des chaînes de caractères.
-Pour utiliser ReGex, il faut déclarer la bibliothèque : import re
- Quelques fonctions puissantes dans la bibliothèque ReGex :

• split(): Renvoie une liste contenant les sous-chaînes de la chaîne d'origine séparées par un caractère spécifié
définir
• search(): Fonction de recherche par chaîne spécifiée
Enseignant : Lê Thanh Phú 18|T r a n g
PYTHON DE BASE

• findall() : Renvoie une liste contenant les sous-chaînes correspondant aux exigences de l'opération.
• sub(): Remplacer les sous-chaînes qui apparaissent dans la chaîne d'origine par les chaînes spécifiées
* Les caractères spéciaux utilisés dans les fonctions ReGex :
Caractère Signification Exemple

[] Un ensemble de caractères [a-m]

\ Signaler une chaîne spéciale \d

. Correspond à un caractère quelconque salut


Par exemple : « hello » correspondra lorsque vous recherchez « he..o »

^ Commencé par la chaîne à rechercher ^bonjour

$ Fin par la chaîne à rechercher planète$

* correspondre à toute combinaison de caractères salut

+ Correspond à un ou plusieurs caractères avant le signe +. il.+o


Par exemple : « helo », « helllo » correspondront à « he.+o »

? Correspondre à un motif sans caractère avant le signe +. il.?o


Par exemple : «helo», «heo» correspondra à «he.?o» alors que «hello» ne le fera pas.

{x} Correspond exactement à x fois les caractères avant la paire {} il.{2}o


Exemple : “bonjour” correspond à “helo” ou “helllo”, mais pas à “hello”.

| Correspond à l'une des conditions à trouver. an|nam


Par exemple : « an|nam » correspondra à une chaîne de caractères contenant « an », « nam » ou les deux.

* Certaines chaînes spéciales utilisées dans ReGex :

Kí tự Signification Exemple

\A Correspondre si commencer par la chaîne à rechercher Le

\b Correspond aux mots commençant par "ain" bain


Correspondre aux mots se terminant par "ain" ain\b

\B Khớp với các từ có “ain” xuất hiệnnhưng không phảiở đầu từ r"Bain"
Correspond aux mots contenant "ain" mais pas à la fin du mot pluie\B

\d Renvoyer le match lorsque la chaîne contient des caractères alphanumériques


\d

\D Retourner à la correspondance lorsque la chaîne ne contient pas de caractères


"\D" numériques.

\s Retourner un match lorsque la chaîne contient des caractères blancs (espace)


\s

\S Retourner match quand la chaîne ne contient pas de caractères d'espacement


\S

\w Trảvềmatch khi chuỗi chứa kí tựchữsố, chữ cái, hoặc dấu gạch "\w"
en dessous

Enseignant : Lê Thanh Phú 19|T r a n g


PYTHON DE BASE

Retourner au match lorsque la chaîne ne contient pas de caractères numériques,


\W de lettres ou de signes.
souligner

* Le type d'ensemble utilisé dans ReGex :


Exemple Signification

[arn] Renvoie vrai si la chaîne contient les caractères a, r ou n.

[a-n] Revenir à une correspondance pour n'importe quel caractère de a à z

[^arn] Renvoyer une correspondance pour tout caractère sauf les caractères a, r ou n.

[0123] Retourne une correspondance pour tout caractère appartenant à l'ensemble 0,1,2,3

[0-9] Correspond à tout caractère du groupe 0 à 9

[0-5][0-9] Correspond à n'importe quel couple de caractères de 00 à 59

[a-zA-Z] Retourner une correspondance pour n'importe quel caractère appartenant à l'ensemble des caractères majuscules et minuscules

*Application de ReGex dans la résolution de problèmes :

Exercice Programme

a
= [Link]('^a.*b$', s)
Soit la chaîne S composée de plusieurs mots séparés par des espaces. Trouver
et imprime tous les mots commençant par 'P' et se terminant par 'u'. imprimer(a)

importer
Cho une chaîne contenant des caractères et des chiffres, les chiffres ne contiennent pas le re
chiffre 0.
Tête. Séparez les chiffres de la chaîne et imprimez le plus grand nombre. s = input()
si = [Link]('\d+', s)
Vd : Anh1chi8abc12cd24 imprimer(max([int(x) pour x dans so]))
--> 24
Hàmfindall('\d+', s) aidez-nous à tout trouver
un segment contigu contenant des chiffres.

importer
Veuillez programmer le tri des nombres dans cette chaîne re croissant.
par ordre
dần mais garde les caractères alphabétiques intacts. s = entrée()
kt = [Link]('\D+', s)
Vd:Anh24chi12abc1cd8 donc = [Link]('\d+', s)
-> Anh1chi8abc12cd24
Fonctiontrouvertout(‘\D’, s)aide-nous à tout trouver
def cmp(u):
Le segment adjacent ne contient pas de caractères numériques.
(len(u), u)

[Link](clé=cmp)

a = []
pour i dans la plage(min(len(kt),
len(so))):
[Link](kt[i])
[Link](so[i])
si len(kt) > len(so) :
[Link](kt[len(kt) - 1])
print(''.join(a))

Enseignant : Lê Thanh Phú 20|T r a n g


PYTHON DE BASE

THÈME 6 : TYPE DE DONNÉES DE FICHIER


1. Quelques concepts :
Fondamentalement, comme dans la plupart des langages de programmation, le processus de travail avec les fichiers
comprend généralement les 3 étapes suivantes :
• Ouvrir le fichier
• Réaliser des activités de lecture et d'écriture de données
• Fermez le fichier pour garantir que les données ne soient pas corrompues ou perdues.
* Ouvrir le fichier :

-Pour ouvrir un fichier, nous utilisons la fonction open avec la syntaxe :


Fichier = open("nom_fichier", "mode_ouverture", encoding="type_de_codage")
-Dans cela :
• Mode d'ouverture : 'r' pour lire, 'w' pour écrire, 'a' pour ouvrir et ajouter des données à la fin
• Type de codage : Si vous lisez un fichier texte en vietnamien sans accents, ce paramètre n'est pas nécessaire.
lisez le fichier en vietnamien avec des accents en utilisant 'utf-8'
-Ví dụ1: Mởtệp [Link] để đọc dữliệu
f = open("[Link]", "r")
-Exemple 2 : Ouvrez le fichier [Link] pour lire un texte en vietnamien avec des accents

f = open("[Link]", "r", encoding="utf-8")


-Exemple 3 : Ouvrir le fichier [Link] pour enregistrer les résultats

g = open("[Link]", "w")
* Lire/écrire des données :

-Lire les données :Biếntệ[Link]()pour lire une ligne


- Enregistrer les données :Biếntệ[Link](x)pour enregistrer x dans le fichier
Fermer le fichier :

-Syntaxe:Biếntệ[Link]()
[Link] avec des fichiers lors des examens HSG :
-Lorsque l'on accède aux fichiers lors des examens, les opérations sur les variables de fichier peuvent facilement prêter à confusion. À la place, nous pouvons utiliser

Utiliser le fichier d'entrée et de sortie standard. Pour ouvrir le fichier, dans la partie supérieure du programme, on le déclare comme suit :
importer sys
[Link] = open("[Link]", "r")
[Link] = open("[Link]", "w")
Cette commande redirige l'entrée et la sortie standard vers des fichiers. Lors de l'utilisation de ce fichier standard, toutes les opérations

Saisir, sortir des informations comme nous l'avons appris jusqu'à présent avec le clavier et l'écran.
-Python lit des données à partir d'un fichier assez lentement, pour lire des données à partir d'un fichier rapidement, il suffit de déclarer une commande supplémentaire.

sau: entrée = [Link]


3. Quelques exemples :

Exercice Code correspondant


La lignée Tula était riche et prospère. importer sys
mais à cause de la guerre civile, ils ont dû se séparer. importermath
[Link] = open("[Link]", "r")
Le précurseur a caché un trésor dans une [Link] secrète. Ils = open("[Link]", "w")
attribuer à K (1 ≤ K ≤ 1000) chaque enfantinput=[Link]
conservez une partie du code secret de l'entrepôt k = int(input())
a = liste(map(int,input().split()))
báu. La personne garde le code x[i] (1 ≤ x[i] ≤
uc = a[0]
dix9). forxina:
Demande : Lorsque la guerre civile se termine, veuillez aider K. uc = [Link](uc, x)
L'enfant cherche le code pour ouvrir le trésor. imprimer(uc)

Enseignant : Lê Thanh Phú 21|T r a n g


PYTHON DE BASE

que la clé est un grand nombre entier positif


nhất M mà tất cả mã số của K người con đều
chia hết.
[Link] [Link]
6 6
48 54 6 36 6 12
importer le système
Dans le royaume NONAME, on apporte
ra une règle de nommage étrange : Chaque ligne de famille [Link] = open("[Link]", "r")
[Link] = open("[Link]", "w")
choisir une séquence de caractères dont la longueur
input=est seulement composée de caractères
[Link]
T = int(input())
toutes les lettres de l'alphabet anglais. Quand pour dans la plage(T):
c'est pour nommer une personne dans la lignée n = int(input())
ils n'ont qu'à changer l'ordre des caractères s = input().rstrip()
r = input().rstrip()
ensemble. si trié(s) == trié(r) :
Exigence : Indiquez les deux chaînes de noms de deux print(1)
les gens du royaume, veuillez vérifier si sinon:
imprimer(0)
Ces deux personnes ont-elles la même lignée ?
[Link] [Link] Codetrans utilise la lecture des données ligne par ligne, donc sera

3 0 lisez le caractère ' ' à la fin de la ligne. Si les données sont une chaîne de caractères
3 0 ajoutez simplement la commanderstrip()pour enlever ce caractère d'abord
LLQ 1 lors du traitement :s = input().rstrip()
KHQ
3
FDF
GDD
3
KWE
EKW
Cho le fichier de liste comprenant plusieurs lignes, chacune importsys
[Link] = open("[Link]", "r")
dòng est une suite de nombres entiers positifs composée de 3
[Link] = open("[Link]", "w")
S'il te plaît, programme pour lire des informations tantQueVrai:
depuis la liste.
essayer :
ce livre, calculez la somme de chaque séquence de nombres et imprimez le résultat
x,y,z = map(int,input().split())
faire apparaître l'écran. print(x + y + z)
sauf :
[Link] [Link] pause
535 13
234 9 Le fichier ne sait pas combien de lignes donc
Utiliser while pour lire. Commandeessayeraider à attraper les erreurs lors de la lecture
543 12
fichier terminé pourpausefin de la boucle.

Enseignant : Lê Thanh Phú 22|T r a n g


PYTHON DE BASE

THÈME 7 : PROGRAMME D'ENFANTS


1. Théorie :
La technique de programmation conduit à l'organisation de programmes de type structure modulable, c'est-à-dire à diviser le programme.

formuler de nombreux modules appelés sous-programmes plus petits. Cela apporte aux programmeurs
les avantages :
• Regroupez les segments de code similaires dans une sous-programme, afin de rendre le code plus court.
plus, clair et facile à entretenir.
• Mettez les sous-programmes testés dans la bibliothèque afin que lors de la nouvelle programmation, il suffise de
lien vers cette bibliothèque.
• Những chương trình lớn được thiết kếdạng cấu trúc tốt có thểtrao cho cácnhóm và người
la programmation est différente, parfois il est possible d'engager des gens pour écrire des sous-programmes
không quá phức tạp.
- Python prend en charge deux types de sous-programmes :

• La fonction renvoie une valeur


• La fonction ne renvoie pas de valeur
-Syntaxe:
def<tên hàm>(<danh sách tham số>):
La séquence d'instructions de la fonction
Retour[valeur de retour]
-Dans lequel :
• Liste des paramètres : peut être ou non
• Valeur de retour : Selon le programme secondaire, s'il n'est pas nécessaire de retourner une valeur, il n'est pas nécessaire de le faire.
này.
L'appel d'une sous-programme : Un sous-programme peut être exécuté avec plusieurs valeurs différentes
le programme est transmis via l'appel de fonction.
2. Quelques exemples :

Exercice Code correspondant


Construire une fonction qui demande à l'utilisateur de saisir defchaomung():
ten =input("Bạn tên gì: ")
Nom et prénom, puis faites une salutation.
print("Bonjour", nom)
Cette fonction n'a pas de paramètres, donc pour l'utiliser
retour
Cette fonction sera appelée :
chaomung()
Construire une fonction qui renvoie la valeur de la somme de deuxdeftong(u,
nombres v):
s = u + v
nguyên.
retours
Cette fonction a des paramètres, donc elle doit être appelée avec tous.

deux paramètres comme déclarés. Par exemple :


s = tong(3, 5)
Ou
imprimer(tong(a, b))
Veuillez décrire la fonction Fact(n) pour calculer la valeur deimporter
n. sys
[Link] = open("[Link]", "r")
factorielle. (0 < N < 200)
[Link] = open("[Link]", "w")
Choisir une liste dont la première ligne est input=[Link]
numéro M, les lignes suivantes contiennent un nombre
entier positif N. Programmation pour lire des données à partir dedefFact(n):
gt = 1
liste, la factorielle de ce nombre m et pour i dans la plage (1, n + 1) :
notification des résultats.
gt *= i
[Link] [Link] retournergt
3 2
Enseignant : Lê Thanh Phú Trang
PYTHON DE BASE

2 24 m = int(input())
pour dans la plage(m):
4
n = int(input())
print(Fact(n))
importer sys
Écrire le programme sous Prime(x) pour vérifier
[Link] = open("[Link]", "r")
traxcó est-il un nombre premier ou non.
[Link] = open("[Link]", "w")
Utiliser le sous-programme que vous venezinput=[Link]
d'écrire.
saisir la séquence de nombres entiers a[1], a[2]…
defPrime(x):
a[n], compter combien de paires satisfont la condition
si x <= 1 :
kiện a[i] + a[j] ( ≤ ) là một số nguyên tố. retourner0
[Link] [Link] pour i dans la plage(2, int(x**0.5)+1):
4 5 si x % i == 0 :
retour0
1234 retourner1

n = int(input())
a = liste(map(int,input().split()))
dem = 0
pour i dans la plage(n):
forjinrange(i, n):
ifPrime(a[i]+a[j]) == 1 :
dem += 1
imprimer(dem)
Écrivez un programme conchuanHoa(s) quiimporter
a sys
[Link]=open("[Link]", "r")
la tâche de supprimer les caractères blancs superflus
[Link]=open("[Link]", "w")
mauvais visage
Utiliser le sous-programme que vous venez d'écrire pourdefchuanHoa(s):
lire les informations des élèves, extraire [Link](' ') > -1:
et affichent à l'écran les noms d'usage commun de ceux s = [Link](' ', ' ')
s = [Link]()
cet élève a été normalisé et en majuscules retours
chaque tête de mot.
tandisQueVrai:
[Link] [Link]
essaye :
Le thanh phu Thanh Phu s = entrée()
Tran HUNG fils Hung Son s =chuanHoa(s)
vt = [Link](' ')
s = s[vt+1:]
s = [Link]()
s = [Link]()
imprimer(s)
sauf :
pause

Enseignant : Lê Thanh Phú 24|T r a n g


PYTHON DE BASE

THÈME 8 : CERTAINES AUTRES CHOSES FONDAMENTALES LORS DE LA FORMATION DES ÉLÈVES APTES À EXCELLER
1. Nombre premier :
Le problème Programme correspondant
defPrime(x):
Vérification des nombres premiers
si x <= 1 :
- Thuật toán duyệt căn retour0
pour i dans la plage(2, int(x**0.5)+1):
si x % i == 0 :
retour0
retour1
Vérifier un nombre premier defPrime6k(x):
si x <= 1 :
- Algorithme 6k retour0
si(x == 2) ou (x == 3):
retour1
si(x % 2 == 0)ou(x % 3 == 0):
retour0
k, peut = 5, int([Link](x))
forkinrange(5, peut, 6):
si (x % k == 0) ou (x % (k+2) == 0) :
retour0
retourne1
Désolé, je ne peux pas accéder aux liens. Veuillez fournir le texte que vous souhaitez traduire.
Vérifier si un nombre est premier
L'algorithme de Rabin Miller
Cette technique complexe est réservée
Vous êtes passionné par la recherche.

Sàng eratos: deferatos(m):


Créer un crible d'Ératosthène avec une limite e = [0, 0] + [1]*m
peut =int([Link](m))
m pouriinrange(2, peut):
ife[i] == 1 :
pourinrange(i*i, m, i):
e[j] = 0
retourner

2. Estimation / Multiples :

importer les mathématiques


Plus grand commun diviseur :
Trouver le PGCD de deux nombres a et b a, b = map(int, input().split())
uc = [Link](a, b)
importer des mathématiques
Plus petit commun multiple
a, b = map(int, input().split())
Trouver le PPCM de deux nombres a, b
bc = (a //[Link](a, b)) * b
Plus grand commun diviseur : importermath
-Trouver le pgcd de a[1..n] a = liste(map(int, input().split()))
uc = 0
forxina
uc = [Link](uc, x)
print(uc)
Plus petit multiple commun : importer des mathématiques
-Trouver BCNN de a[1..n] a = liste(map(int,input().split()))
bc = 1
forxina:
bc = (bc //[Link](bc, x)) * x
print(bc)

Professeur : Lê Thanh Phú 25|T r a n g


PYTHON DE BASE
3. Organiser :
Action L'ordre correspondant
Bientôt la liste des augmentations de [Link]()
- La liste des chaînes augmente dans l'ordre.
dictionnaire
Diminuer [Link](reverse=True)
Trier la chaîne par ordre croissant s = ''.join(sorted(s))
-Parce que la chaîne n'a pas de fonction de tri, utiliser sorted(s) va créer
faire une liste de caractères croissants.
-‘’.join() helps to join this list of characters into a string
Trier par ordre décroissant s = ''.join(sorted(s, reverse=True))
Trier la liste par ordre croissant selon un critère deftongcs(u):
spécial : Exemple sum = 0
tantque u > 0 :
• théorème total des chiffres croissants somme += (u % 10)
• Avec la même somme des chiffres, la valeur augmente progressivement u //= 10
[12, 20, 4, 21]→[20, 12, 21,4] retourner le total

defcmp(u):
retourner(tongcs(u), u)

[Link](clé=cmp)
n = int(input())
Cho une séquence de nombres entiers de n parties
a = liste(input().split())
t ..A[n].Veuillez trier la srie de chiffres selon
l'ordre ne diminue pas puis imprime la séquence sur l'écran
defcmp(u):
image. retourner (len(u), u)
Règle de liaison :
[Link](clé=cmp)
• 1 <= n <= 100000 print(' '.join(xforxina))
• 1 <= A[i] <= 10^25
-Faire a[i] <= 10^25 donc il faut utiliser une chaîne pour le stockage. C'est-à-dire
Chaque élément de la liste est une chaîne. Donc, il faut écrire une fonction pour
sánh, car le tri par défaut sera dans l'ordre lexicographique.
Cette fonction va d'abord comparer par la longueur, plus courte
là số bé hơn (Parce qu'il n'y a pas de chiffre 0 au début), si la longueur est la même
Alors, le nombre le plus petit sera le plus petit.

Cóncon virut, avec un pouvoir destructeur n = int(input())


là a[i] et la capacité de diffusion est b[i]. Veuillez a = []
pour dans la plage(n):
classer les virus par ordre de puissance u, v = map(int,input().split())
détruire de manière égale ou progressive. Si ensemble [Link]([u, v])
le pouvoir destructeur est organisé selon la capacité
defcmp(u):
diffusion croissante.
return(u[0], u[1])
Entrer Sortie
4 11 [Link](clé=cmp)
forxina
51 13
imprimer(x[0], x[1])
11 17
13 51

Enseignant : Lê Thanh Phú 26|T r a n g


PYTHON DE BASE

17
Có n con virut, con thứ i có sức phá hoại n = int(input())
là a[i] et la capacité de diffusion est b[i] et la capacité a = []
pour dans la plage(n):
L'énergie qui a été détruite est c[i]. Veuillez trier les
u,v,z = map(int,input().split())
avec virus selon l'ordre de susceptibilité à être détruit [Link]([u, v, z])
ne diminue pas. Si la capacité de subir est la même
détruire puis organiser selon la capacité de développement
defcmp(u):
return(u[2], -u[1], -u[0])
tán non ne va pas augmenter. Si c'est identique à la capacité.

les agents pathogènes et leur capacité de propagation [Link](clé=cmp)


alors classé selon la capacité de destruction forxina:
imprimer(x[0], x[1], x[2])
ne pas augmenter.
Par exemple : le virus (2, 5, 1) sera placé avant le con Fonction de comparaison cmp(u) :

virut (2, 4, 1); con virut (2, 4, 1) sẽxếp -Tout d'abord, comparer selon u[2] est la capacité d'être éliminé faible.
plus devant la colère ne diminue pas
avant le virus (1, 4, 1).
-Si c'est u[2], alors comparez selon-u[1] la capacité de développement.
Entrer Sortie
tán bé mieux debout, mà-u bé mieux avant
4 671 đương với u[1] lớn hơn xếp trước, tức là không giảm.
111 311 -Si deux têtes sont ensemble, elles seront alors comparées à -u[0] plus petites.

799 111 ranger devant.

311 799
671
Tèo a écrit un grand nombre sur importer functools
un rouleau de papier long et je veux le montrer à
n = int(input())
le frère Tí est revenu avec le résultat atteinta
= []
D'accord. Cependant, quand Tèo vient de sortir pour dans la plage(n):
s = input()
Pour appeler mon frère, ma petite sœur Mì [Link](s)
court dans la pièce et déchire le rouleau de papier
defcmp(u, v):
devenir plusieurs morceaux. Le résultat est sur
ifu+v > v+u:
chaque morceau a un ou plusieurs chiffres retour-1
l'ordre a été écrit. ifu+v == v+u :
retour0
Maintenant, Tèo ne peut pas se souvenir exactement.
retourner1
je me suis demandé quel chiffre j'avais écrit. Téo a corrigé.
[Link](key=functools.cmp_to_key(cmp))
c'est un très grand nombre. Pour faire plaisir
print(''.join(xforxina))
le cœur de son petit frère, Tí a décidé de poursuivre

trouver quel est le plus grand nombre que Tèo a eu -Theo quy định: La fonction de comparaison cmp(u,v) doit retourner -1,
0, 1:
écrire sur le rouleau avant d'être déchiré. • -1 : Si u est avant v
Aidez Tí à faire ce travail. • 1: Si u est organisé après v
Règle • 0, tous les chefs se ressemblent.
La fonction ci-dessus compare pour décider si la chaîne u précède la chaîne.
• 0 < n < 5050
v quand :
• S'il vous plaît, écrivez le nombre sur chaque morceau de papier.
• u xếp trước crée la chaîne de chiffres : u+v
pas plus de 100.
• u xếp sau tạo ra xâu số : v+u
Entrer Sortie

Enseignant : Lê Thanh Phú 27|T r a n g


PYTHON DE BASE
-Les chaînes u+v et v+u ont la même longueur, donc laquelle des chaînes est plus petite ?
4 66220004
Théo, dans l'ordre alphabétique, le nombre formé est plus petit.
2
20
004
66

4. Recherche binaire :
-Il existe une bibliothèque bisect qui fournit deux fonctions de recherche binaire très intéressantes :

• u = bisect.bisect_left(a, x)Retour à la position la plus petite dans un a satisfaisant ≥[ ]. Si


tous les éléments dans a sont inférieurs à x alors il renverra =len(a) + 1.
• u = bisect.bisect_droite(a, x)Retourner à la position la plus basse dans a satisfait > .[ ]
Si tous les éléments de a sont inférieurs à x, alors cela retournera =len(a) + 1.

Action L'ordre correspondant


On vous donne deux suites de nombres entiers importbisect
A et B,
Chaque suite a N éléments. Votre mission n = int(input())
a = liste(map(int, input().split()))
là đếm xem có bao nhiêu phần tử de b = liste(map(int, input().split()))
la séquence A apparaît dans la séquence B.(N ≤ 105 ) [Link]()
Saisir Sortie dem = 0
forxina:
5 4 u = bisect.bisect_left(b, x)
23145 si u < len(b) et b[u] == x :
dem += 1
12348 imprimer(dem)
importbisect
À l'occasion de la fête de la mi-automne, Nam a reçu de son père
n, x = map(int, input().split())
Maman m'a laissé aller à la fête de la pleine
a = lune.
liste(map(int, input().split()))
[Link]()
Lors de ce festival, les hommes ont activement
#a[i] + participé.
a[j] <= X --> a[j] <= X - a[i]
jouez à des jeux et gagnez X points qua = 0
pour dans la plage(n) :
récompense. Nam utilise X points de récompense j = bisect.bisect_right(a, x - a[i]) - 1
si i < j et j < n :
c'est pour échanger des cadeaux. L'organisation a N articles
qua =max(qua, a[i] + a[j])
cadeaux différents, le plat i a une valeur print(qua)
A[i]point. Avec le nombre de points X, Nam décide

j'ai l'intention d'échanger deux cadeaux différents


la valeur maximale possible mais
ne pas dépasser X. Veuillez déterminer
aide Nam à totaliser la valeur des cadeaux échangés par Nam

c'est quoi.( ≤ 105 )


Entrer Sortie
6 18 15
5 3 10 2 4 9

Enseignant : Lê Thanh Phú 28|T r a n g


PYTHON DE BASE

5. Tas :
- Le heap est un type de structure de données en forme d'arbre, et tous les nœuds de cet arbre sont triés selon un ordre
certainement, cela peut être dans l'ordre croissant ou décroissant.
- Python fournit la bibliothèque heapq pour manipuler des tas : Par défaut, c'est un tas min
• [Link](a) Convertir la liste a en tas
• u = [Link](hp) Retirer l'élément le plus petit de la pile
• [Link](hp, u) Ajouter l'élément u dans le tas
-Exemple :
Exercice Programme
importerheapq
Il y a un tas de gravier numéroté de 1 à
n = int(input())
n, le tas i a a[i] billes. Nous pouvons a = liste(map(int, input().split()))
fusionner deux tas de gravier en unhp = []
le coût est la somme totale des deux forxina:
[Link](hp, x)
cette pile. chiphi = 0
tant que len(hp) > 1 :
Demande : Trouver un moyen de rassembler n tas de cailloux
u = [Link](hp)
devenir un seul tas avec un coût total v =[Link](hp)
ghép nhỏnhất. chiphi += (u + v)
[Link](hp, u+v)
Entrer Sortie
imprimer(chiphi)
3 16
282

6. Dict–Python:
- Si vous avez déjà utilisé un tableau de marqueurs dans Pascal, vous constaterez que c'est une excellente méthode pour aider à……

la présence de certains très rapidement en O(1). Cependant, le tableau de marquage est limité par ses contraintes.
déclaration de tableau.
- En Python, le type Dictionary nous permet de stocker plusieurs éléments, chaque élément étant une paire.[key
: valeur]aider à marquer la valeur declélàvaleur.
Par exemple : c = {1: 'Phu', 'ab': 5} nous aide à indiquer que c[1] = 'Phu' et c['ab'] = 5.
- Ce type de Dict en Python est beaucoup plus flexible et puissant que les tableaux marqués.
- Certaines opérations :
• Initialiser un dictionnaire vide : c = {}
• Ajouter un élément (Marquer) c[1] = ‘Phú’
• Accéder à l'élément x dans le dict [Link](x)
• Supprimer l'élément x du dict supprimer c[x]

• Effacer tout, rendre le dictionnaire vide [Link]()


• Extraire la valeur et supprimer de dict u = [Link](x)
-Exemple d'exercice :

Exercice Programme
Donnez la liste de n entiers positifs qui ont n = int(input())
a = liste(map(int,input().split()))
valeur ne dépassant pas un million. Programmation pour trouver
c = {}
le plus petit entier positif qui n'est pas présentforxina
dans la liste ci-dessus. c[x] = 1
lim=max(a) + 1
Importer Sortie pour i dans la plage(1, limite + 1) :
si [Link](i) == None :

Professeur : Lê Thanh Phú 29|T r a n g


PYTHON DE BASE

5 2 imprimer(i)
pause
53164
n =
Donnez un nombre entier positif n et une séquence int(input())
a = liste(mappent(int,input().split()))
A comprend n nombres entiers positifs. On appelle
c = {}
Certains a[i] ont des amis s'il existe un forxina:
[Link](x) != None :
une position j différente de i et a[j] = a[i]. Veuillezc[x] compter
+= 1 le nombre
sinon
le nombre de chiffres que vous avez dans la séquence ci-dessus. :
c[x] = 1
Importer Sortie dem = 0
9 3 forxinc:
[Link](x) > 1 :
12 5 1 7 10 6 1 1 3 dem += [Link](x)
imprimer(dem)
Les passionnés de recherche peuvent lire davantage : Defaultdict dans la bibliothèque collections. Defaultdict
similaire à dict mais plus rapide et moins sujet aux bogues.

7. Ensemble–Python :
- Un set en Python est un ensemble de valeurs sans ordre. Chaque valeur dans le set est unique, ne peut pas
répétitif et immuable (c'est-à-dire que vous ne pouvez pas modifier la valeur des éléments dans l'ensemble). Cependant, nous avons
ajouter ou supprimer des éléments dans un ensemble.
Quand utiliser un ensemble :
• Lorsqu'il s'agit de gérer un ensemble d'objets distincts, sans duplications.
• Ajouter un élément à l'ensemble rapidement : O(1)
• Supprimer un élément d'un ensemble rapidement : O(1)
• Vérification rapide si un objet appartient à un ensemble stocké : O(1)
Certaines actions
Action Exemple
Initialiser un ensemble : #set vide :
S = ensemble()
- Utiliser des {} ou set()
un ensemble de nombres
S'il y a des éléments en double, ils seront supprimés
S1 = {5,7,8,6}
laisser un seul un ensemble de type chaîne
s2 = {"hello", "hi", "xin chao"}
ensemble avec un type de données mixte
s3 = {"hello", 5, (1,5,7)}
Ajouter un élément [Link](5)
<tên set>.ajouter(élément)
Supprimer l'élément : il est recommandé d'utiliser discard si [Link](x)
Supprimer sans x dans l'ensemble ne provoquera pas d'erreur.

- enlever(x)
- jeter(x)
Xoá toàn bộ set [Link]()
- effacer()
Vérifier si un élément est dans un ensembleifxinS:
:
- dans print('Có')
pas dans

Enseignant : Lê Thanh Phú 30|T r a n g


PYTHON DE BASE
-Exemple :
Exercice Programme
Sắn a reçu quelques messages de n = int(input())
les amis. Une personne peut a = liste(input().split())
s = ensemble()
envoyer beaucoup de messages. Aidez Sắnkq à dresser
= []une liste
livre des amis qui ont envoyé un message, chaque forxina
si non inclus :
personne une seule fois et dans l'ordre chronologique
gian envoyé le plus tôt
[Link](x)
[Link](x)
Entrer Xuất imprimer(' '.joindre(xpourxinkq))
5 mi hue cuc duc
mi hue mi cuc duc

8. Quelques autres astuces :

Exercice Programme
- Cho une liste, prendre les 4 plus petits nombres, 3importheapq

le plus grand a = liste(map(int,input().split()))


imprimer([Link](4, a))
-Complexité : O(nlogn) imprimer([Link](3, a))

Kết quả:
[1, 2, 4, 4]
[9, 8, 8]
importercollections
- Cho une liste, prenez 3 éléments qui sont des nombres

la fois la plus fréquente a = liste(map(int, input().split()))


b = [Link](a)
-Complexité : O(nlogn) print(b.lettres_les_plus_courantes(3))

Résultat :
["(5, 6)","(1, 5)","(2, 4)"]
- Synchro-signal de longueur 3: importitertools
(1, 2, 3) a = [1,2,3]
b = list([Link](a))
(1, 3, 2) forxinb:
(2, 1, 3) imprimer(x)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)
Nombre de combinaisons de 2 parmi 3 : importitertools
(1, 2) a = [1, 2, 3]
b = liste([Link](a, 2))
(1, 3) forxinb:
(2, 1) imprimer(x)
(2, 3)
(3, 1)
(3, 2)

Enseignant : Lê Thanh Phú 31|T r a n g


PYTHON DE BASE

THÈME 9 : ACCÉLÉRER LE PROGRAMME PYTHON


La version Python pour Windows et le logiciel d'évaluation Themis dernier 1.98 est la version Python 3.x.
L'utilisation du mode de traduction rend l'exécution du programme très lente par rapport à d'autres langages comme
Pascal a C++.
- Cependant, nous pouvons accélérer le programme par quelques astuces pour que le programme fonctionne plus rapidement, évitant
au-delà de la limite de temps.
Les exemples suivants ont été réalisés sur un ordinateur ayant la configuration suivante : CPU i3 10105f, DDRAM4 8 Go, SSD 256.
Calculer le temps en utilisant la bibliothèque time de Python.

-Exercice: Lire à partir du fichier d'entrée 106un nombre entier positif dont la valeur ne dépasse pas 109Filtrer la liste des numéros pairs
et enregistrez dans un fichier de sortie, les nombres séparés par des espaces.
1. Utiliser des sous-programmes et des variables locales :
Utiliser des sous-programmes pour rendre le programme plus rapide.
- Utiliser une variable locale pour une vitesse de traitement plus rapide

Programme lent Le programme est plus rapide


importer sys, temps importer sys, temps

[Link] = open("[Link]", "r") défxer() :


[Link] = open("[Link]", "w") [Link] = open("[Link]", "r")
n = int(input()) [Link] = open("[Link]", "w")
a = [] n = int(input())
pour i dans la plage(n): a = []
[Link](int(input())) pour i dans la plage(n):

forxina: [Link](int(input()))
si x %2==0: forxina:
print(x,end=' ') si x % 2 == 0 :

print(x,end=' ')
xuly()
Temps de traitement (approximativement) : 1,19s Temps de traitement : 1,07 s
2. Saisir le tableau plus rapidement :
Lorsque la taille du tableau est connue, il est préférable de la déclarer à l'avance plutôt que d'utiliser l'ajout.

Le programme est plus rapide


importer système, temps

defxuly() :
[Link] = open("[Link]", "r")
[Link] = open("[Link]", "w")
n = int(input())
a = [0]*n
pour dans la plage(n):
a[i] = int(input())
forxina
ifx %2==0:
print(x, fin=' ')
xuly()
Temps de traitement : 1,05 s

Enseignant : Lê Thanh Phú 32|T r a n g


PYTHONCƠ BẢN
3. Lire les données plus rapidement :
-Pour lire les données plus rapidement : Il est conseillé d'[Link] lieu d'utiliser la fonction input()

par défaut. Pour l'utiliser, il suffit d'ajouter au commandesinput = [Link] vous ouvrez le fichier.
Remarque : Lorsque vous ajoutez cette commande, soyez très prudent car elle lira toute la ligne et lira également le caractère de saut de ligne qui est

'\n' à la fin. Si vous lisez un nombre, ce n'est pas grave, si vous lisez une chaîne, vous devez l'enlever en utilisant input().replace('\n', '').
-Pour enregistrer les données plus rapidement : Limitez l'enregistrement multiple : en les combinant en une seule chaîne et en les enregistrant une fois.

Le programme est plus rapide

importsys, temps

defxuly() :
[Link] = open("[Link]", "r")
[Link] = open("[Link]", "w")
input= [Link] Ordre d'ajout pour lire plus vite
n = int(input())
a = [0]*n
pour dans la plage(n) :

a[i] = int(input())
b = []
forxina:
si x % 2 == 0 :
[Link](x)
s = ' '.join(str(x) for x in b) Relier en chaîne pour limiter l'impression des commandes
imprimer(s) plusieurs fois

xuly()
Temps de traitement : 0,38 s

- Avec seulement 3 actions optimisées comme ci-dessus, un programme qui avait un temps d'exécution excessif (1.19s) a été réduit à
dans le temps imparti (0,38s) et a obtenu tous les points de l'exercice.
4. Quelques autres astuces :
- Vous pouvez googler avec le mot-clé : performance de Python
-Pour lire plus de techniques d'optimisation du code Python
5. Ajouter des éléments :

- Vous devez accepter le fait que, aussi optimisé soit-il, cela reste encore trop lent par rapport aux autres langues.
une autre langue. Il se peut donc qu'il soit accepté TLE dans certains exercices lors de la participation aux compétitions HSG.
-D'autres amis qui souhaitent atteindre l'objectif de remporter le premier prix ou de participer à des compétitions plus élevées, le conseil de
Je suis vos amis, donc vous devriez apprendre le C++.

Enseignant : Lê Thanh Phú 33|T r a n g


PYTHON DE BASE

SUJET10 : CRÉER DES TESTS AVEC PYTHON


1. Bibliothèque random:
-Python a une bibliothèque random que vous pouvez utiliser pour générer des nombres aléatoires.
- Certaines opérations :
• [Link](u, v) Tirer un certain nombre entier aléatoire dans l'intervalle [u, v]
• [Link]() Trảvềmột sốthực thuộc đoạn [0, 1]
• [Link](2, 6) retourner le nombre réel appartenant à l'intervalle [2, 6]
• [Link](a) Prenez un élément au hasard de la liste a
• [Link](a, k=3) Créer une liste composée de 3 éléments aléatoires à partir de la liste a
• [Link](a) Mélanger aléatoirement la liste a
• [Link](2) Créer un échantillon aléatoire de 2 bits
•…
2. Modèle de création de test :

importer sys, random, os, shutil

name ='Tenbai'

deftaoinput(itest)
[Link] = open(name + '.inp', 'w')
#décalage de commande pour créer un input

[Link]()

defxuli(itest):
[Link] = open(name + '.inp')
[Link] = open(name + '.out', 'w')
#liste de commandes de devoir

[Link]()
[Link]()

Déplacer 2 fichiers dans le bon dossier test


defdéplacerdossier(itest):
num ='0'* (3-len(str(itest))) +str(itest)
newpath = nom + '/Test' + num
[Link](newpath, ignore_errors=True)
[Link](newpath)
[Link](name +'.inp', newpath +'/' + name +'.inp')
[Link](name +'.out', newpath +'/'+ name +'.out')

# Partie principale : appeler à créer 20 tests

foritestinrange(1,21):
taoinput()
xuli(itest)
déplacer_fichier(itest)

Enseignant : Lê Thanh Phú 34|T r a n g


PYTHON DE BASE
3. Exemple d'illustration :

-Exercice : TONG.*
Écrivez un programme pour calculer la somme de deux entiers a et b lus à partir du fichier [Link].
Les résultats sont enregistrés dans le fichier [Link].
Règle : 60% test a : 0 ≤ a, b ≤ 105 ;40% test có:0 ≤ a, b ≤ 1012
importsys, aléatoire, os, shutil
name ='Tong'

defghiinput(gioihan):
a = [Link](0, gioihan)
b = [Link](0, gioihan)
imprimer(a, b)

deftaoinput(itest):
[Link] = open(name + '.inp', 'w')
si testinferieur <=12 :

ghiinput(10**5)
sinon :
ghiinput(10**12)
[Link]()

defxuli(itest):
[Link] = open(name + '.inp')
[Link] = open(name + '.out', 'w')
a, b = map(int, input().split())
imprimer(a + b)
[Link]()
[Link]()

Déplacer 2 fichiers dans le bon dossier de test


defdéplacerfichier(itest):
num ='0'* (3-len(str(itest))) +str(itest)
nouveauchemin = nom + '/Test' + num
[Link](newpath, ignore_errors=True)
[Link](nouvelle_chemin)
[Link](name + '.inp', newpath + '/' + name + '.inp')
[Link](name + '.out', newpath + '/' + name + '.out')

Partie principale : créer 20 tests


pour i dans la plage(1,21):
taoinput(itest)
xuli(itest)
déplacerfichier(itest)

Enseignant : Lê Thanh Phú 35|T r a n g


PYTHON DE BASE

SUJET 11 : NOTATION PYTHON DANS THEMIS


Themis est le logiciel utilisé officiellement pour les concours HSG actuellement. À ce moment-là
savoir ce morceau, la dernière version est 1.9.8build 2806. cette version a la limitation d'être un interpréteur pour évaluer Python
le logiciel est en erreur faute de bibliothèques manquantes donc lors de l'évaluation de Python cela générera une erreur.

Pour noter Python avec themis, nous devons :


• Étape 1 : Ouvrir le dossier d'installation de themis, généralement en allant C:\Program Files
(x86)\Themis\PYTHON et supprimer tout ce qu'il y a dans ce dossier.
• Bước 2: Sao chép trình dịch khác thay thếvào đây.
Pour compiler Python rapidement de manière similaire à Pascal ou C++, il est conseillé de le remplacer par un compilateur.

PyPy:
• Accéder à la page d'[Link]élécharger la dernière version de PyPy3x :

• Décompressez le fichier téléchargé dans un dossier, copiez tout le contenu de ce dossier.


• Collez dans le dossier C:\Program Files (x86)\Themis\PYTHON
- Remarque : Utiliser PyPy pour la vitesse est comparable à Pascal et C++. Cependant, en réalité, il y a encore des lenteurs.

Lorsque vous créez des sujets pour les examens, tout le monde devrait essayer de coder la solution en C++ et en Python, puis de continuer.
test sur Themis pour déterminer une limite de temps générale appropriée pour l'exercice.
Ne pas séparer ou avoir du temps pour Python.

Enseignant : Lê Thanh Phú 36|T r a n g

Vous aimerez peut-être aussi