Sortir d'un sous programme sous condition en python

Bonjour,

j’ai 2 programme python.
A.py et B.py

dans A.py j’ai ceci :

if "unauthorized" in response_site_id:
	print ("token Nok")
	VariableToken = "Nok"
	
jsonlist_site_id = json.loads(response_site_id)
site_id = jsonlist_site_id['sites'][0]['site_id']
print(site_id)

j’aimerai si ma condition n’est pas vérifier, ne pas exécuter la suite du programme, sans pour autant mettre toute la suite de mon programme sous un else.
j’aimerai par contre basculer sur le programme B.py.

Savez vous comment faire ?

Merci

Il y a quoi dans A.py et B.py

Ne peut tu pas combiner l’ensemble dans un seul et même programme ?

le else: est pourtant une bonne solution non ?

#!/usr/bin/env python3
# coding: utf-8

if "unauthorized" in response_site_id:
	print ("token Nok")
	VariableToken = "Nok"
else :	
    jsonlist_site_id = json.loads(response_site_id)
    site_id = jsonlist_site_id['sites'][0]['site_id']
    print(site_id)

A.py et B.py

Son des sous programme pour me simplifier le tout.

Oui else est une bonne solution, mais se qui me dérange c’est que tout le reste du programme A va être dans la le else…
j’aurai aimé, faire un stop et retourner sous B.py.

Apres ca ne sert peu être à rien et le else est surement la solution.

#!/usr/bin/env python3
# coding: utf-8

from sys import exit

if "unauthorized" in response_site_id:
    print ("token Nok")
    VariableToken = "Nok"
    exit(1)

jsonlist_site_id = json.loads(response_site_id)
site_id = jsonlist_site_id['sites'][0]['site_id']
print(site_id)

Super, Merci, du coup le exit(1) va uniquement, sortir de mon script A.py ou va arrêter tout les script en cours ?

que celui-la !

Merci a toi

Mais de rien c’est un plaisir !
J’aime Python :wink:

J’ai ouvert un autre sujet pour toi :wink:

je vais bien tombé dessus :slight_smile:

Une question,

j’ai 3 fichiers

A.py

import P

P.py

print("Je m'execute")

C.py

import A
import P

Je lance mon script via C.py, dans la logique devrait s’exécuter dans l’ordre : C.py, A.py,P.py,P.py

P.py devrait être lancer 2 fois, une fois via A.py et ensuite une fois via C.py, hors il n’est exécuté qu’une seul fois, par A.py.

Je suis sur qu’il n’est exécuter qu’une fois j’ai mis un print("je m'exécute") dedans lol

M’avez vous compris ? quel est la solution ?

L’usage de import est plutôt pour importer des fonctions

exemple:
a.py prog principale

import b
import c
b.fonction1()
c.fonction2()
...
...
b.fonction1()
print("fin du programme")

b.py

def fonction1():
    print("fonction1")

c.py

def fonction2():
    print("fonction2")

Tu peur donc choisir dans ton code quand executer tel ou tel fonction.

Choisir que exécuter une fonction qui se trouve dans un fichier, oui, mais pas exécuter le fichier lui meme c’est ca ?
et si je veux lancer un sous programme à un instant donnée, comment je fais ?

ben tu met ce que tu appel ton programme dans une fonction :rofl:

def monsousprogramme():
    #sousprogramme
    print('coucou')

et tu le lance depuis ton programme principale

monsousprogramme()

ah ok… tous simplement … par contre les variables seront donc a déclarer global pour êtres exploiter dans tous le programme.

Merci

ben la je t’ai donner la base … mais on peut passer des paramètres et en recevoir en retour sans faire de global

#!/usr/bin/env python3
# coding: utf-8

def monsousprogramme(parametre1,parametre2):
    #sousprogramme
    print(parametre2)
    print(parametre1)
    return("Ok c'est fait")

#et dans ton principale

a="coucou1"
b="coucou2"
c=monsousprogramme(a,b)

print(c)

resultats :

dede3828.py 
coucou2
coucou1
Ok c'est fait

Question suivante ?

:wink: pour le moment je peux avancer, je restructure mon programme avec tes conseils.

Je serait toi je me ferais quel que tuto en vidéo sur python !
Ne t’arrête pas a ce que tu a besoins seulement même si tu comprend pas tout fait un survol global.
Ça te permettra juste de savoir que çà existe puis d’y revenir.

La serie des vidéo Graven est pas mal il y a plein d’épisodes …

APPRENDRE LE PYTHON #1 ? LES BASES & PREREQUIS APPRENDRE LE PYTHON #1 ? LES BASES & PREREQUIS - YouTube
#2
#3
#4
#5
APPRENDRE LE PYTHON #6 ? LES FONCTIONS APPRENDRE LE PYTHON #6 ? LES FONCTIONS - YouTube

APPRENDRE LE PYTHON #10 ? LES FICHIERS APPRENDRE LE PYTHON #10 ? LES FICHIERS - YouTube

Merci de tous tes conseils, je vai regarder tt ca.

Ma question suivante est la…

J’ai une fonction sans paramètre.
Et dans cette meme fonction je veux faire changer l’état d’une variable de mon programme.

Ca n’a pas l’aire de fonctionner…

prenom = "yoann"

def fonction():
 global prenom
   .
   .
prénom ="marina"

J’ai l’impression que la fonction ne change pas la variable prénom…