Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Programmation avec Python

Posté par
Eoledebach
17-01-18 à 20:42

Bonjour à tous et à toutes,

J'ai un petit problème avec le logiciel Python ( je débute un peu) et j'aurais vivement besoin de vos conseils.

Mon problèmes: je dois écrire un algorithme qui permet de calculer les distances entre deux points. Mais je ne sais pas comment m'y prendre, toutes les méthode que j'ai pu lire sur ce logiciel ne sont pas pareilles et cela m'embrouille un peu.

Pour le moment voici où j'en suis mais il ne marche pas. Merci pour votre aide précieuse.

>>> from math import *
print "Entrer l'abscisse de A"
x = input()
print "Entrer l'ordonnée de A"
y = input()
print "Entrer l'abscisse de B"
z = input() print "Entrer l'ordonnée de B"
t = input()
d = sqrt((z−x)**2 + (t−y)**2)
print "La distance entre A e B est :"
print d

Posté par
ArthurThenon
re : Programmation avec Python 17-01-18 à 20:58

Bonjour,

tout d'abord, vérifie la syntaxe.

En effet, en python, pour afficher un texte et une variable, la syntaxe est :
print("texte") et print(variable)
et non print "texte" et print variable
Tu oublis les parenthèses.

Une fois ce problème de syntaxe corrigé, vérifie que ton programme fonctionne. Si ce n'est pas le cas, il faut y aller lentement, étape par étape.

Posté par
Eoledebach
re : Programmation avec Python 17-01-18 à 21:55

Je ne comprend pas bien pourquoi mes x, y, z et t ne fonctionnent pas ?

Merci pour votre aide Arthur .

Posté par
mathafou Moderateur
re : Programmation avec Python 17-01-18 à 22:16

Bonjour,
il est un peu difficile de comprendre la doc native de Python car elle ne fait que décrire syntaxiquement (etb encore avec des conventions ésotériques réservées aux spécialistes) les diverses fonctions et ne donne aucun exemple pratique
il vaut miuex utilser des tutoriels Python !

en fait ici input renvoie la chaine de caractères entrée au clavier (qualifiée de raw = brute) et pas du tout sa valeur numérique

x = float(input(...)) marchera sûrement mieux !

nota 1
print("entrer l'abscisse de A")
x = float(input())

équivaut à
x = float(input("entrer l'abscisse de A"))

nota 2 : dans l'environnement "Lycée" (from Lycee import *), la fonction demander(...) combine les deux opérations en une seule ...
mais je déconseille fortement de prendre de telles mauvaises habitudes
d'utiliser l'environnement "Lycée" de EduPython qui cache de trop nombreuses notions qu'il est indispensable d'acquérir au plus tôt,
comme la différence entre la représentation d'un nombre sous forme de chaine de caractères et sa valeur en tant que nombre.

Posté par
Eoledebach
re : Programmation avec Python 17-01-18 à 22:37

Merci beaucoup pour votre aide précieuse, j'apprend en autodidacte et ce n'est parfois pas évident. J'ai juste une dernière petite question:
Pour:
d = sqrt((z−x)**2 + (t−y)**2)
et
print "La distance entre A e B est :"
print d
Je les saisissent mais ils ne marchent pas, surtout la deuxième je ne vois pas comment pourrais je l'arranger

Merci ;D  

Posté par
mathafou Moderateur
re : Programmation avec Python 17-01-18 à 22:46

déja dit que ce n'est pas print espace mais print parenthèses

print("La distance entre A e B est :")
print(d)

qui imprime (affiche) sur deux lignes successives

pour tout mettre sur une seule ligne
print("La distance entre A e B est :", d)

Posté par
Eoledebach
re : Programmation avec Python 17-01-18 à 22:54

Oups merci beaucoup pour votre aide bonne soirée !

Posté par
ArthurThenon
re : Programmation avec Python 17-01-18 à 22:54

Eoledebach @ 17-01-2018 à 21:55

Je ne comprend pas bien pourquoi mes x, y, z et t ne fonctionnent pas ?
Merci pour votre aide Arthur.


