Ich entschuldige mich, wenn meine Frage Anfänger scheint, aber ich habe einen Roadblock getroffen, wenn es um die Zuweisung von Variablen auf einer Zeichenfolge für Tupel in Python (2.7) kommt.Verwenden einer Zeichenfolge zum Definieren von Variablen mit Tupeln
In der Vergangenheit hatte ich keine Probleme, eine Variable zuzuweisen und einen String zu verwenden, um ihm einen Namen zu geben (zB: rowId = '%sDays' %workoutMode
). Aber in einer Tupel-Umgebung habe ich einige Probleme.
Ich habe drei verschiedene Tabellen, die ich aus einer Datenbank ziehen und denselben Code auf sie anwenden möchte. In diesem Fall möchte ich die Daten abrufen und basierend auf der Zeichenfolge aus der definierten Liste drucken. Aber ich habe ein Problem beim Zuweisen von Variablen basierend auf Zeichenfolgen. Hier ist mein Code:
def workoutCycle():
catagories = 'Legs', 'Arms', 'Back'
for catagory in catagories:
conn = sqlite3.connect('workoutData.db')
c = conn.cursor()
c.execute ('SELECT round(%sDays, 1), round(%sDaysTotal, 1) FROM Profile_%s' %(catagory, catagory, catagory))
originalData = c.fetchall()
('%sDays' %catagory, '%sDaysTotal' %catagory) = tuple(originalData[0])
print originalData
print '%sDays' %catagory
print '%sDaysTotal' %catagory
Dieser Code gibt:
SyntaxError: invalid syntax
Ich habe verschiedene Modifikationen versucht, und ich bin nicht Glück haben. Gibt es ein bestimmtes Format, das mir für Strings/Tupel fehlt?
********** EDIT **************
Es scheint, als ob ich nicht ganz klar mit war, was ich versuche zu tun. Im Wesentlichen versuche ich eine Schleife zu erstellen, die ersetzt werden muss, indem ich einen Code für jede Kategorie schreibe. So zum Beispiel mag ich die Daten drucken im Zusammenhang mit „Waffen“, dieser Code funktioniert:
def armCycle():
conn = sqlite3.connect('workoutData.db')
c = conn.cursor()
c.execute ('SELECT round(ArmsDays, 1), round(ArmsDaysTotal, 1) FROM Profile_Arms')
#originalData = c.fetchall()
originalData = c.fetchall()
(ArmsDays, ArmsDaysTotal) = tuple(originalData[0])
print originalData
print ArmsDays
print ArmsDaysTotal
Ich versuche, einen Code zu erstellen, die ein wenig mehr Dynamik als nur eine Funktion für jeden catagory zu schaffen. Ich bin mir sicher, dass ich das falsch mache. Ich entschuldige mich, ich bin neu im Programmieren.
Bitte geben Sie den vollständigen Backtrace ein. Das Backtrace zeigt fast sicher, wo der Syntaxfehler ist. –
'rowId = '% sDays'% workoutMode' weist der' rowId' -Variablen den Wert zu, für den '% sDays'% workoutMode' auswertet. Was Sie hier versuchen, ist das Gegenteil und keine gültige Python-Syntax. Überprüfen Sie 'setattr()', wenn Sie Variablen dynamisch erstellen möchten. – zwer
Es ist überhaupt nicht klar, was Sie zu tun versuchen. Warum versuchst du ein Tupel so zu definieren? –