Je suis bloque sur un code

Fermé
diom78 Messages postés 2 Date d'inscription mercredi 4 mai 2022 Statut Membre Dernière intervention 4 mai 2022 - Modifié le 10 mai 2022 à 17:56
mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 - 10 mai 2022 à 18:07
Bonjour,

Il vous faut maintenant écrire un programme qui lit en entrée :
  • l'heure de lever du soleil E1515 ;
  • l'heure du coucher du soleil E1515 ;
  • l'heure de lever du soleil E666 ;
  • l'heure du coucher du soleil E666 ;


... et qui utilise la fonction
soleil_leve
pour afficher ligne par ligne chacune des heures de la journée, depuis 0 jusqu'à 23, suivies d'une espace et d'une astérisque s'il fait nuit à cette heure.

Attention, il ne fera nuit que si
E1515
et
E666
sont tous deux couchés.

Et voici le code que j'ai mis :

def soleil_leve(lever, coucher, actuelle):
    actuelle >= 0 and actuelle < 23
    leveE1515 = int(input())
    coucherE1515 = int(input())
    leveE666 = int(input())
    coucherE666 = int(input())
    for i in range (24):
        if (leveE1515 <= i < coucherE1515 and leveE666 <= i < coucherE666):
            print(i)
        else:
            print(i, "*")
soleil_leve(1, 2, 3)


Voici le résultat que ça a donné

L'appel à votre programme sur l'input "6↵18↵10↵21↵" a renvoyé:
0 *
1 *
2 *
3 *
4 *
5 *
6 *
7 *
8 *
9 *
10
11
12
13
14
15
16
17
18 *
19 *
20 *
21 *
22 *
23 *

Le résultat attendu était :
0 *
1 *
2 *
3 *
4 *
5 *
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 *
22 *
23 *

fail L'appel à votre programme sur l'input "15↵8↵6↵17↵" a renvoyé:
0 *
1 *
2 *
3 *
4 *
5 *
6 *
7 *
8 *
9 *
10 *
11 *
12 *
13 *
14 *
15 *
16 *
17 *
18 *
19 *
20 *
21 *
22 *
23 *

Le résultat attendu était :
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

fail L'appel à votre programme sur l'input "15↵8↵10↵13↵" a renvoyé:
0 *
1 *
2 *
3 *
4 *
5 *
6 *
7 *
8 *
9 *
10 *
11 *
12 *
13 *
14 *
15 *
16 *
17 *
18 *
19 *
20 *
21 *
22 *
23 *

Le résultat attendu était :
0
1
2
3
4
5
6
7
8 *
9 *
10
11
12
13 *
14 *
15
16
17
18
19
20
21
22
23


Comment dois-je procéder ?
A voir également:

4 réponses

jee pee Messages postés 40500 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 29 novembre 2024 9 437
4 mai 2022 à 17:14
Bonjour,

Tu as déjà oublié les consignes pour afficher le code source.

Ton code n'a aucun sens. Tu as une fonction qui reçoit 3 valeurs qui ne sont pas utilisées. La ligne 2 est un sommet de ligne inutile qui ne fait rien et ne sert à rien.

Si tu as une fonction, c'est pour recevoir les 4 paramétres des heures lever et coucher des 2 soleils, et de faire la saisie dans le corps du programme, il serait bien de mettre des textes sur la question de l'input

def soleil_leve(l1, c1, l2, c2): 
 ....

leverE1515 = int(input())
coucherE1515 = int(input())
leverE666 = int(input())
coucherE666 = int(input()) 
soleil_leve(leverE1515, coucherE1515 , leverE666, coucherE666): 
0
diom78 Messages postés 2 Date d'inscription mercredi 4 mai 2022 Statut Membre Dernière intervention 4 mai 2022
4 mai 2022 à 17:26
en gros lorsque je mais 4 valeur au niveau de la fonction sa ne correspond et j ai voulu essaie avec ses 3 valeur
0
jee pee Messages postés 40500 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 29 novembre 2024 9 437
4 mai 2022 à 18:53
3 valeurs qui ne servent à rien, tu as mis 1,2,3 dedans. Il faut partir de la question, tu saisis 4 valeurs, tu les passes à la fonction pour quelle effectue le traitement demandé
0
yg_be Messages postés 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024 Ambassadeur 1 556
4 mai 2022 à 18:59
0
jee pee Messages postés 40500 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 29 novembre 2024 9 437
4 mai 2022 à 19:49
En un mois le code n'a pas changé.
0
mamiemando Messages postés 33407 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 novembre 2024 7 806
Modifié le 10 mai 2022 à 18:07
Bonjour,

Il faut réfléchir au design de ton code. Idéalement :
  • Il te faut une fonction (disons
    saisie
    ) qui permet de saisir les heures
    leveE1515
    ,
    coucherE1515
    ,
    leveE666
    ,
    coucherE66
    .

def saisie():
    leveE1515 = int(input())
    coucherE1515 = int(input())
    leveE666 = int(input())
    coucherE666 = int(input())
    return (leveE1515, coucherE1515, leveE666, coucherE666)
  • Il te faut une seconde fonction (appelée
    soleil_leve
    ) qui prend en paramètre
    leveE1515
    ,
    coucherE1515
    ,
    leveE666
    ,
    coucherE66
    qui itère sur les heures de la journée, et qui affiche la chaîne attendue en fonction des quatre valeurs passées en paramètres.

def soleil_leve(leveE1515, coucherE1515, leveE666, coucherE666):
    for actuelle in range(24):
        # ...
  • Et enfin, le programme principal, qui fait la glu :

(leveE1515, coucherE1515, leveE666, coucherE666) = saisie()
soleil_leve(leveE1515, coucherE1515, leveE666, coucherE666)

(ou plus court, avec l'opérateur splice) :
soleil_leve(*saisie())


Bonne chance
0