[PYTHON] affichage d'un int dans un string

ultrabody

Grand Maître
Bonjour à toutes et à tous,

Je suis en train de débuter dans le langage python.
Bref, j'utilise Boa constructor pour manipuler les objets etc...
J'ai déjà programmer en c++ avec c++ builder etc...

je suis newie en python.

Ce que je suis en train de développer (pour mon apprentissage de ce langage) est une application qui recherche des données (affichage modification, ajout ) dans une base de donnée (consituté d'un int pour les id unique et d'autre champs de types string).

J'arrive à accéder à ma base de donnée, là tout va bien..
j'arrive à afficher dans des objets txtCtrl (qui n'affiche que des string) des string. Là aussi tout va bien.

par contre, la difficulté se trouve lorque je veux afficher un Id ( de type integer) de ma base de données dans un objet txtCtrl.

Voici mon code :

cur = con.cursor()
cur.execute("select MAX(Id) As id from Client_BDD01")

a=str(id)
self.textCtrl1.SetValue(a)

Voilà ce qu'il m'affiche dans l'objet textCtrl1 :"<built-in function id>"


D'avance merci pour vos réponses.

 

batchy

Grand Maître
id est un mot résérvé, c'est en fait une fonction qui retourne (dans l'implémentation courante) l'addresse memoire de la variable qu'on lui passe en argument

et en python la manière propre pour transformer un nombre en chaine est d'utiliser le ''sprintf'' du python :
Code:
"numero id : %i, valeur=\"%s\"\n"%(ident,valeur)

 

frodon1

Grand Maître
Je n'ai jamais aimé cette syntaxe, je trouve qu'elle n'est pas lisible. Je préfère :
Code:
"numero id : ",ident,", valeur=",valeur,"\n"
Mais c'est vrai que dans mon cas, je ne peux pas préciser le type d'affichage du réel (12.5464, 12.55, 12,546, ...).
D'ailleurs dans ton cas, inutile de passer par %s, tu peux aussi utiliser %f, %g, %.4f, etc. Python sais concaténer des strings et des nombres.

edit: petit oubli de "
 

batchy

Grand Maître
Code:
>>> ident=5
>>> valeur="string"
>>> a="numero id :",ident,"valeur=",valeur,"\n"
>>> print a
('numero id :', 5, 'valeur=', 'string', '\n')
là on crée un tuple aussi ...

 

frodon1

Grand Maître
oups pardon autant pour moi, ce ne sont pas des virgules mais des "+" qu'il faut mettre, et puis str(ident):
Code:
>>> ident=5
>>> valeur="string"
>>> a="numero id:"+str(ident)+" valeur="+valeur+"\n"
>>> print a
numero id:5 valeur=string
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 134
Messages
6 718 057
Membres
1 586 394
Dernier membre
Manoushk
Partager cette page
Haut