Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 03-07-2015 18:48:27

Tyrpio
Membre
Distrib. : Debian Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : XFCE
Inscription : 04-05-2015

[Résolu]Prendre des vacances-Python ?

Mon titre est étrange mais je ne savais pas vraiment comment formuler ce titre. Voici mon problème et oui toujours Python smile

0PTWAlfo

Je ne comprends pas le message d'erreur, une idée ? Quel est mon erreur ?
Les instructions commencent à partir de la ligne 12 (avec def)

Dernière modification par Tyrpio (04-07-2015 16:05:13)


Quand vous ne voyez pas le service, c’est que vous êtes le produit !

Hors ligne

#2 03-07-2015 19:05:19

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : [Résolu]Prendre des vacances-Python ?

Ben, location_voiture_cout(1), ça renvoie quoi d'après toi ?

Vu que 1 < 7 et que 1 < 3…

captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#3 03-07-2015 19:40:49

Tyrpio
Membre
Distrib. : Debian Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : XFCE
Inscription : 04-05-2015

Re : [Résolu]Prendre des vacances-Python ?

captnfab a écrit :

Ben, location_voiture_cout(1), ça renvoie quoi d'après toi ?

Vu que 1 < 7 et que 1 < 3…



Cela renvoie une erreur de syntax d'après moi parce que ce n'est pas le bon paramètre, j'ai du mal comprendre mais l'argument c'est ville donc le paramètre c'est ville ?


Quand vous ne voyez pas le service, c’est que vous êtes le produit !

Hors ligne

#4 03-07-2015 20:06:06

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : [Résolu]Prendre des vacances-Python ?

Bah, non, regarde ton programme ligne 12. Comment s'appelle l'argument ? Que se passe-t-il s'il vaut 1.

captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#5 03-07-2015 20:48:50

Tyrpio
Membre
Distrib. : Debian Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : XFCE
Inscription : 04-05-2015

Re : [Résolu]Prendre des vacances-Python ?

captnfab a écrit :

Bah, non, regarde ton programme ligne 12. Comment s'appelle l'argument ? Que se passe-t-il s'il vaut 1.


L'argument s'appelle ville, non ? Si j'ai bien compris j'ai suppr ville et j'ai mis 1, ce qui me donne une erreur de syntaxe. Voici ce que j'ai fait en image :

GJvAiBTc


Quand vous ne voyez pas le service, c’est que vous êtes le produit !

Hors ligne

#6 03-07-2015 20:51:43

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : [Résolu]Prendre des vacances-Python ?


Dans ta première capture, il s'appelait « jours. »

Et si jours vaut 1 (dans ta tête, faut pas le remplacer en vrai sinon ça ne peut pas marcher…) alors, jours n'est pas plus grand que 7, jours n'est pas plus grand que 3, donc… rien, donc tu te manges un None, ce qui n'est que mérité smile

captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#7 03-07-2015 21:26:42

bendia
Admin stagiaire
Distrib. : Jessie
Noyau : 3.16.0-4-amd64
(G)UI : Gnome + XFCE + Console
Inscription : 20-03-2012
Site Web

Re : [Résolu]Prendre des vacances-Python ?

Salut

Ton erreur n'est pas un problème de Python, c'est une erreur d'algorithme. D'ailleurs, Python ne lève aucune exception, juste, il te revoit la valeur "rien", alors que tu attends un nombre Sans te prendre la tête avec les fonctions, si tu exécutes ce petit script, que verra -tu comme sortie à l'écran ?

jours=1
if jours>=7:
    print "1 est supérieur ou égal à 7"
elif jours>=3:
    print "1 est supérieur ou égal à 3"


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
file-Re06858991f6f328b4907296ac5cea283

Hors ligne

#8 03-07-2015 22:50:30

Tyrpio
Membre
Distrib. : Debian Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : XFCE
Inscription : 04-05-2015

Re : [Résolu]Prendre des vacances-Python ?

bendia a écrit :

Salut

Ton erreur n'est pas un problème de Python, c'est une erreur d'algorithme. D'ailleurs, Python ne lève aucune exception, juste, il te revoit la valeur "rien", alors que tu attends un nombre Sans te prendre la tête avec les fonctions, si tu exécutes ce petit script, que verra -tu comme sortie à l'écran ?

jours=1
if jours>=7:
    print "1 est supérieur ou égal à 7"
elif jours>=3:
    print "1 est supérieur ou égal à 3"



