2016-04-19 14 views
1

私はPythonでプログラミングするのが初めてで、いくつかのデータを操作するために作成したループをインポートする際にいくつかの問題があります。Python:ループをインポートしようとしています

は具体的には、私のメインのスクリプトに私は次のコードを持っている:

wb=xw.Workbook('/Census/B05.xls') 

numbers=range(16,56) 

multiples8=range(16,56,8) 

data=list(set(numbers)-set(multiples8)) 

import loop1 

を、私は、コマンドimport loop1を実行した後、私はエラーを取得:

File "<ipython-input-15-d5d478cf704f>", line 10, in <module> 
    import loop1 

    File "loop1.py", line 8, in <module> 
    for x in set(data): 

NameError: name 'data' is not defined. 

LOOP1スクリプトが読み:

for x in set(data): 

     if x-1 in set(multiples8): xw.Range('SQL Results','L'+str(x-1)+':S'+str(x-1)).value=xw.Range('SQL Results','D'+str(x)+':K'+str(x), atleast_2d=True).value 

      else: 

     if x-2 in set(multiples8): xw.Range('SQL Results','T'+str(x-2)+':AA'+str(x-2)).value=xw.Range('SQL Results','D'+str(x)+':K'+str(x), atleast_2d=True).value 

     else: 
      if x-3 in set(multiples8): 
        xw.Range('SQL Results','AB'+str(x-3)+':AI'+str(x-3)).value=xw.Range('SQL Results','D'+str(x)+':K'+str(x), atleast_2d=True).value 
      else: 
       if x-4 in set(multiples8): 
         xw.Range('SQL Results','AJ'+str(x-4)+':AQ'+str(x-4)).value=xw.Range('SQL Results','D'+str(x)+':K'+str(x), atleast_2d=True).value 
       else: 
        if x-5 in set(multiples8): 
          xw.Range('SQL Results','AR'+str(x-5)+':AY'+str(x-5)).value=xw.Range('SQL Results','D'+str(x)+':K'+str(x), atleast_2d=True).value 
        else: 
         if x-6 in set(multiples8): 
           xw.Range('SQL Results','AZ'+str(x-6)+':BG'+str(x-6)).value=xw.Range('SQL Results','D'+str(x)+':K'+str(x), atleast_2d=True).value 
         else: 
          if x-7 in set(multiples8): 
            xw.Range('SQL Results','BH'+str(x-7)+':BO'+str(x-7)).value=xw.Range('SQL Results','D'+str(x)+':K'+str(x), atleast_2d=True).value 

私は非常に助けていただければ幸いです。

ありがとうございました。

+0

読んでいました。あなたはインデントを修正していただけますか?エディタで '{}'ボタンを使ってコードブロックを作成します。 –

+0

あなたの問題は 'data'変数が' loop1.py'ファイルで定義されていないことですが、インポートは直接の問題ではありません –

+0

どのようにしてloop1.pyがデータ変数を認識するか、それについての変数は? –

答えて

2

dataを受け入れる方法をloop1.pyに入力してからインポートしてください。

# loop1.py 
def my_loop(data): 
    for x in set(data): 
     # stuff 

そして、残りのコードは、質問の下で「編集」リンクがあり

wb=xw.Workbook('/Census/B05.xls') 

numbers=range(16,56) 
multiples8=range(16,56,8) 
data=list(set(numbers)-set(multiples8)) 

from loop1 import my_loop 
my_loop(data) 
+0

ありがとうございます!私はこれを試してみる。 –

+0

これはほんの一例ですが、loop1.pyに 'wx'をインポートし、他の変数をメソッド –

+0

に渡す必要もあります。 –

関連する問題