2015-05-14 6 views
0

Я пытаюсь выйти из программы, если значение не то, что я хочу, но ничего не делает. В чем проблема? Я думаю, что он останавливает программу, но не печатает «Invalid Subnet Mask».Функция выхода не работает

from sys import exit 
def maskvalidation(mask): 
    string = mask.split(".") 
    toInt = [int(i) for i in string] 
    binary = [bin(x) for x in toInt] 
    purebin = [] 
    for x in binary: 
     purebin.append(x[2:]) 
    if purebin[0] == "11111111": 
     print("good") 
    else: 
     exit("Invalid Subnet Mask") 

maskvalidation("251.0.0.0") 
+0

вы ищете 'возвращения («Invalid маска подсети»)' – KronoS

+0

Запуск программы прекрасно работает для меня. :/ – KronoS

+0

Я бы хотел, чтобы он распечатывал «Invalid Subnet Mask» и останавливал программу одновременно. – Jin

ответ

2

sys.exit помощь

 
    exit(...) 
     exit([status]) 

     Exit the interpreter by raising SystemExit(status). 
     If the status is omitted or None, it defaults to zero (i.e., success). 
     If the status is an integer, it will be used as the system exit status. 
     If it is another kind of object, it will be printed and the system 
     exit status will be one (i.e., failure). 

Так что в настоящее время используется правильно в этом вопросе.

Кроме того, ваша программа-образец работает отлично для меня в linux для Python2.7 и Python3.4.

Она тем не менее направить вывод stderr, а не stdout, поэтому, возможно, что это проблема, которую вы видите

+0

Я просто запустил его на своем Linux. не работает ... – Jin

+0

@Jin, вы запускаете его с консоли или внутри идеи или каким-либо другим способом? Какую версию Python вы используете? –

+0

У меня есть идеал на моем mac os x. Я использую python 3.4.3 – Jin

Смежные вопросы