2016-04-29 104 views
0

当我使用if语句时,我将如何循环下面的代码,我一直收到错误。我试图让下面的号码打印出来,511887和使用条件语句比较每4位二进制数,但我不断收到一个错误:NameError: name 'bin_list' is not defined为什么当我想要循环时出现错误

x=("bin_list") 

y=("bin_list[SN_0]") 
["0001"] 

"0101" 
"0001" 
"0001" 
"1000" 
"1000" 
"0111" 

SN_bin_0 = bin_list[SN_1] 
for x in range (0,7): 
    for index in range(len(L)): 
     print (y) 

SN_bin_1 = bin_list[SN_5] 
    for x in range (1,7): 
    for index in range(len(L)): 
     print (y) 

SN_bin_2 = bin_list[SN_1] 
    for x in range (2,7): 
    for index in range(len(L)): 
     print (y) 


SN_bin_3 = bin_list[SN_1] 
    for x in range (3,7): 
    for index in range(len(L)): 
     print (y) 

SN_bin_4 = bin_list[SN_8] 
    for x in range (4,7): 
    for index in range(len(L)): 
     print (y) 

SN_bin_5 = bin_list[SN_8] 
    for x in range (5,7): 
    for index in range(len(L)): 
     print (y) 

SN_bin_6 = bin_list[SN_7] 
    for x in range (6,7): 
    for index in range(len(L)): 
     print (y) 
+0

什么是你得到的错误?它看起来像你的缩进全是古怪的。 – Will

+0

SN_bin_0 = bin_list [SN_1] NameError:name'bin_list'没有被定义,但我已经从代码中定义了变量 –

+0

,它看起来像你没有定义'bin_list'。你正在定义'x'并为其分配字符串''bin_list“'。看起来你正在用'y'做类似的事情。 – Will

回答

0

它看起来像有你的代码的几个问题。下面是不是有效的Python:

x=("bin_list") 

y=("bin_list[SN_0]") 
["0001"] 

"0101" 
"0001" 
"0001" 
"1000" 
"1000" 
"0111" 

我想你想要的是有一个列表,它可以像这样来完成这些值:

bin_list = ["0101", "0001", "0001", "1000", "1000", "0111"] 

接下来,您要访问使用列表一个未定义的变量。您需要预先使用整数或定义SN_0

y = bin_list[0] 

​​

最后,你的缩进关上大部分的循环。您有:

SN_bin_1 = bin_list[SN_5] 
    for x in range (1,7): 
    for index in range(len(L)): 
     print (y) 

你想:

SN_bin_1 = bin_list[SN_5] 
for x in range (1,7):  # <-- one less indent here 
    for index in range(len(L)): 
    print (y) 

我不能确切地告诉你的代码的意思做,好像你不使用你的许多变量,而你的目标打印值为y一定的时间。一旦你修复了这些错误,如果代码仍然没有达到你想要的目标,请打开一个新的问题。

1

1列清单

而是写的:

["0001"] 
"0101" 
"0001" 
"0001" 
"1000" 
"1000" 
"0111" 

你可以把它的列表:

bin_list = ["0101","0001","0001","1000","1000","0111"] 

说明

  • 这是制作清单的正确方法:variable = [item1,item2,item3]
  • 它应该是一个清单,因为稍后您将使用索引来引用其中的项目。例如,bin_List[1]将返回字符串"0001"

2。可变x

而是写作的价值:

x=("bin_list") 

你应该这样做:

x=(bin_list) 

说明

  • 引号上bin_list使得它字符串。您希望x的值为列表bin_list
  • 在为变量分配变量x之前,您必须创建(请参阅第1步)。

3的可变y

而是写作的价值:

y=("bin_list[SN_0]") 

你应该这样做:

y= bin_list[SN_0] 

说明

  • bin_list[SN_0]上的引号使其成为字符串。您希望y的值为列表bin_list的索引[SN_0]处的项目。

4.未定义可变

以下是未定义

[SN_0] 
[SN_1] 
[SN_5] 
[SN_8] 
L 

它们中的每一个需要的值,例如:

SN_0 = 0 
SN_1 = 1 
SN_5 = 5 
SN_8 = 8 
L = x 

说明

  • 未定义的变量将返回错误。
  • 它们必须在for循环中使用之前全部定义。
  • 如果L应该引用该列表,则可以将其替换为x,因为该列表已分配变量x

4。压痕

下面的代码有一个额外的缩进:

SN_bin_1 = bin_list[SN_5] 
    for x in range (1,7): 
    for index in range(len(L)): 
     print (y) 

SN_bin_2 = bin_list[SN_1] 
    for x in range (2,7): 
    for index in range(len(L)): 
     print (y) 


SN_bin_3 = bin_list[SN_1] 
    for x in range (3,7): 
    for index in range(len(L)): 
     print (y) 

SN_bin_4 = bin_list[SN_8] 
    for x in range (4,7): 
    for index in range(len(L)): 
     print (y) 

它应该是:

SN_bin_1 = bin_list[SN_5] 
for x in range (1,7): 
    for index in range(len(L)): 
     print (y) 

SN_bin_2 = bin_list[SN_1] 
for x in range (2,7): 
    for index in range(len(L)): 
     print (y) 


SN_bin_3 = bin_list[SN_1] 
for x in range (3,7): 
    for index in range(len(L)): 
     print (y) 

SN_bin_4 = bin_list[SN_8] 
for x in range (4,7): 
    for index in range(len(L)): 
     print (y) 
相关问题