2016-07-27 5 views
0

Ich habe gesucht, aber ich kann nichts finden, das mein Problem beschreibt. Ich lerne gerade Python, damit ich vielleicht nicht einmal weiß, wie ich die Frage richtig formulieren soll.Python Wie kann man tatsächlich definierte Daten erfassen und abrufen?

Ich versuche, eine Auswahl von definierten Variablen randomisieren, aber ich kann nicht herausfinden, wie diese Variablen abgerufen werden. Beispiel:

import random 

user1 = "usernamehere1" 
userkey1 = "3097fds09aj4023jr30mf2ag2" 
user2 = "usernamehere2" 
userkey2 = "09asfh34907fsenk32498fgg9" 
user3 = "usernamehere3" 
userkey3 = "234kn34bnero8wn34lnkjwi34" 

numbers = ["1", "2", "3"] 

user_number = random.choice(numbers) 
user = "user" + user_number 
wif = "userkey" + user_number 

print(user) 
print(wif) 

Statt sich: (sagen wir, wenn es "2" als Zufallszahl auswählt):

  • usernamehere2
  • 09asfh34907fsenk32498fgg9

bekomme ich nur:

  • user2
  • userkey2

Alle Vermutungen, was mache ich falsch?

+1

Variablen funktionieren nicht so. Benutze ein Wörterbuch. –

+1

Sie sollten ein [dict] (https://de.wikibooks.org/wiki/Python_Programming/Dictionaries) verwenden, um Ihre Benutzer zu speichern. Damit könntest du auf sie als 'my_dict [" user "+ user_number]' zugreifen. –

+0

Danke. Ändert sich das, wie ich sie zufällig mache? –

Antwort

0

du ein Wörterbuch mit nur verwenden können:

import random 

users = { 
    "usernamehere1": "3097fds09aj4023jr30mf2ag2", 
    "usernamehere2": "09asfh34907fsenk32498fgg9", 
    "usernamehere3": "234kn34bnero8wn34lnkjwi34" 
} 

user = random.sample(users.keys(), 1) 

print(user[0]) 
print(users[user[0]]) 
+0

Das funktioniert super! Wie weise ich Benutzer und WIF zu? Zum Beispiel: user = Benutzer [0] wif = Benutzer [user [0]] –

+0

Für diese Variablen arbeiten zuzuweisen: 'Keypair = random.sample (Benutzer.Tasten(), 1) ' ' user = Keypair [0] ' ' wif = Benutzer [Keypair [0]] ' ' print (Benutzer) ' ' print (wif) ' –

+0

Ja, das funktioniert fein..... –

1

betrachten Sie diesen Beitrag To convert string to variable name, Sie können tun, was Sie wollen mit exec, um Strings zu einer Variablen ändern, aber das ist nicht sicher und definitiv nicht zu empfehlen. Da der Beitrag hier erklärt sollten Sie die Wörterbücher verwenden, anstatt diese wie users["user" + user_number]

import random 

user1 = "usernamehere1" 
userkey1 = "3097fds09aj4023jr30mf2ag2" 
user2 = "usernamehere2" 
userkey2 = "09asfh34907fsenk32498fgg9" 
user3 = "usernamehere3" 
userkey3 = "234kn34bnero8wn34lnkjwi34" 

dict = {} 
dict[user1] = userkey1 
dict[user2] = userkey2 
dict[user3] = userkey3 

numbers = ["1", "2", "3"] 

user_number = random.choice(numbers) 
user = "user" + user_number 

print(user) 
print(dict[user]) 
+0

Danke. Ich lese jetzt Wörterbücher, aber es führt mich zu der gleichen Frage. Ich verstehe nicht, wenn jedes Schlüsselpaar sein eigenes Wörterbuch benötigt oder wie ich sie zufällig würde. –

+0

Es hängt davon ab, wie Sie die Informationen speichern möchten, Sie können es entweder wie andere Benutzer in ihren Antworten trennen oder tun, was ich oben gezeigt habe, wobei Benutzername der Schlüssel des Wörterbuchs ist und der Benutzerschlüssel der Wert im Wörterbuch ist. Es ist eine Designwahl –

0

Die Kommentare korrekt sind zu tun, ich wollte nur eine Art und Weise teilen, um sie umzusetzen. Sie können sich Wörterbücher als "Nachschlagetabelle" vorstellen, wo Sie ein Schlüssel -> Wert-Paar zuweisen. Es gibt eine Menge Informationen here

import random 

users = {"1":"usernamehere1", 
     "2":"usernamehere2", 
     "3":"usernamehere3"} 

keys = {"1":"3097fds09aj4023jr30mf2ag2", 
     "2":"09asfh34907fsenk32498fgg9", 
     "3":"234kn34bnero8wn34lnkjwi34"} 

numbers = ["1", "2", "3"] 

user_number = random.choice(numbers) 
user = "user" + users[user_number] 
wif = "userkey" + keys[user_number] 

print(user) 
print(wif) 
+0

FANTASTISCH! Ich werde dies versuchen. Ich bin der Typ, um mit tatsächlichen Beispielen zu lernen, und ich schätze es sehr! –

+0

Ich wollte nur sagen, dass ich dies für alle 100 Keypairs implementieren konnte und es hat super funktioniert. Nun lese ich alles neu, um ein grundlegendes Verständnis von Wörterbüchern zu erhalten. Sehr dankbar für Ihre Hilfe. –

0
import random 
users = [ 
     { 
      'user':"usernamehere1", 
      'userkey':"3097fds09aj4023jr30mf2ag2" 
     }, 
     { 
      'user':"usernamehere2", 
      'userkey':"09asfh34907fsenk32498fgg9" 
     }, 
     { 
      'user':"usernamehere3", 
      'userkey':"234kn34bnero8wn34lnkjwi34" 
     } 
    ] 

user_number = random.choice(range(1,len(users))) 

print(users[user_number]['user']) 
print(users[user_number]['userkey']) 
Verwandte Themen