title: Python switch function
body: <p>I've been trying to write a simple Port Scanner using a simple switch function built with if. I've already searched here for a proper solution on how to make the switch function as usable as in C++ or similliar. I found the problem already being discussed on here <a href="https://stackoverflow.com/questions/60208/replacements-for-switch-statement-in-python">Replacements for switch statement in Python?</a> and i've tried a few of these approaches but haven't had any luck so far making it run properly. Whatever method i picked from the link i always get a syntax error on the second switch case like this : </p>
  
  <pre><code>  File "/home/h4v0kkx0008c/Desktop/Sources/setup/PortScannerV1.py", line 44
  if case(2):
            ^
  SyntaxError: invalid syntax
  </code></pre>
  
  <p>What might be the problem here?</p>
  
  <p>This is the full code i wrote so far :</p>
  
  <pre class="lang-py prettyprint-override"><code>from socket import *
  import time, socket, os, sys, string, argparse, logging, math
  
  n = raw_input("Choose Port range: \n(1)Standard Ports: 0 - 1025\n(2)Middle Range: 1025 - 5000\n(3)Higher Range: 5000 - 49151\n(4)Highest Range: 49151 - 65535\n(5)All Ports: 0 - 65535\n(6)Custom ")
  
  class switch(object):
      value = None
      def __new__(class_, value):
          class_.value = value
          return True
  
  def case(*args):
      return any((arg == switch.value for arg in args))
  
  
  while switch(n):
  
  
  
      if case(1):
          print"Your choice is: Standard Ports"
          target= raw_input("Please specify Host or Ip to scan: ")
          targetIP = gethostbyname(target)
          print 'Starting scan on host ', targetIP
          for i in range(0, 1025):
              s = socket(AF_INET, SOCK_STREAM)
              result = s.connect_ex((targetIP, i)
  
  
      if case(2):
          print"Your choice is: Middle Range"
          target= raw_input("Please specify Host or Ip to scan: ")
          targetIP = gethostbyname(target)
          print 'Starting scan on host ', targetIP
          for i in range(1025, 5000):
              s = socket(AF_INET, SOCK_STREAM)
              result = s.connect_ex((targetIP, i)
          break
  
      if case(3):
          print"Your choice is: Higher Range"
          target= raw_input("Please specify Host or Ip to scan: ")
          targetIP = gethostbyname(target)
          print 'Starting scan on host ', targetIP
          for i in range(500, 49151):
              s = socket(AF_INET, SOCK_STREAM)
              result = s.connect_ex((targetIP, i)
          break
  
      if case(4):
          print"Your choice is: Highest Range"
          target= raw_input("Please specify Host or Ip to scan: ")
          targetIP = gethostbyname(target)
          print 'Starting scan on host ', targetIP
          for i in range(49151, 65535):
              s = socket(AF_INET, SOCK_STREAM)
              result = s.connect_ex((targetIP, i)
          break
  
      if case(5):
          print"Your choice is: All Ports"
          target= raw_input("Please specify Host or Ip to scan: ")
          targetIP = gethostbyname(target)
          print 'Starting scan on host ', targetIP
          for i in range(0, 65535):
              s = socket(AF_INET, SOCK_STREAM)
              result = s.connect_ex((targetIP, i)
          break
  
      if case(6):
          print"Your choice is: Custom"
          target= raw_input("Please specify Host or Ip to scan: ")
          targetIP = gethostbyname(target)
          print 'Starting scan on host ', targetIP
          startPort= raw_input("Specify starting Port:")
          endPort= raw_input("Specify end Port:")
          for i in range(startPort, endPort):
              s = socket(AF_INET, SOCK_STREAM)
              result = s.connect_ex((targetIP, i)
          break
  </code></pre>