2010-07-27 7 views
0

dis que je veux demander aux nombreux utilisateurs de me donner leur numéro d'identification et leur nom, que de le sauvegarder. et que je peux appeler n'importe quel ID et obtenir le nom. quelqu'un peut-il me dire comment je peux le faire en faisant une classe et en utilisant la méthode _ _ init _ _?enregistrer des données et appeler des données python

+2

Magic? Si vous demandez seulement leur numéro d'identification et nom, comment pouvez-vous connaître leur âge: ^) –

+0

désolé à ce sujet, je voulais dire le nom .. – babikar

+0

@Mark, en Afrique du Sud, la première partie du numéro d'identification est la naissance rendez-vous amoureux. Ou quel numéro d'identification est-ce? – systemovich

Répondre

1

Pour obtenir des données d'un utilisateur, utilisez ce code (python 3).

ID = input("Enter your id: ") 

En python 2, remplacez l'entrée par raw_input.

La même chose devrait être faite pour obtenir le nom des utilisateurs. Cela va l'enregistrer dans une variable, qui peut être utilisée plus tard dans le programme. Si vous souhaitez enregistrer dans un fichier, utilisez le code suivant:

w = open('\path\to\file.txt', 'w') 
w.write(ID, age) 
w.close() 
1

si vous n'êtes pas concerné par la sécurité, vous pouvez utiliser le module pickle pour décaper un dictionnaire.

import pickle 

data = {} 

# whatever you do to collect the data 

data[id] = name 
pickle.dump(data, filename) 

new_data = pickle.load(filename) 
new_name = new_data[id] 
#new_name == name 

autrement utiliser le module sqlite3

import sqlite3 

conn = sqlite3.connect(filename) 
cur = conn.cursor() 
cur.execute('CREATE TABLE IF NOT EXISTS names (id INTEGER, name TEXT)') 

#do whatever you do to get the data 

cur.execute('INSERT INTO names VALUES (?,?)', (id, name)) 


#to get the name later by id you would do... 

cur.execute('SELECT name FROM names WHERE id = ?', (id,)) 
name = cur.fetchone()[0] 
+0

est-il un moyen de le faire en faisant un cours? et en utilisant la méthode _ _ init _ _? – babikar

2

La "demande" partiel, comme @ réponse Zonda dit, pourrait utiliser raw_input (ou Python 3 de input) à un terminal ("fenêtre de commande" dans Windows) mais il pourrait aussi utiliser une application web, ou une application graphique - vous ne nous en direz pas assez sur l'emplacement des utilisateurs (sur la même machine que vous utilisez pour exécuter votre code, ou sur un navigateur pendant que votre code fonctionne sur un serveur?) et si l'interface graphique ou les interfaces textuelles sont préférées, il est impossible de donner des conseils plus précis. Pour stocker et récupérer les données, un moteur SQL comme mentionné dans la réponse de @ aaron est une possibilité (bien que certains pourraient considérer que c'est excessif si c'est tout ce que vous voulez sauvegarder), mais son alternative suggérée d'utiliser directement pickle sens - je recommanderais plutôt le module d'étagère, qui offre (à peu près) l'équivalent d'un dictionnaire persistant sur le disque. (Les clés, cependant, ne peuvent être que des chaînes - mais même si vos ID sont des entiers, ce n'est pas un problème, utilisez simplement str(someid) comme clé à la fois pour stocker et pour récupérer).

Dans un commentaire vraiment bizarre, je vois que vous demandez ...:

est-il possible de le faire en faisant une classe ? et en utilisant la méthode __init__ ?

Bien sûr, il est un moyen de faire « dans une classe, en utilisant la méthode __init__ » plus tout ce que vous pouvez faire dans une fonction - au pire, vous écrivez tout le code qui (dans un programme sensible) être dans la fonction, dans la méthode __init__ à la place (au lieu de return, vous stash le résultat dans self.result et puis obtenez l'attribut .result de l'instance étrangement inutile que vous avez ainsi créé).

Mais il a un sens d'utiliser une classe que lorsque vous besoin méthodes spéciales, ou si vous voulez associer état et le comportement, et vous n'explique pas du tout pourquoi l'une des conditions devrait appliquer ici, ce qui est pourquoi je l'appelle votre demande "bizarre" - vous fournissez absolument aucun contexte pour expliquer pourquoi vous voudriez tout à la place de fonctions.

Si vous pouvez préciser vos motivations (idéalement en éditant votre question, ou, mieux encore, demander un contrat distinct, mais pas en élargissant votre question dans les commentaires divers -!) Peut-être il est possible de vous aider.

+0

Ok Ok, vous m'avez attrapé sur la chose de base de données relationnelle. Je tirais surtout sa jambe. Je suis curieux de savoir ce qui ne va pas avec 'pickle' cependant. – aaronasterling

+0

wooow im demander de l'aide et ur tirant ma jambe !!! – babikar

+0

@babikar, c'était une réponse valable. C'est juste qu'il est assez évident que vous essayez de mettre en gage une tâche de devoirs sur nous et vous n'êtes pas incroyablement clair sur ce que vous voulez. Toute cette histoire de "__init__" est assez ridicule. Voulez-vous que la classe modélise un utilisateur ou une collection d'utilisateurs? Que veut dire «sauver» dans ce contexte? Pour un fichier? à une base de données? pour une utilisation ultérieure dans le programme? etc. etc. Essentiellement, posez une question sérieuse et vous obtiendrez une réponse sérieuse. – aaronasterling

Questions connexes