需要在Python中的简单子网程序中进行一些错误检查吗

需要在Python中的简单子网程序中进行一些错误检查吗,python,subnet,Python,Subnet,我有一个子网程序,用于显示特定数量的主机或网络所需的子网掩码。我的问题是我不能让底层的其他人工作。它一直告诉我它有一个意外的未登录,但当我缩进时,它会说意外的未登录。我如何解决这个问题,让它告诉用户唯一接受的输入是“主机”、“网络”或“q” while True: print("-------------------------------------------------------------------") print("") print("Welcome to

我有一个子网程序,用于显示特定数量的主机或网络所需的子网掩码。我的问题是我不能让底层的其他人工作。它一直告诉我它有一个意外的未登录,但当我缩进时,它会说意外的未登录。我如何解决这个问题,让它告诉用户唯一接受的输入是“主机”、“网络”或“q”

 while True:
    print("-------------------------------------------------------------------")
    print("")
    print("Welcome to the Basic Information Generator : Automatic Subnet System")
    print("")
    try:
        inquire = raw_input("Are you figuring for HOSTS or NETWORKS? \
        ('Q' exits') :").lower()
        if inquire == 'hosts':
            try:
                number = int(raw_input("How many HOSTS do you need on the network?"))
                if number == 0:
                    print("[WARNING] Your subnet mask is 255.255.255.254 [WARNING]")
                    print("This subnet has NO usable hosts...")
                if number <= 2 and number > 0:
                    print("Your subnet mask is 255.255.255.252")
                if number <= 6 and number > 2:
                    print("Your subnet mask is 255.255.255.248")
                if number <= 14 and number > 6:
                    print("Your subnet mask is 255.255.255.240")
                if number <= 30 and number > 14:
                    print("Your subnet mask is 255.255.255.224")
为True时:
打印(“----------------------------------------------------------------------------”)
打印(“”)
打印(“欢迎使用基本信息生成器:自动子网系统”)
打印(“”)
尝试:
inquire=raw_input(“您是在计算主机还是网络\
('Q'exits'):“”.lower()
如果inquire==“主机”:
尝试:
number=int(原始输入(“网络上需要多少主机?”)
如果数字==0:
打印(“[警告]您的子网掩码是255.255.255.254[警告]”)
打印(“此子网没有可用的主机…”)
如果编号为0:
打印(“您的子网掩码是255.255.255.252”)
如果编号2:
打印(“您的子网掩码为255.255.255.248”)
如果编号6:
打印(“您的子网掩码为255.255.255.240”)
如果是14号:
打印(“您的子网掩码为255.255.255.224”)
其余部分在pyscripter中正确缩进,但不会在此缩进

            if number <= 62 and number > 30:
                print("Your subnet mask is 255.255.255.192")
            if number <= 126 and number > 62:
                print("Your subnet mask is 255.255.255.128")
            if number <= 254 and number > 126:
                print("Your subnet mask is 255.255.255.0")
            if number <= 510 and number > 254:
                print("Your subnet mask is 255.255.254.0")
            if number <= 1022 and number > 510:
                print("Your subnet mask is 255.255.252.0")
            if number <= 2046 and number > 1022:
                print("Your subnet mask is 255.255.248.0")
            if number <= 4094 and number > 2046:
                print("Your subnet mask is 255.255.240.0")
            if number <= 8190 and number > 4094:
                print("Your subnet mask is 255.255.224.0")
            if number <= 16382 and number > 8190:
                print("Your subnet mask is 255.255.192.0")
            if number <= 32766 and number > 16382:
                print("Your subnet mask is 255.255.128.0")
            if number <= 65534 and number > 32766:
                print("Your subnet mask is 255.255.0.0")
            if number <= 131070 and number > 65534:
                print("Your subnet mask is 255.254.0.0")
            if number <= 262142 and number > 131070:
                print("Your subent mask is 255.252.0.0")
            if number <= 524286 and number > 262142:
                print("Your subnet mask is 255.248.0.0")
            if number <= 1048574 and number > 524286:
                print("Your subnet mask is 255.240.0.0")
            if number <= 2097150 and number > 1048574:
                print("Your subnet mask is 255.224.0.0")
            if number <= 4194302 and number > 2097150:
                print("Your subnet mask is 255.192.0.0")
            if number <= 8388606 and number > 4194302:
                print("Your subnet mask is 255.128.0.0")
            if number <= 16777214 and number > 8388606:
                print("Your subnet mask is 255.0.0.0")
            if number <= 33554430 and number > 16777214:
                print("Your subnet mask is 254.0.0.0")
            if number <= 67108862 and number > 33554430:
                print("Your subnet mask is 252.0.0.0")
            if number <= 134217726 and number > 67108862:
                print("Your subnet mask is 248.0.0.0")
            if number <= 268435454 and number > 134217726:
                print("Your subnet mask is 240.0.0.0")
            if number <= 536870910 and number > 268435454:
                print("Your subnet mask is 224.0.0.0")
            if number <= 1073741822 and number > 536870910:
                print("Your subnet mask is 192.0.0.0")
            if number <= 2147483646 and number > 1073741822:
                print("Your subnet mask is 128.0.0.0")
            if number > 2147483646:
                print("Invalid Number of Hosts. No such Netmask applicable.")
        except:
                print("Enter a number between 1 and 2,147,483,646")
    elif inquire == 'networks':
        number = input("How many SUBNETS do you need on the network?")
        if number == 0:
            print("[WARNING] Your subnet mask is 0.0.0.0 [WARNING]")
            print("This netmask yeilds NO usable subnets...")
        if number == 1:
            print("Your subnet mask is 255.0.0.0")
        if number == 2:
            print("Your subnet mask is 255.128.0.0")
        if number <= 4 and number > 2:
            print("Your subnet mask is 255.192.0.0")
        if number <= 8 and number > 4:
            print("Your subnet mask is 255.224.0.0")
        if number <= 16 and number > 8:
            print("Your subnet mask is 255.240.0.0")
        if number <= 32 and number > 16:
            print("Your subnet mask is 255.248.0.0")
        if number <= 64 and number > 32:
            print("Your subnet mask is 255.252.0.0")
        if number <= 128 and number > 64:
            print("Your subnet mask is 255.254.0.0")
        if number <= 256 and number > 128:
            print("Your subnet mask is 255.255.0.0")
        if number <= 512 and number > 256:
            print("Your subnet mask is 255.255.128.0")
        if number <= 1024 and number > 512:
            print("Your subnet mask is 255.255.192.0")
        if number <= 2048 and number > 1024:
            print("Your subnet mask is 255.255.224.0")
        if number <= 4096 and number > 2048:
            print("Your subnet mask is 255.255.240.0")
        if number <= 8192 and number > 4096:
            print("Your subnet mask is 255.255.248.0")
        if number <= 16384 and number > 8192:
            print("Your subnet mask is 255.255.252.0")
        if number <= 32768 and number > 16384:
            print("Your subnet mask is 255.255.254.0")
        if number <= 65536 and number > 32768:
            print("Your subnet mask is 255.255.255.0")
        if number <= 131072 and number > 65536:
            print("Your subnet mask is 255.255.255.128")
        if number <= 262144 and number > 131072:
            print("Your subnet mask is 255.255.255.192")
        if number <= 524288 and number > 262144:
            print("Your subnet mask is 255.255.255.224")
        if number <= 1048576 and number > 524288:
            print("Your subnet mask is 255.255.255.240")
        if number <= 2097152 and number > 1048576:
            print("Your subnet mask is 255.255.255.248")
        if number <= 4194304 and number > 2097152:
            print("Your subnet mask is 255.255.255.252")
    elif inquire == 'q':
            break
    else:
        print("NEED CERTAIN THINGS")
如果编号为30:
打印(“您的子网掩码为255.255.255.192”)
如果编号62:
打印(“您的子网掩码为255.255.255.128”)
如果编号126:
打印(“您的子网掩码为255.255.255.0”)
如果编号254:
打印(“您的子网掩码为255.255.254.0”)
如果编号510:
打印(“您的子网掩码为255.255.252.0”)
如果编号1022:
打印(“您的子网掩码为255.255.248.0”)
如果编号为2046:
打印(“您的子网掩码为255.255.240.0”)
如果编号为4094:
打印(“您的子网掩码为255.255.224.0”)
如果编号8190:
打印(“您的子网掩码为255.255.192.0”)
如果号码是16382:
打印(“您的子网掩码为255.255.128.0”)
如果编号32766:
打印(“您的子网掩码为255.255.0.0”)
如果编号为65534:
打印(“您的子网掩码为255.254.0.0”)
如果编号为131070:
打印(“您的subent掩码为255.252.0.0”)
如果号码262142:
打印(“您的子网掩码为255.248.0.0”)
如果编号为524286:
打印(“您的子网掩码为255.240.0.0”)
如果编号为1048574:
打印(“您的子网掩码为255.224.0.0”)
如果号码为2097150:
打印(“您的子网掩码为255.192.0.0”)
如果编号为4194302:
打印(“您的子网掩码为255.128.0.0”)
如果编号为8388606:
打印(“您的子网掩码为255.0.0.0”)
如果编号为16777214:
打印(“您的子网掩码为254.0.0.0”)
如果编号为33554430:
打印(“您的子网掩码为252.0.0.0”)
如果编号为67108862:
打印(“您的子网掩码为248.0.0.0”)
如果编号为134217726:
打印(“您的子网掩码为240.0.0.0”)
如果编号为268435454:
打印(“您的子网掩码为224.0.0.0”)
如果编号为536870910:
打印(“您的子网掩码为192.0.0.0”)
如果编号为1073741822:
打印(“您的子网掩码为128.0.0.0”)
如果编号>2147483646:
打印(“无效的主机数。没有适用的网络掩码”)
除:
打印(“输入一个介于1和2147483646之间的数字”)
elif inquire==“网络”:
number=输入(“网络上需要多少子网?”)
如果数字==0:
打印(“[警告]您的子网掩码为0.0.0.0[警告]”)
打印(“此网络掩码不包含可用的子网…”)
如果数字==1:
打印(“您的子网掩码为255.0.0.0”)
如果数字==2:
打印(“您的子网掩码为255.128.0.0”)
如果编号2:
打印(“您的子网掩码为255.192.0.0”)
如果编号4:
打印(“您的子网掩码为255.224.0.0”)
如果编号8:
打印(“您的子网掩码为255.240.0.0”)
如果是16号:
打印(“您的子网掩码为255.248.0.0”)
如果编号32:
打印(“您的子网掩码为255.252.0.0”)
如果编号64:
打印(“您的子网掩码为255.254.0.0”)
如果是128号:
打印(“您的子网掩码为255.255.0.0”)
如果是256号:
打印(“您的子网掩码为255.255.128.0”)
如果编号512:
打印(“您的子网掩码为255.255.192.0”)
如果编号1024:
打印(“您的子网掩码为255.255.224.0”)
如果编号为2048:
打印(“您的子网掩码为255.255.240.0”)
如果编号为4096:
打印(“您的子网掩码为255.255.248.0”)
如果号码是8192:
打印(“您的子网掩码为255.255.252.0”)
如果号码是16384:
打印(“您的子网掩码为255.255.254.0”)
如果编号32768:
打印(“您的子网掩码为255.255.255.0”)
如果编号为65536:
打印(“您的子网掩码为255.255.255.128”)
如编号131072:
打印(“您的子网掩码为255.255.255.192”)
如果编号262144:
打印(“您的子网掩码为255.255.255.224”)
如果编号为524288:
打印(“您的子网掩码为255.255.255.240”)
如果编号为1048576:
    try:
        inquire = ...                         
        ...
        if:
            ...
        else:
        print("NEED CERTAIN THINGS")    # unexpected unindent error on this line...
     except:     # Because this is missing
        pass     # Do something here