私の質問が初心者だとお詫び申し上げますが、Python(2.7)でタプルの文字列に基づいて変数を代入する際には、ロードブロッキングがあります。文字列を使って変数をタプルで定義する
私は過去に変数を割り当てたり、文字列を使って名前を付けることはできませんでした(例:rowId = '%sDays' %workoutMode
)。しかし、タプル環境では、私はいくつかの問題があります。
私はデータベースから引き出し、同じコードをそれらに適用する3つの異なるテーブルを持っています。この例では、データをプルして定義されたリストの文字列に基づいて印刷したいと考えています。しかし、文字列に基づいて変数を割り当てるのに問題があります。ここに私のコードは次のとおりです。
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
このコードが返されます。
SyntaxError: invalid syntax
私は別の修正を試みたと私は運を持っていませんよ。文字列/タプルに欠けている特定のフォーマットがありますか?
********** EDIT **************
私は私がやろうとしていたものと非常に明確ではなかったように思えます。基本的に私は、各カテゴリごとにコードを書く必要をなくすためにループを作成しようとしています。私はもう少しダイナミックなだけで、各catagoryための関数を作成するよりも、コードを作成しようとしている
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
:だから、例えば私は、このコードは動作しますが、「腕」に関連するデータを印刷したいです。私はこれについて間違った方法をとっていると確信しています。私はお詫びします、私はプログラミングには新しいです。
完全バックトレースを含めてください。バックトレースは、構文エラーがどこにあるのかをほぼ確実に示します。 –
'rowId = '%s日'%workoutMode'は' rowId'変数に '%sDays '%workoutMode'が評価する値を代入しています。ここでやろうとしているのは正反対で有効なPython構文ではありません。動的に変数を作成する場合は 'setattr()'をチェックしてください。 – zwer
あなたがしようとしていることはまったく明確ではありません。なぜあなたはそのようなタプルを定義しようとしていますか? –