2016-04-14 32 views
1

Bunun gibi bir şey olduğunu hayal edin. x her saniye hesaplanır ve her saniyede farklı bir değere sahiptir. x'in değeri dayanarak, farklı bir şey yapmak istiyorum xİçine girmeden nasıl bir durumun dışına çıkamazsınız?

if 10 > x > 0: 
    print "It's temporary" 
    do_something(x) 
elif x < 0: 
    print "It gets activated but stay activated" 
    do_something_else(x) 

x ilk koşulu varsa, o durumda iki içine almak, ama ne ilgilendiğim zamanlar x gitti olmasıdır gelmez ikinci koşul, eğer x geri dönüp pozitifleşse bile, ilk koşula girmez, fakat ikinci durumda kalır.

Böyle bir şey yapmak için stereotipik bir algoritma var mı?

+3

için aşağıdaki özyinelemeli fonksiyon adapte edilebilir görünüyor? Tekrarlıyor musun? – miradulo

+0

x her saniye hesaplanır ve her saniyede farklı bir değere sahiptir. X değerine dayanarak x'ten farklı bir şey yapmak istiyorum. – auryndb

+3

Sorduğumu düşündüğüm şeyi yeniden yazayım - bir kaç yinelemede x'i değerlendirmek istiyorsanız, o zaman x'in ilk koşulunuzu karşılamadığı anda "elif" ifadenizde ne olursa olsun sürekli olarak yürütmek istediğinizde x'in gelecekteki değerleri? – miradulo

cevap

1

, bu amaçla x geri alır ve positive_ olursa sen _even demek oluyor ne

def do_something(x, stayActivated = False): 
    if not stayActivated and (10 > x > 0): 
     print "It's temporary" 
     # make an adjustment with said external function 
     do_something(x) 
    elif not stayActivated and x < 0: 
     print "It gets activated but stays activated" 
     do_something_else(x, stayActivated = True) 
    elif x < 0: 
     # x has already been activated and other handling can be applied until any final 
     # condition is met 
2

x'un statik bir değer olmadığı ortama uyum sağlayabileceğinizi varsayarak bunun gibi bir şey işe yarayacaktır. Yorumlar bölümünde açıklamalar dayanarak

while 10 > x > 0: 
    print "It's temporary" 
    do_something(x) 
while True: # or something that has a chance of being false 
    if x < 0: 
     print "It gets activated but stay activated" 
     do_something_else(x) 
İlgili konular