Quand j'exécute ce code dans mon terminal, je vois cela :
SyntaxError: Non-ASCII character '\xc3' in file /home/yop/Bureau/appli/p.py on line 4, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

Mais oui je suis complètement à côté de la plaque.


Quand vous ne voyez pas le service, c’est que vous êtes le produit !

Hors ligne

#9 03-07-2015 22:59:22

bendia
Admin stagiaire
Distrib. : Jessie
Noyau : 3.16.0-4-amd64
(G)UI : Gnome + XFCE + Console
Inscription : 20-03-2012
Site Web

Re : [Résolu]Prendre des vacances-Python ?

Non, c'est ma faute, il manque le shebang, et là, c'est un problème python hmm

Essayes comme ça sinon

#!/usr/bin/env python
# -*- coding: utf-8 -*-
jours=1
if jours>=7:
    print "1 est supérieur ou égal à 7"
elif jours>=3:
    print "1 est supérieur ou égal à 3"



Ceci dit, rien que lire les chaines que j'ai mises dans les print devrait te mettre sur la voie sans avoir besoin d'exécuter le code big_smile


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
file-Re06858991f6f328b4907296ac5cea283

Hors ligne

#10 03-07-2015 23:10:45

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : [Résolu]Prendre des vacances-Python ?

Petite digression, je ne vois pas à qui servent ces « print » dans la fonction
location_voitiure_cout. Aussi, c'est très moche de mettre des entrées/sorties
dans une fonction qui renvoie un résultat.

La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#11 03-07-2015 23:18:43

Tyrpio
Membre
Distrib. : Debian Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : XFCE
Inscription : 04-05-2015

Re : [Résolu]Prendre des vacances-Python ?

enicar a écrit :

Petite digression, je ne vois pas à qui servent ces « print » dans la fonction
location_voitiure_cout. Aussi, c'est très moche de mettre des entrées/sorties
dans une fonction qui renvoie un résultat.



C'est plutôt return à mon avis ? Et oui je ne devrais pas mettre de print mais je ne vois pas vraiment pourquoi parce qu'on doit bien afficher quelque chose, non ?

Dernière modification par Tyrpio (03-07-2015 23:21:45)


Quand vous ne voyez pas le service, c’est que vous êtes le produit !

Hors ligne

#12 03-07-2015 23:19:06

bendia
Admin stagiaire
Distrib. : Jessie
Noyau : 3.16.0-4-amd64
(G)UI : Gnome + XFCE + Console
Inscription : 20-03-2012
Site Web

Re : [Résolu]Prendre des vacances-Python ?

Pour ma part, j'utilise ce genre de print pour comprendre pourquoi ça ne fonctionne pas comme je veux wink Dans le cas présent Tyrpio, le fait de mettre des print dans des conditions et qu'aucun ne s'exécute devrait aussi te mettre la puce à l'oreille.

Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.
file-Re06858991f6f328b4907296ac5cea283

Hors ligne

#13 03-07-2015 23:23:22

Tyrpio
Membre
Distrib. : Debian Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : XFCE
Inscription : 04-05-2015

Re : [Résolu]Prendre des vacances-Python ?

bendia a écrit :

Pour ma part, j'utilise ce genre de print pour comprendre pourquoi ça ne fonctionne pas comme je veux wink Dans le cas présent Tyrpio, le fait de mettre des print dans des conditions et qu'aucun ne s'exécute devrait aussi te mettre la puce à l'oreille.


Oui exacte, ça me met la puce à l'oreille ahah.


Quand vous ne voyez pas le service, c’est que vous êtes le produit !

Hors ligne

#14 04-07-2015 11:39:47

enicar
Membre
Lieu : Grenoble
Distrib. : debian/sid
Noyau : Linux 4.8.10
(G)UI : openbox
Inscription : 26-08-2010

Re : [Résolu]Prendre des vacances-Python ?

je te propose une petite expérience avec ce script qui devrait te
permmettre de te rendre compte de ce qui se passe :


#! /usr/bin/python3
# -*- coding: UTF-8 -*-


def location_voiture_cout(jours):
    total = 40*jours
    if jours >= 7:
        return total
    elif jours >= 3:
        return total


jours=1
ret=location_voiture_cout(jours)
print("jours={0}, location_voiture_cout({0})={1}".format(jours,ret))
jours=3
ret=location_voiture_cout(jours)
print("jours={0}, location_voiture_cout({0})={1}".format(jours,ret))
jours=7
ret=location_voiture_cout(jours)
print("jours={0}, location_voiture_cout({0})={1}".format(jours,ret))
 



