SQLite avec python, insertion.

Bonjour bonsoir,

Je suis un étudiant donc plutôt débutant en informatique. J'ai un projet à rendre pour la semaine prochaine est j'ai déjà un petit soucis avec mon code.

import sqlite3

conn = sqlite3.connect('brouillon.db')
cur = conn.cursor()

choixPossibles = ['0','1','2']

##annee = '0'
##sujet = '1'
##laureat = '2'

choixPossibles = input('Votre choix : ').upper()
A = "SELECT * FROM nobel "
result = cur.execute(A)
for row in result:
print(row [choixPossibles] )


Voici mon envie et la réalité :

je veux pouvoir choisir la colonne ( 0,1,2 dans cette exemple ) pour pouvoir chercher des informations sur SQLite.
avec row, sauf que quand je lance mon code. J'ai "False" qui s'affiche et non les résultats du SQLite.

( c'est mon brouillon mais si elle ne fonctionne pas je ne pourrai pas l'intégrer dans mon projet ) :/ Merci de votre aide

9 réponses

  1. sachant que ceci est inutile:

    choixPossibles = ['0','1','2']


    il faudrait écrire:

    choixPossibles =int(input('Votre choix (1,2 ou 3) : '))


    pour indiquer les choix possibles à l'utilisateur

    Ou bien, encore plus clair (avec contrôle de saisie):
    menu = '''
    0	Année
    1	Sujet
    2	Lauréat
    > '''
    choix = ''
    
    while(not choix in [0,1,2]):
    	os.system('cls' if os.name=='nt' else 'clear')
    	print('\n' + '''Choisissez une option'''.center(50,'*'))
    	choix = int(input(menu))
    
    1. oui mais ca marche pas : pour la 4eme fois choixPossibles est une string,

      il faut d'abord la convertir en integer :

      choixPossibles =int(input('Votre choix : '))


      et

      print(row[choixPossibles ])


      fonctionnera
      1. Merci beaucoup, mon code marche ! Je me sens nul mais je ne serai pas démotivée. Agréable journée !
      2. Contributeur
        @DororoCodepeux-tu alors marquer la discussion comme résolue?
      3. @yg_beApres avoir lu ma réponse de 15h08 ... :-)
    2. print(row == [choixPossibles] ) : bizarre

      et row[choixPossibles] ne marche pas car choixPossibles est une string !
      1. import sqlite3
        
        conn = sqlite3.connect('brouillon.db')
        cur = conn.cursor()
        
        choixPossibles = ['0','1','2']
        
        ##annee = '0'
        ##sujet =  '1'
        ##laureat = '2'
        
        
        choixPossibles = input('Votre choix : ').upper()
        A = "SELECT * FROM nobel "
        result = cur.execute(A)
        for row in result:
            print(row == [choixPossibles] )


        en espérant que ca marche !
        1. Pas de photos, ce n'est pas très clair ni très pratique a copier/coller

          L'indentation étant importante en Python, merci de copier/coller ici ton code complet avec les balises de code
          mode d'emploi:
          https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

          Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :

          def test():
              print('test')
          
          test()
          


          et comme je te le disais row[0] fonctionne mais pas row[choixPossibles] car choixPossibles est une string et pas un integer (input rend une string, il faut ensuite la convertir, par contre .upper() est inutile)
          1. Comment je peux remplacer choixPossibles en liaison avec input ? Pour pouvoir choisir le résultat a afficher ?
        2. Merci de votre réponse, en revanche. Quand je simplifie ceci marche, mais j'aimerai choisir avec la fonction input qu'elle nombre choisir pour afficher la table. 3 colonnes donc 0,1,2 pour chaque colonnes :/ c'est justement la que j'ai un soucis.

          1. ceci marche par exemple ...

          2. Contributeur
            est-ce ton premier exercice avec input?
            fais un petit programme qui ajoute 1 à un nombre entré par l'utilisateur.
        3. Contributeur
          bonjour,
          pourquoi ne simplifies-tu pas ton programme pour tester?
          print(row[0])

          il est préférable, également, de partager un programme que nous pouvons tester, donc avec la création et le remplissage de la table.
          1. Bonjour,

            Il faudrait déplacer cet appel dans le forum Python

            Ceci dit, choixPossibles est une chaine de caractères et non un entier, donc peut-on faire

            row[choixPossibles] ?