SQLite avec python, insertion.

Teoman -  
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

9 réponses

Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
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] ?
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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.
0
DororoCode Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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.

0
DororoCode Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
ceci marche par exemple ...

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
peux-tu partager du texte, et pas des images?
merci d'utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
est-ce ton premier exercice avec input?
fais un petit programme qui ajoute 1 à un nombre entré par l'utilisateur.
0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
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)
0
DororoCode Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Comment je peux remplacer choixPossibles en liaison avec input ? Pour pouvoir choisir le résultat a afficher ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DororoCode Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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 !
0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
print(row == [choixPossibles] ) : bizarre

et row[choixPossibles] ne marche pas car choixPossibles est une string !
0
DororoCode Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
oui j'ai essayer de forcer ^^ ...
0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
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
0
DororoCode Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup, mon code marche ! Je me sens nul mais je ne serai pas démotivée. Agréable journée !
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > DororoCode Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
peux-tu alors marquer la discussion comme résolue?
0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Apres avoir lu ma réponse de 15h08 ... :-)
0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
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))
0