[PYTHON] J'ai une QUESTION SUR PYTHON
Le 09 août 2023 à 18:39:24 :
Le 09 août 2023 à 18:38:29 :
Le 09 août 2023 à 18:37:38 :
Le 09 août 2023 à 18:36:05 :
Le 09 août 2023 à 18:34:27 :
> Le 09 août 2023 à 18:33:35 :
>> Le 09 août 2023 à 18:33:19 :
> >> Le 09 août 2023 à 18:30:41 :
> > >> Le 09 août 2023 à 18:30:03 :
> > > >> Le 09 août 2023 à 18:28:20 :
> > > > >> Le 09 août 2023 à 18:26:22 :
> > > > > >> Le 09 août 2023 à 18:20:08 :
> > > > > > >par contre pourquoi ça a pas converti en nombre entier ?
> > > > > > >
> > > > > > > ça aurait du le faire non ? j'ai ça dans le code : nombre_a_gauche = int(nombre_a_gauche)
> > > > > > > nombre_a_droite = int(nombre_a_droite)
> > > > > >
> > > > > > de mémoire, int ça marche pour la conversion string(phrase) => entier
> > > > > >
> > > > > > là t'as entré un décimal (un float, donc)
> > > > > > et je sens que t'as mis des virgules à la place des points, mais jsp vu que la photo est en basse qualité.
> > > > >
> > > > > > Le 09 août 2023 à 18:26:37 :
> > > > > >> Le 09 août 2023 à 18:20:08 :
> > > > > > >par contre pourquoi ça a pas converti en nombre entier ?
> > > > > > >
> > > > > > > ça aurait du le faire non ? j'ai ça dans le code : nombre_a_gauche = int(nombre_a_gauche)
> > > > > > > nombre_a_droite = int(nombre_a_droite)
> > > > > >
> > > > > > Mais regarde ton code, t'as littéralement la réponse de pourquoi ça fait ça l. 8
> > > > >
> > > > > ça change rien , ou .
> > > > >
> > > > > dans l'exercice on me dit que je peux convertir en nombre entier si c pas en nombre entier
> > > > >
> > > > > <spoil>4. Vérifier les deux nombres entiers
> > > > > Vérifiez que les deux variables nombre_a_gauche et nombre_a_droite sont bien des nombres entiers à l'aide de la fonction isnumeric().
> > > > > Si l'une ou les deux ne sont pas des entiers, affichez un message d'erreur correspondant et quittez le programme. Affichez le message suivant : Erreur: les deux nombres doivent être des nombres entiers (Faite un copier-coller pour éviter que le test ne passe pas)
> > > > > Sinon convertissez les en entier à l'aide de la fonction int().</spoil>
> > > > >
> > > > > du coup j'iamerai savoir pq ça met toujours une erreur ?
> > > >
> > > > Tu peux pas implémenter à la fois un message d'erreur et un arrêt de programme en cas de non-entier puis une conversion des chaînes de caractères en entier, il faut choisir. Là t'auras systématiquement ton message d'erreur.
> > >
> > > donc si jenlève le msg d'erreur et que je laisse le int() ça va convertir?
> >
> > Oui, si t'enlèves tout le bloc. Mais je crois que quand ils disent "sinon convertir en entier avec int()" c'est convertir la chaîne de caractères en un entier si elle représente bien un entier.
>
Enlève ta boucle "if" entièrement, c'est-à-dire avec l'énonciation de la condition (if xxx…
La chaîne de caractères doit d'abord être convertie en chiffre, et ensuite seulement elle peut être convertie en entier.
Autrement dit, tu dois utiliser un float() puis un int().
ouais mais dans ma consigne on me dit de directement convertir en int...
le programme "doit" accepter des décimales aussi ?
Le 09 août 2023 à 18:40:43 :
Le 09 août 2023 à 18:39:24 :
Le 09 août 2023 à 18:38:29 :
Le 09 août 2023 à 18:37:38 :
Le 09 août 2023 à 18:36:05 :
> Le 09 août 2023 à 18:34:27 :
>> Le 09 août 2023 à 18:33:35 :
> >> Le 09 août 2023 à 18:33:19 :
> > >> Le 09 août 2023 à 18:30:41 :
> > > >> Le 09 août 2023 à 18:30:03 :
> > > > >> Le 09 août 2023 à 18:28:20 :
> > > > > >> Le 09 août 2023 à 18:26:22 :
> > > > > > >> Le 09 août 2023 à 18:20:08 :
> > > > > > > >par contre pourquoi ça a pas converti en nombre entier ?
> > > > > > > >
> > > > > > > > ça aurait du le faire non ? j'ai ça dans le code : nombre_a_gauche = int(nombre_a_gauche)
> > > > > > > > nombre_a_droite = int(nombre_a_droite)
> > > > > > >
> > > > > > > de mémoire, int ça marche pour la conversion string(phrase) => entier
> > > > > > >
> > > > > > > là t'as entré un décimal (un float, donc)
> > > > > > > et je sens que t'as mis des virgules à la place des points, mais jsp vu que la photo est en basse qualité.
> > > > > >
> > > > > > > Le 09 août 2023 à 18:26:37 :
> > > > > > >> Le 09 août 2023 à 18:20:08 :
> > > > > > > >par contre pourquoi ça a pas converti en nombre entier ?
> > > > > > > >
> > > > > > > > ça aurait du le faire non ? j'ai ça dans le code : nombre_a_gauche = int(nombre_a_gauche)
> > > > > > > > nombre_a_droite = int(nombre_a_droite)
> > > > > > >
> > > > > > > Mais regarde ton code, t'as littéralement la réponse de pourquoi ça fait ça l. 8
> > > > > >
> > > > > > ça change rien , ou .
> > > > > >
> > > > > > dans l'exercice on me dit que je peux convertir en nombre entier si c pas en nombre entier
> > > > > >
> > > > > > <spoil>4. Vérifier les deux nombres entiers
> > > > > > Vérifiez que les deux variables nombre_a_gauche et nombre_a_droite sont bien des nombres entiers à l'aide de la fonction isnumeric().
> > > > > > Si l'une ou les deux ne sont pas des entiers, affichez un message d'erreur correspondant et quittez le programme. Affichez le message suivant : Erreur: les deux nombres doivent être des nombres entiers (Faite un copier-coller pour éviter que le test ne passe pas)
> > > > > > Sinon convertissez les en entier à l'aide de la fonction int().</spoil>
> > > > > >
> > > > > > du coup j'iamerai savoir pq ça met toujours une erreur ?
> > > > >
> > > > > Tu peux pas implémenter à la fois un message d'erreur et un arrêt de programme en cas de non-entier puis une conversion des chaînes de caractères en entier, il faut choisir. Là t'auras systématiquement ton message d'erreur.
> > > >
> > > > donc si jenlève le msg d'erreur et que je laisse le int() ça va convertir?
> > >
> > > Oui, si t'enlèves tout le bloc. Mais je crois que quand ils disent "sinon convertir en entier avec int()" c'est convertir la chaîne de caractères en un entier si elle représente bien un entier.
> >
>
> Enlève ta boucle "if" entièrement, c'est-à-dire avec l'énonciation de la condition (if xxx…
La chaîne de caractères doit d'abord être convertie en chiffre, et ensuite seulement elle peut être convertie en entier.
Autrement dit, tu dois utiliser un float() puis un int().
ouais mais dans ma consigne on me dit de directement convertir en int...
Dans ce cas-là c'est ce que j'avais dit : la consigne te dit de convertir uniquement sur la chaîne de caractères représente un entier, sinon le code ne sera pas validé. Remets ta boucle if (en entier) et n'y touche plus, c'était normal que d'avoir une « erreur ».
et comment on "converti uniquement sur la chaîne de caractères représente un entier," ?
Le 09 août 2023 à 18:40:56 :
Le 09 août 2023 à 18:39:24 :
Le 09 août 2023 à 18:38:29 :
Le 09 août 2023 à 18:37:38 :
Le 09 août 2023 à 18:36:05 :
> Le 09 août 2023 à 18:34:27 :
>> Le 09 août 2023 à 18:33:35 :
> >> Le 09 août 2023 à 18:33:19 :
> > >> Le 09 août 2023 à 18:30:41 :
> > > >> Le 09 août 2023 à 18:30:03 :
> > > > >> Le 09 août 2023 à 18:28:20 :
> > > > > >> Le 09 août 2023 à 18:26:22 :
> > > > > > >> Le 09 août 2023 à 18:20:08 :
> > > > > > > >par contre pourquoi ça a pas converti en nombre entier ?
> > > > > > > >
> > > > > > > > ça aurait du le faire non ? j'ai ça dans le code : nombre_a_gauche = int(nombre_a_gauche)
> > > > > > > > nombre_a_droite = int(nombre_a_droite)
> > > > > > >
> > > > > > > de mémoire, int ça marche pour la conversion string(phrase) => entier
> > > > > > >
> > > > > > > là t'as entré un décimal (un float, donc)
> > > > > > > et je sens que t'as mis des virgules à la place des points, mais jsp vu que la photo est en basse qualité.
> > > > > >
> > > > > > > Le 09 août 2023 à 18:26:37 :
> > > > > > >> Le 09 août 2023 à 18:20:08 :
> > > > > > > >par contre pourquoi ça a pas converti en nombre entier ?
> > > > > > > >
> > > > > > > > ça aurait du le faire non ? j'ai ça dans le code : nombre_a_gauche = int(nombre_a_gauche)
> > > > > > > > nombre_a_droite = int(nombre_a_droite)
> > > > > > >
> > > > > > > Mais regarde ton code, t'as littéralement la réponse de pourquoi ça fait ça l. 8
> > > > > >
> > > > > > ça change rien , ou .
> > > > > >
> > > > > > dans l'exercice on me dit que je peux convertir en nombre entier si c pas en nombre entier
> > > > > >
> > > > > > <spoil>4. Vérifier les deux nombres entiers
> > > > > > Vérifiez que les deux variables nombre_a_gauche et nombre_a_droite sont bien des nombres entiers à l'aide de la fonction isnumeric().
> > > > > > Si l'une ou les deux ne sont pas des entiers, affichez un message d'erreur correspondant et quittez le programme. Affichez le message suivant : Erreur: les deux nombres doivent être des nombres entiers (Faite un copier-coller pour éviter que le test ne passe pas)
> > > > > > Sinon convertissez les en entier à l'aide de la fonction int().</spoil>
> > > > > >
> > > > > > du coup j'iamerai savoir pq ça met toujours une erreur ?
> > > > >
> > > > > Tu peux pas implémenter à la fois un message d'erreur et un arrêt de programme en cas de non-entier puis une conversion des chaînes de caractères en entier, il faut choisir. Là t'auras systématiquement ton message d'erreur.
> > > >
> > > > donc si jenlève le msg d'erreur et que je laisse le int() ça va convertir?
> > >
> > > Oui, si t'enlèves tout le bloc. Mais je crois que quand ils disent "sinon convertir en entier avec int()" c'est convertir la chaîne de caractères en un entier si elle représente bien un entier.
> >
>
> Enlève ta boucle "if" entièrement, c'est-à-dire avec l'énonciation de la condition (if xxx…
La chaîne de caractères doit d'abord être convertie en chiffre, et ensuite seulement elle peut être convertie en entier.
Autrement dit, tu dois utiliser un float() puis un int().
ouais mais dans ma consigne on me dit de directement convertir en int...
le programme "doit" accepter des décimales aussi ?
j'en ai aucune idée
contexte
Vous allez créer une calculatrice qui permettra d'effectuer une opération simple entre deux nombres. Vous devrez donc créer deux variables pour stocker les deux nombres, et une variable pour stocker le symbole qui représentera l'opération à effectuer. Vous devrez d'abord créer une structure conditionnelle qui vérifiera la validité des variables et du symbole. Ensuite, vous devrez créer une deuxième structure conditionnelle pour effectuer l'opération en fonction du symbole choisi. Ne vous inquiétez pas, l’exercice sera guidé par des questions. C’est parti ! À vous de jouer !
Instructions
1. Créez deux variables nombre_a_gauche et nombre_a_droite , et affectez-leur chacune un nombre entier à l'aide d'un input.
La valeur pour chaque variable doit être assigné à l'aide de la fonction input() qui permet de demander à l'utilisateur d'entrer une chaine de caractère.
2. Créez une variable operation pour stocker le symbole d'opération (+, -, * ou /). L'opérateur sera aussi demander à l'aide de la fonction input().
3. Créez une dernière variable resultat initialisée à 0, qui contiendra ensuite le résultat du calcul.
4. Vérifier les deux nombres entiers
Vérifiez que les deux variables nombre_a_gauche et nombre_a_droite sont bien des nombres entiers à l'aide de la fonction isnumeric().
Si l'une ou les deux ne sont pas des entiers, affichez un message d'erreur correspondant et quittez le programme. Affichez le message suivant : Erreur: les deux nombres doivent être des nombres entiers (Faite un copier-coller pour éviter que le test ne passe pas)
Sinon convertissez les en entier à l'aide de la fonction int().
5. Vérifier le symbole
Vérifiez que le symbole stocké dans la variable operation correspond bien à une des 4 opérations autorisées (+, -, * ou /) à l’aide d'une structure match et effectuez le calcul correspondant dans chaque cas. Stockez le résultat dans la variable resultat.
Si le symbole n'est pas correct, affichez un message d'erreur correspondant, et quittez le programme. (Indice : pensez à la valeur par défaut) Affichez le message suivant : Erreur: le symbole d'opération doit être '+', '-', '*' ou '/'. (Faite un copier-coller pour éviter que le test ne passe pas)
Il est impossible de diviser un nombre par 0, il faut donc prévoir une structure conditionnelle supplémentaire pour vérifier ce cas dans la structure match . Utilisez les conditions if-else pour réaliser cette opération ; s’il y a une division par 0, affichez Erreur: impossible de diviser par zéro.(Faite un copier-coller pour éviter que le test ne passe pas) , sinon stockez le calcul dans la variable resultat .
6. Affichez le résultat contenu dans la variable resultat .
Le 09 août 2023 à 18:41:48 :
et comment on "converti uniquement sur la chaîne de caractères représente un entier," ?
Comme ton programme était tout-à-l'heure, avant ce message https://www.jeuxvideo.com/forums/message/1231141465
Le 09 août 2023 à 18:43:39 :
Le 09 août 2023 à 18:41:48 :
et comment on "converti uniquement sur la chaîne de caractères représente un entier," ?Comme ton programme était tout-à-l'heure, avant ce message https://www.jeuxvideo.com/forums/message/1231141465
mais je comprends pas khey du coup pourquoi ça ap as marché ?
Le 09 août 2023 à 18:44:04 :
Le 09 août 2023 à 18:43:39 :
Le 09 août 2023 à 18:41:48 :
et comment on "converti uniquement sur la chaîne de caractères représente un entier," ?Comme ton programme était tout-à-l'heure, avant ce message https://www.jeuxvideo.com/forums/message/1231141465
mais je comprends pas khey du coup pourquoi ça ap as marché ?
Mais c'est normal que ton programme refuse les nombres non-entiers. Il convertir les valeurs reçues en entier seulement si ces valeurs représentent un entier. Rentrer 10.2 provoquera l'arrêt du programme. Si on rentre 10, la chaîne de caractères reçue ("10") sera convertie en une variable entière (10).
Le 09 août 2023 à 18:47:47 :
Le 09 août 2023 à 18:44:04 :
Le 09 août 2023 à 18:43:39 :
Le 09 août 2023 à 18:41:48 :
et comment on "converti uniquement sur la chaîne de caractères représente un entier," ?Comme ton programme était tout-à-l'heure, avant ce message https://www.jeuxvideo.com/forums/message/1231141465
mais je comprends pas khey du coup pourquoi ça ap as marché ?
Mais c'est normal que ton programme refuse les nombres non-entiers. Il convertir les valeurs reçues en entier seulement si ces valeurs représentent un entier. Rentrer 10.2 provoquera l'arrêt du programme. Si on rentre 10, la chaîne de caractères reçue ("10") sera convertie en une variable entière (10).
si c pas des nombres entiers c quoi ?
Le 09 août 2023 à 18:52:36 :
Le 09 août 2023 à 18:47:47 :
Le 09 août 2023 à 18:44:04 :
Le 09 août 2023 à 18:43:39 :
Le 09 août 2023 à 18:41:48 :
et comment on "converti uniquement sur la chaîne de caractères représente un entier," ?Comme ton programme était tout-à-l'heure, avant ce message https://www.jeuxvideo.com/forums/message/1231141465
mais je comprends pas khey du coup pourquoi ça ap as marché ?
Mais c'est normal que ton programme refuse les nombres non-entiers. Il convertir les valeurs reçues en entier seulement si ces valeurs représentent un entier. Rentrer 10.2 provoquera l'arrêt du programme. Si on rentre 10, la chaîne de caractères reçue ("10") sera convertie en une variable entière (10).
si c pas des nombres entiers c quoi ?
Bon j'arrête clé, désolé j'ai pas la patience et j'ai déjà expliqué, relis mes messages si tu ne comprends pas, et remets ton programme comme il était avant mon intervention. J'ai une boucle à alimenter ici
Le 09 août 2023 à 18:52:36 :
Le 09 août 2023 à 18:47:47 :
Le 09 août 2023 à 18:44:04 :
Le 09 août 2023 à 18:43:39 :
Le 09 août 2023 à 18:41:48 :
et comment on "converti uniquement sur la chaîne de caractères représente un entier," ?Comme ton programme était tout-à-l'heure, avant ce message https://www.jeuxvideo.com/forums/message/1231141465
mais je comprends pas khey du coup pourquoi ça ap as marché ?
Mais c'est normal que ton programme refuse les nombres non-entiers. Il convertir les valeurs reçues en entier seulement si ces valeurs représentent un entier. Rentrer 10.2 provoquera l'arrêt du programme. Si on rentre 10, la chaîne de caractères reçue ("10") sera convertie en une variable entière (10).
si c pas des nombres entiers c quoi ?
tout sauf des nombres entiers.
un 10.2 c'est pas un nombre entier, c'est un décimal (un float, donc)
Le 09 août 2023 à 18:55:15 :
Le 09 août 2023 à 18:52:36 :
Le 09 août 2023 à 18:47:47 :
Le 09 août 2023 à 18:44:04 :
Le 09 août 2023 à 18:43:39 :
> Le 09 août 2023 à 18:41:48 :
> et comment on "converti uniquement sur la chaîne de caractères représente un entier," ?
Comme ton programme était tout-à-l'heure, avant ce message https://www.jeuxvideo.com/forums/message/1231141465
mais je comprends pas khey du coup pourquoi ça ap as marché ?
Mais c'est normal que ton programme refuse les nombres non-entiers. Il convertir les valeurs reçues en entier seulement si ces valeurs représentent un entier. Rentrer 10.2 provoquera l'arrêt du programme. Si on rentre 10, la chaîne de caractères reçue ("10") sera convertie en une variable entière (10).
si c pas des nombres entiers c quoi ?
Bon j'arrête clé, désolé j'ai pas la patience et j'ai déjà expliqué, relis mes messages si tu ne comprends pas, et remets ton programme comme il était avant mon intervention. J'ai une boucle à alimenter ici
Le 09 août 2023 à 18:55:48 :
Le 09 août 2023 à 18:52:36 :
Le 09 août 2023 à 18:47:47 :
Le 09 août 2023 à 18:44:04 :
Le 09 août 2023 à 18:43:39 :
> Le 09 août 2023 à 18:41:48 :
> et comment on "converti uniquement sur la chaîne de caractères représente un entier," ?
Comme ton programme était tout-à-l'heure, avant ce message https://www.jeuxvideo.com/forums/message/1231141465
mais je comprends pas khey du coup pourquoi ça ap as marché ?
Mais c'est normal que ton programme refuse les nombres non-entiers. Il convertir les valeurs reçues en entier seulement si ces valeurs représentent un entier. Rentrer 10.2 provoquera l'arrêt du programme. Si on rentre 10, la chaîne de caractères reçue ("10") sera convertie en une variable entière (10).
si c pas des nombres entiers c quoi ?
tout sauf des nombres entiers.
un 10.2 c'est pas un nombre entier, c'est un décimal (un float, donc)
en gros isnumeric() ça vérifie si les deux variables sont des nombres entiers (1 2 3 50 100 etc)
mais c'est le int() que je comprends pas, int() ça converti en entier, mais 1 2 3 50 100 c'est déjà des entiers ? à quoi ça sert donc ? ça converti quoi exactement ?
Le 09 août 2023 à 18:57:59 :
Le 09 août 2023 à 18:55:15 :
Le 09 août 2023 à 18:52:36 :
Le 09 août 2023 à 18:47:47 :
Le 09 août 2023 à 18:44:04 :
> Le 09 août 2023 à 18:43:39 :
>> Le 09 août 2023 à 18:41:48 :
> > et comment on "converti uniquement sur la chaîne de caractères représente un entier," ?
>
> Comme ton programme était tout-à-l'heure, avant ce message https://www.jeuxvideo.com/forums/message/1231141465
mais je comprends pas khey du coup pourquoi ça ap as marché ?
Mais c'est normal que ton programme refuse les nombres non-entiers. Il convertir les valeurs reçues en entier seulement si ces valeurs représentent un entier. Rentrer 10.2 provoquera l'arrêt du programme. Si on rentre 10, la chaîne de caractères reçue ("10") sera convertie en une variable entière (10).
si c pas des nombres entiers c quoi ?
Bon j'arrête clé, désolé j'ai pas la patience et j'ai déjà expliqué, relis mes messages si tu ne comprends pas, et remets ton programme comme il était avant mon intervention. J'ai une boucle à alimenter ici
Le 09 août 2023 à 18:55:48 :
Le 09 août 2023 à 18:52:36 :
Le 09 août 2023 à 18:47:47 :
Le 09 août 2023 à 18:44:04 :
> Le 09 août 2023 à 18:43:39 :
>> Le 09 août 2023 à 18:41:48 :
> > et comment on "converti uniquement sur la chaîne de caractères représente un entier," ?
>
> Comme ton programme était tout-à-l'heure, avant ce message https://www.jeuxvideo.com/forums/message/1231141465
mais je comprends pas khey du coup pourquoi ça ap as marché ?
Mais c'est normal que ton programme refuse les nombres non-entiers. Il convertir les valeurs reçues en entier seulement si ces valeurs représentent un entier. Rentrer 10.2 provoquera l'arrêt du programme. Si on rentre 10, la chaîne de caractères reçue ("10") sera convertie en une variable entière (10).
si c pas des nombres entiers c quoi ?
tout sauf des nombres entiers.
un 10.2 c'est pas un nombre entier, c'est un décimal (un float, donc)
en gros isnumeric() ça vérifie si les deux variables sont des nombres entiers (1 2 3 50 100 etc)
mais c'est le int() que je comprends pas, int() ça converti en entier, mais 1 2 3 50 100 c'est déjà des entiers ? à quoi ça sert donc ? ça converti quoi exactement ?
int ça convertit des strings (les trucs entre "" ) en entiers.
pour python, "10" n'est pas un entier, c'est une phrase.
mais 10 (sans guillemets) est un entier.
Le 09 août 2023 à 19:18:30 :
Je pense que tu n'es pas fait pour le dev l'OP désolé de te dire ca mais ca serait trop de souffrance inutile de continuer
justement jen esuis pas un dev khey
et tant mieux, pisser du code putain
Données du topic
- Auteur
- LDEBUTANTSURWOW
- Date de création
- 9 août 2023 à 17:30:24
- Nb. messages archivés
- 94
- Nb. messages JVC
- 94