jours=1, location_voiture_cout(1)=None
jours=3, location_voiture_cout(3)=120
jours=7, location_voiture_cout(7)=280
 


J'ai supprimé les « print » dans la fonction « location_voiture_cout ».
On appelle la fonction pour trois valeurs différentes de jours : 1, 3,
7. On affiche la valeur de retour de la fonction pour chacune des
valeurs. On voit clairement que pour « jours=1 », il y a un problème.
La fonction ne retourne rien ! Donc, il faut que tu modifies ta
fonction pour qu'elle retourne une valeur quelle que soit la valeur
de jours, yapluska wink


La machine, c'est dépassé ! On va tout remplacer par des humains big_smile

Hors ligne

#15 04-07-2015 15:34:48

Tyrpio
Membre
Distrib. : Debian Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : XFCE
Inscription : 04-05-2015

Re : [Résolu]Prendre des vacances-Python ?

Je ne comprends pas cette partie de ton script :

jours=1
ret=location_voiture_cout(jours)
print("jours={0}, location_voiture_cout({0})={1}".format(jours,ret))
jours=3
ret=location_voiture_cout(jours)
print("jours={0}, location_voiture_cout({0})={1}".format(jours,ret))
jours=7
ret=location_voiture_cout(jours)
print("jours={0}, location_voiture_cout({0})={1}".format(jours,ret))



Enfin je ne vois pas pourquoi faire ça.

Sinon je cherche toujours à résoudre mon problème, ça prend du temps.

Dernière modification par Tyrpio (04-07-2015 15:35:33)


Quand vous ne voyez pas le service, c’est que vous êtes le produit !

Hors ligne

#16 04-07-2015 15:37:29

Tyrpio
Membre
Distrib. : Debian Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : XFCE
Inscription : 04-05-2015

Re : [Résolu]Prendre des vacances-Python ?

captnfab a écrit :


Dans ta première capture, il s'appelait « jours. »


Oui erreur, c'est bien "jours" !


Quand vous ne voyez pas le service, c’est que vous êtes le produit !

Hors ligne

#17 04-07-2015 15:38:28

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : [Résolu]Prendre des vacances-Python ?

Tu peux indiquer plus précisément ce que tu ne comprends pas ? smile

La formulation d'enicar permet de bien séparer l'aspect affichage de l'aspect calcul. Quand ton programme fait des calculs, tu ne veux pas qu'il affiche tout ce qu'il fait. Par contre, tu peux pouvoir réutiliser le résultat des calculs pour faire d'autres calculs. C'est pour ça qu'a priori, tes fonctions ne doivent rien afficher, mais que si tu veux afficher, ça reste simple à faire en faisant comme enicar le propose smile

captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#18 04-07-2015 15:48:10

Tyrpio
Membre
Distrib. : Debian Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : XFCE
Inscription : 04-05-2015

Re : [Résolu]Prendre des vacances-Python ?

captnfab a écrit :

Tu peux indiquer plus précisément ce que tu ne comprends pas ? smile

La formulation d'enicar permet de bien séparer l'aspect affichage de l'aspect calcul. Quand ton programme fait des calculs, tu ne veux pas qu'il affiche tout ce qu'il fait. Par contre, tu peux pouvoir réutiliser le résultat des calculs pour faire d'autres calculs. C'est pour ça qu'a priori, tes fonctions ne doivent rien afficher, mais que si tu veux afficher, ça reste simple à faire en faisant comme enicar le propose smile



Oui il faut que j'apprenne le format mais on m'avais déconseillé de l'apprendre parce qu'il n'est pas compatible avec les anciennes versions de Python même si il est un peu plus efficace, mais je comprends en gros le code avec ta phrase.

En suivant les instructions de la capture, mon script donne ça :


def location_voiture_cout(jours):
    reduction = (40 * jours) - 50
    if jours >= 7:
        reduction += 7
    elif jours >= 3:
        reduction += 3
    return reduction



Je vous redonne les instructions :
1) Définissez une fonction appelée location_voiture_cout avec un argument appelé jours.

2) Calculez le prix de la location de la voiture : Le prix de la location journalière est de 40 euros. Si vous louez une voiture 7 jours ou plus, vous obtenez une réduction de 50 euros sur le total. Sinon, si vous louez une voiture 3 jours ou plus, vous obtenez une réduction de 20 euros sur le total. Vous ne pouvez obtenir les deux réductions simultanément ci-dessus.

Retournez le prix.

