IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Fonction input


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 28
    Points : 35
    Points
    35
    Par défaut Fonction input
    Bonjour
    SVP comment est c qu on peut saisir plusieurs nombres dans une seule ligne en les séparant par des espaces, mais que chacun doit etre stocké ds une variable indépendante, pr exo je veux écrire un pro qui calcule la somme de 4 nombre avec une seule ligne comme entrée; lors de l'éxécution j aurai:
    >>>2 4 0 12
    est comme outpout j aurai: print(a+b+c+d):
    >>>18
    thinks!!

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Les entrées utilisateurs sont toujours des strings, faut convertir.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >>> n = input('nombres: ')
    nombres: 5 4 7 6
    >>> numbs = map(int, n.split(' '))
    >>> sum(numbs)
    22

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 28
    Points : 35
    Points
    35
    Par défaut
    salut
    OK je pense que c'est résolu pour ce cas particulièr de la somme, supposons que je veux faire cette opération:
    S=a*b+(c-d)^2 j aurai donc bosoin de 4 variable donc ça va ps marcher avec cette solution ??
    thinks any-way

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 253
    Points : 446
    Points
    446
    Par défaut
    Salut,

    quelle que soit l'opération que tu veux faire avec les 4 nombres, le début de la réponse de VinsS reste valable. En effet, il te faudra toujours récupérer les nombres saisis par l'utilisateur et les convertir en entier.
    Les functions map, filter,... sont peu à peu remplacer par la compréhensetion de liste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    n= input'nombres: ')
    nums=[int(x) for x in n.split(' ')]
    Ensuite, tu appliques la formule que tu veux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    S=nums[0]*nums[1]+nums[2]-nums[3])**2
    Il est agréable d'avoir le choix. La difficulté est alors de faire le bon (ou le moins pire).

  5. #5
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Bonjour,

    Il y a la possibilité d'utiliser eval, mais ce n'est pas très sûr en terme de sécurité, une personne mal intentionnée pourrait entrer une commande détruisant votre système, mais il existe des solutions en python pour faire ce type de vérification avant d'exécuter une commande.

    Par exemple, asteval est un module qui le permet,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> from asteval import Interpreter
    >>> aeval = Interpreter()
    >>> n = input('nombres: ')
    nombres: 5 4 7 6
    >>> a, b, c, d = map(int, n.split())
    >>> code = "{}*{}+({}-{})**2".format(a, b, c, d)
    >>> aeval(code)
    21
    D'autres solutions existent, beaucoup même ! Taper evaluating expression mathematics python sur son moteur de recherche préféré !

    On peut aussi regarder du côté des modules mathématiques comme sympy

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> import sympy
    >>> n = input('nombres: ')
    nombres: 5 4 7 6
    >>> a, b, c, d = sympy.symbols('a, b, c, d')
    >>> sympy.sympify("a*b+(c-d)**2").evalf(subs={i:j for i, j in zip(
                                 [a, b, c, d], map(int, n.split()))})
    21.0000000000000
    Bref il y a de quoi faire, tu pourrais même faire ton propre parser d'expressions mathématiques.

    Bon courage dans tes choix.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 28
    Points : 35
    Points
    35
    Par défaut
    thank u very much !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bug avec fonction INPUT n$
    Par LONQUEUX dans le forum Basic
    Réponses: 1
    Dernier message: 28/11/2015, 16h50
  2. Erreur sur fonction input
    Par enicnath dans le forum SAS Base
    Réponses: 4
    Dernier message: 13/09/2013, 09h07
  3. Problème avec la fonction 'input'
    Par Tibtib dans le forum MATLAB
    Réponses: 3
    Dernier message: 03/05/2013, 13h57
  4. Problème avec scipad et la fonction "input"
    Par gevaudan17 dans le forum Scilab
    Réponses: 3
    Dernier message: 09/03/2009, 17h13
  5. FAQ - Fonction input chiffres
    Par habasque dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/07/2008, 18h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo