SQLite avec python, insertion.

Fermé
Teoman - 13 sept. 2021 à 12:44
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 13 sept. 2021 à 16:31
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 lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 13 sept. 2021 à 13:07
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 23535 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2025 Ambassadeur 1 579
13 sept. 2021 à 13:25
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 lundi 13 septembre 2021 Statut Membre Dernière intervention 13 septembre 2021
13 sept. 2021 à 14:31
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 lundi 13 septembre 2021 Statut Membre Dernière intervention 13 septembre 2021
13 sept. 2021 à 14:32
ceci marche par exemple ...

0
yg_be Messages postés 23535 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2025 1 579
13 sept. 2021 à 14:40
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 23535 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2025 1 579
13 sept. 2021 à 14:41
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 lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 13 sept. 2021 à 14:44
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 lundi 13 septembre 2021 Statut Membre Dernière intervention 13 septembre 2021
13 sept. 2021 à 14:48
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 lundi 13 septembre 2021 Statut Membre Dernière intervention 13 septembre 2021
13 sept. 2021 à 14:44
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 lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 13 sept. 2021 à 14:52
print(row == [choixPossibles] ) : bizarre

et row[choixPossibles] ne marche pas car choixPossibles est une string !
0
DororoCode Messages postés 6 Date d'inscription lundi 13 septembre 2021 Statut Membre Dernière intervention 13 septembre 2021
13 sept. 2021 à 14:48
oui j'ai essayer de forcer ^^ ...
0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 13 sept. 2021 à 14:56
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 lundi 13 septembre 2021 Statut Membre Dernière intervention 13 septembre 2021
13 sept. 2021 à 15:01
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 23535 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2025 1 579 > DororoCode Messages postés 6 Date d'inscription lundi 13 septembre 2021 Statut Membre Dernière intervention 13 septembre 2021
13 sept. 2021 à 15:57
peux-tu alors marquer la discussion comme résolue?
0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168 > yg_be Messages postés 23535 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2025
13 sept. 2021 à 16:31
Apres avoir lu ma réponse de 15h08 ... :-)
0
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
Modifié le 13 sept. 2021 à 15:16
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