Dernière modification par Tyrpio (04-07-2015 15:48:37)


Quand vous ne voyez pas le service, c’est que vous êtes le produit !

Hors ligne

#19 04-07-2015 15:50:16

Tyrpio
Membre
Distrib. : Debian Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : XFCE
Inscription : 04-05-2015

Re : [Résolu]Prendre des vacances-Python ?

Mais j'ai cette erreur : Oups, merci de réessayer. Il semble que location_voiture_cout retourne -10 au lieu du montant (40) pour 1 jours.
Dans mon script je ne comprends pas le (+=) mais je me suis inspiré de l'expemple que codecademy avez donné.

C'était ça :


def fin_jeu(score):
    tickets = 10 * score
    if score >= 10:
        tickets += 50
    elif score >= 7:
        tickets += 20
    return tickets

Dernière modification par Tyrpio (04-07-2015 15:57:14)


Quand vous ne voyez pas le service, c’est que vous êtes le produit !

Hors ligne

#20 04-07-2015 15:55:04

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : [Résolu]Prendre des vacances-Python ?

Oui, ta fonction ne fait pas ce que la consigne demande smile

En pseudo-code, j'écrirais ton truc comme ça :

Fonction calcul_cout(jours):
  cout_initial ? 40*jours

  si jours >= 7:
    reduction ? 50
  sinon, si jours >= 3:
    reduction ? 20
  sinon:
    reduction ? 0

  Renvoyer cout_initial - reduction
 


captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#21 04-07-2015 15:58:21

Tyrpio
Membre
Distrib. : Debian Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : XFCE
Inscription : 04-05-2015

Re : [Résolu]Prendre des vacances-Python ?

captnfab a écrit :


Fonction calcul_cout(jours):
  cout_initial ? 40*jours

  si jours >= 7:
    reduction ? 50
  sinon, si jours >= 3:
    reduction ? 20
  sinon:
    reduction ? 0

  Renvoyer cout_initial - reduction
 



Je vais essayé de reformuler cela en Python, merci smile


Quand vous ne voyez pas le service, c’est que vous êtes le produit !

Hors ligne

#22 04-07-2015 16:03:55

Tyrpio
Membre
Distrib. : Debian Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : XFCE
Inscription : 04-05-2015

Re : [Résolu]Prendre des vacances-Python ?

Réussi, ce n'est qu'une question de logique et d'algo; pas de Python.

Quand vous ne voyez pas le service, c’est que vous êtes le produit !

Hors ligne

#23 04-07-2015 16:04:51

Tyrpio
Membre
Distrib. : Debian Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : XFCE
Inscription : 04-05-2015

Re : [Résolu]Prendre des vacances-Python ?

Le code donne ça :


def location_voiture_cout(jours):
    cout_initial = 40 * jours
    if jours >= 7:
        reduction = 50
    elif jours >= 3:
        reduction = 20
    else:
        reduction = 0
    return cout_initial - reduction


Quand vous ne voyez pas le service, c’est que vous êtes le produit !

Hors ligne

#24 04-07-2015 16:06:20

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : [Résolu]Prendre des vacances-Python ?

Exact smile

En matière de programmation, mon adage préféré est:

Nicolas Boileau-Despréaux a écrit :

Ce qui se conçoit bien s'énonce clairement.


captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#25 04-07-2015 16:08:29

Ir0nsh007er
Membre
Lieu : Montréal, PQ, Canada
Distrib. : Debian GNU/Linux 9.0 Stretch/Sid
Noyau : 4.7.0-1-amd64 #1 SMP Debian 4.7.5-1 (2016-09-26) x
(G)UI : Xfce 4.12.3
Inscription : 30-04-2015
Site Web

Re : [Résolu]Prendre des vacances-Python ?

Parlant de vacances, sans bernaclé ce post;

Venez prendre vos vacances au Québec du 17 sept au 29 sept 2015 pratiquez votre python pour une bonne cause Semaine québécoise de l'informatique libre 2015 — Appel de participation

Bon je sors .... big_smile

Moé avec mon P4: Intel(R) Pentium(R) 4 CPU 3.40GHz, Mémoire: 6G DDR2, Carte Graphique: NVIDIA Corp GT216 [GeForce GT 220] (rev a2)
Ir0nsh007er (49 72 30 6E 73 68 30 30 37 65 72).  Mon CV
Noob un jour, noob toujours cool
01001001 01110010 00110000 01101110 01110011 01101000 00110000 00110000 00110111 01100101 01110010

Hors ligne

Pied de page des forums