Bonjour, (j'ai le même âge que toi, inutile de me vouvoyer )
je tiens à préciser que la plupart des choses que je vais dire ont déjà été remarquées par mathafou dans le message précédant.

Tes variables ne "fonctionnent pas" pour plusieurs raisons :

1- Tout d'abord, à chaque fois que tu utilise la fonction print, tu n'écrit pas la syntaxe correctement.
Par exemple à la 4ème ligne, tu as écrit
print "Entrer l'ordonnée de A"
alors qu'il aurait fallu écrire
print ("Entrer l'ordonnée de A" )

2- Ensuite, x y z t sont des variables auxquelles tu as affecté la fonction input, mais cette fois-ci, la syntaxe est correcte, mais si tu ne rajoute pas float avant le input, le programme comprend « x est une chaîne de caractère », alors que non, x est un nombre.
Par exemple à la 3ème ligne, tu as écrit:
x = input()
alors qu'il aurait fallu écrire
x = float(input())

3- À la 7ème ligne, tu as écrit
z = input() print "Entrer l'ordonnée de B"
tu vois que tu as regrouper deux instructions différentes sur la même ligne, dans ton cas, il faudrait que tu sépare ces deux instructions en deux lignes distinctes.

4- Il est possible de regrouper ces deux lignes :
x = float(input())
print ("Entrer l'ordonnée de A" )

en une :
x = float(input("Entrer l'ordonnée de A"))

Posté par
mathafou Moderateur
re : Programmation avec Python 17-01-18 à 22:58

bien résumé, mais le point 4 est à l'envers
c'est le print d'avant qui peut être "mis" dans le input.

Posté par
ArthurThenon
re : Programmation avec Python 17-01-18 à 23:47

Effectivement... ça m'apprendra à aller trop vite

Posté par
Eoledebach
re : Programmation avec Python 17-01-18 à 23:53

Merci beaucoup je ne sais pas ce que je ferais sans vos précieux conseils

Donc voici mon programme:

>>>print("Saisir l'abscisse du point A")
>>>x=float(input())
>>>print("Saisir l'ordonnée du point A")
>>>y=float(input())
>>>print("saisir l'abscisse du point B")
>>>z=float(input())
>>>print("saisir l'ordonnée de point B")
>>>d=((z-x)**2(t-y)**2)
>>>print("la distance entre le point A et le point B est")
>>>print("d")

Je pense que c'est ok non ?

>>>
>>>
>>>
>>>
>>>

Posté par
cocolaricotte
re : Programmation avec Python 17-01-18 à 23:55

Bonsoir tout le monde

Python est un langage de programmation.

Avant de programmer, il faut trouver l'algorithme permettant de résoudre le problème.

Ici, on demande l'algorithme. Ensuite on verra sa traduction dans un langage de programmation.

Posté par
Eoledebach
re : Programmation avec Python 18-01-18 à 00:02

Début
Saisir X abscisse du point A
Saisir Y ordonnée du point A
Saisir Z  abscisse du point B
Saisir T   ordonnée du point B
D prend la valeur racine(Z-X)²+(T-Y)²            
Afficher le résultat - distance entre les deux points.
Fin

Posté par
Eoledebach
re : Programmation avec Python 18-01-18 à 00:10

Oulala j'ai oublié le sqrt :/ oups désolé (ligne 9)

Posté par
mathafou Moderateur
re : Programmation avec Python 18-01-18 à 00:10

le 17-01-18 à 23:53 il manque une ligne après
>>>print("saisir l'ordonnée de point B")

Posté par
mathafou Moderateur
re : Programmation avec Python 18-01-18 à 00:13

et print("d")
affiche le caractère "d" et pas la valeur de la variable d
(mais déja donné cette ligne correctement ... faut lire !)

Posté par
cocolaricotte
re : Programmation avec Python 18-01-18 à 00:15

Utiliser un langage orienté objet pour traduire un algorithme aussi simpliste c'est utiliser une kalachnikov pour tuer une mouche ! Cela fait plus de dégâts que de réussite.

Posté par
Eoledebach
re : Programmation avec Python 18-01-18 à 00:24

Je vous remercie pour toute votre aide je pense pouvoir avancer seule désormais, Bonne soirée à vous tous et toutes .

Posté par
mathafou Moderateur
re : Programmation avec Python 18-01-18 à 00:46

cocolaricotte c'est tout de même mieux de commencer ces trucs simples pour apprendre avec Python que avec Algobox !!
au moins on pourra progresser ensuite vers des utilisations où Python se justifie, en ayant appris les bases de ce langage.



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1674 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !