Pages : 1
#1 Le 12/06/2018, à 06:43
- ar barzh paour
[Résolu] python-format-08
bonjour à tous
toujours en découverte de python je tombe sur une erreur dont je ne trouve pas la solution dans mon bouquin et pourtant ça parait simple
l'explication : 010 n'est pas une expression valide , il faut faire autrement
# 10 fonctionne
print("valeur : {}".format(10))
valeur : 10
# 010 ne fonctionne pas
print("valeur : {}".format(010))
File "<stdin>", line 1
print(" valeur : {}".format(010))
^
SyntaxError: invalid token
Dernière modification par ar barzh paour (Le 12/06/2018, à 11:05)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
#2 Le 12/06/2018, à 06:53
- pingouinux
Re : [Résolu] python-format-08
Bonjour,
Tu peux remplacer
print("valeur : {}".format(010))
par
print("valeur : {}".format("010"))
ou
print("valeur : {}".format(int("010")))
ou, si c'est de l'octal
print("valeur : {}".format(int("010",8)))
Hors ligne
#3 Le 12/06/2018, à 07:04
- ar barzh paour
Re : [Résolu] python-format-08
oui , bien sur , mais pour faire très très simple
on demande dans un programme :
entrer l'heure :
je réponds 08
j'utilise la réponse dans le format ci dessus et on tombe sur une erreur
Dernière modification par ar barzh paour (Le 12/06/2018, à 07:04)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
#4 Le 12/06/2018, à 07:18
- pingouinux
Re : [Résolu] python-format-08
Ta réponse au programme est du texte, qu'il faut convertir en entier.
Hors ligne
#5 Le 12/06/2018, à 08:11
- ar barzh paour
Re : [Résolu] python-format-08
j'ai l'impression qu'il faut que je re-étudie la façon de saisir les réponses
a=08
File "<stdin>", line 1
a=08
^
SyntaxError: invalid token
en plus développer , mais je ne sais pas si je suis plus clair dans mon questionnement
je définis une class
class Time(object):
"définition d'objets temporels"
def __init__(self,hh=12,mm=0,ss=0): # définition de la méthode constructeur
self.heure =hh
self.minute =mm
self.seconde =ss
def affiche_heure(self): # définition d'une méthode .affiche_heure()
print("{}:{}:{}".format(self.heure, self.minute, self.seconde))
# je voudrais bien l'utiliser simplement
Time(8).affiche_heure() # affiche bien 8:0:0
donc en fait ma question devient plus précisement
comment faire pour que
class Time(object):
"définition d'objets temporels"
def __init__(self,hh=12,mm=0,ss=0): # définition de la méthode constructeur
self.heure =hh
self.minute =mm
self.seconde =ss
def affiche_heure(self): # définition d'une méthode .affiche_heure()
print("{}:{}:{}".format(self.heure, self.minute, self.seconde))
Time(08).affiche_heure()
ne génère pas d'erreur
python3 <nom du programme>
File "nom_du programme", line 9
Time(08).affiche_heure()
^
SyntaxError: invalid token
( en dehors de mettre Time("08".affiche_heure() qui fonctionnera )
il doit falloir effectuer un gestion d'erreur , mais je butte déjà sur a=08 qui génère une erreur
Dernière modification par ar barzh paour (Le 12/06/2018, à 08:23)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
#6 Le 12/06/2018, à 08:22
- ar barzh paour
Re : [Résolu] python-format-08
ce n'est peut-être pas possible
j'entrevois une solution , au lieu d'utiliser directement Time(08)
peut-être quelque chose comme
h=input ("donner l'heure :" )
Time(h).affiche_heure
mais je trouve ça bizarre
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
#7 Le 12/06/2018, à 08:25
- pingouinux
Re : [Résolu] python-format-08
C'est normal, comme te l'indique le message d'erreur, 08 n'est pas valide.
Comment effectues-tu la lecture de cette valeur ?
Hors ligne
#8 Le 12/06/2018, à 09:14
- ar barzh paour
Re : [Résolu] python-format-08
pour l'instant je ne fais que découvrir ,
je suis (du verbe suivre) un bouquin et comme je décris en post ci-dessus , on définit un classe Time(),
une fois cette classe définie , on devrait pouvoir l'utiliser sans avoir à se préoccuper des mauvaises saisies
et taper comme je l'expliquais Time(08) , pourquoi pas , à priori non , je me posais la question ....
a=08 ==> invalid token , il va falloir que je m'y fasse
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
#9 Le 12/06/2018, à 09:23
- pingouinux
Re : [Résolu] python-format-08
python3 <nom du programme> File "nom_du programme", line 9 Time(08).affiche_heure() ^ SyntaxError: invalid token
Ce n'est pas une erreur de saisie, mais une erreur de syntaxe dans le programme. Ce dernier ne s'exécute donc pas, et tu ne peux pas y tester d'éventuelles erreurs.
Si tu as un exemple avec une erreur de saisie, il sera possible de tester cette erreur dans le programme.
Hors ligne
#10 Le 12/06/2018, à 10:27
- ar barzh paour
Re : [Résolu] python-format-08
j'ai effectivement trouvé la réponse l'explication en lisant syntaxe et sémantique python
Entiers littéraux
integer ::= decinteger | bininteger | octinteger | hexinteger
decinteger ::= nonzerodigit (["_"] digit)* | "0"+ (["_"] "0")*
bininteger ::= "0" ("b" | "B") (["_"] bindigit)+
octinteger ::= "0" ("o" | "O") (["_"] octdigit)+
hexinteger ::= "0" ("x" | "X") (["_"] hexdigit)+
nonzerodigit ::= "1"..."9"
digit ::= "0"..."9"
bindigit ::= "0" | "1"
octdigit ::= "0"..."7"
hexdigit ::= digit | "a"..."f" | "A"..."F"
d'après ce que je comprends , 0 doit être suivi de b ou o ou x pour obtenir un integer
08 n'est donc pas valide dans l'expression a=08
par contre a=08. est accepté ( mais c'est alors un flottant)
l'erreur (de syntaxe) est donc de vouloir utiliser 0 suivit d'un autre chiffre et sans point , j'ai compris c'est interdit ,
Dernière modification par ar barzh paour (Le 12/06/2018, à 11:09)
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : ThinkPad P50 I7-6820HQ, 16G0 Ram Ubuntu 22.04 Ubuntu 24.04 , W10-PRO( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
Pages : 1