2014-03-31 140 views
-1

下面援助是我的代码部分:蟒蛇 - 与计数循环

if again(): 
     print ('%s T: %s') % (m, hsh) 
     count = 1 
     m = 0.001 
     amount = m/0.01 
     amount = int(amount) 
     print ('Betting %s m') % m 
     apply(amount, int(count)) 
    else: 
     print ('%s T: %s') % (m, hsh) 
     try: 
      count = count * 2 
     except: 
      count = 1 
      count = count * 2 

     print count  
     m = 0.001 * count 
     amount = m/0.01 
     amount = int(amount) 
     print ('K %s m') % m 
     apply(amount, int(count)) 

如果函数again()返回true,什么是suppost做的部分是打印计数,这是始终设置为1,如果again()是真的。

如果返回false,它打印数* 2

如果它返回真3倍,它打印

1 
1 
1 

如果返回false 3倍,它打印

2 
4 
8 

但是,它只是打印

2 
2 
2 

如果第一次返回false,try除了未分配的变量错误。

我不指定变量数甚至在其他地方使用它。

+2

听起来像一个范围的问题,可能是。你是否尝试使用超出范围的变量? – ThorSummoner

+0

所有的变量都在那里创建 – user3412816

回答

1

我不知道你的代码的其余部分是什么样子,但count应该是一个全局变量,你用try/catch块的破解是非常糟糕的做法和非标准。

count一个全局变量,然后你可以重构你的if/else的功能,只是调用:

count = 1 

# the rest of your code, I'm guessing some loop 

def my_function(m, hsh): 
    if again(): 
     print ('%s T: %s') % (m, hsh) 
     count = 1 
     m = 0.001 
     amount = m/0.01 
     amount = int(amount) 
     print ('Betting %s m') % m 
     apply(amount, int(count)) 
    else: 
     print ('%s T: %s') % (m, hsh) 
     count = count * 2 
     print count  
     m = 0.001 * count 
     amount = m/0.01 
     amount = int(amount) 
     print ('K %s m') % m 
     apply(amount, int(count)) 
+0

这个修复了它,谢谢。 – user3412816

1

您需要定义count外面的if/else语句的。

count = 1 #This could be defined outside the method or class and accessed with global 


global count 
if again(): 
     print ('%s T: %s') % (m, hsh) 
     count = 1 #this will access the count outside the if 
     m = 0.001 
     amount = m/0.01 
     amount = int(amount) 
     print ('Betting %s m') % m 
     apply(amount, int(count)) 
    else: 
     print ('%s T: %s') % (m, hsh) 
     count = count * 2 

     print count  
     m = 0.001 * count 
     amount = m/0.01 
     amount = int(amount) 
     print ('K %s m') % m 
     apply(amount, int(count)) 

不知道正是你正在尝试做的