בתאריך יום רביעי, 19 בספטמבר 2012 12:11:04 UTC+3, מאת Dan Katorza: > בתאריך יום רביעי, 19 בספטמבר 2012 11:50:56 UTC+3, מאת Dan Katorza: > > > בתאריך יום רביעי, 19 בספטמבר 2012 11:14:29 UTC+3, מאת Chris Angelico: > > > > > > > On Wed, Sep 19, 2012 at 5:41 PM, Dan Katorza <dkato...@gmail.com> wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Hello again, > > > > > > > > > > > > > > > I have another question and i hope you will understand me.. > > > > > > > > > > > > > > > Is there any option where you can set the program to go back to lets > > > > say the top of the code? > > > > > > > > > > > > > > > I mean if the program finished the operation and i want to stay in the > > > > program and go back ro the start. > > > > > > > > > > > > > > > after any operation i want the option to do it again , go back to the > > > > main menu or full exit from the program, and i want it every time. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > i hope i'm clear :) > > > > > > > > > > > > > > > > > > > > > > > > > > > > Yep! Look up the docs and tutorial on "control flow" and "looping > > > > > > > > > > > > > > constructs". Sounds like what you want here is a 'while' loop. > > > > > > > > > > > > > > > > > > > > > > > > > > > > ChrisA > > > > > > > > > > > > Hi Chris, > > > > > > this is my code: > > > > > > > > > > > > #!/usr/bin/env python > > > > > > #Get the IP Address > > > > > > > > > > > > import sys, socket > > > > > > > > > > > > print ("\n\n#########################################################") > > > > > > print ("# Get IP from Host v 1.0 #") > > > > > > print ("#########################################################") > > > > > > print ("# Choose from the options below #") > > > > > > print ("# 1- url , 2-File(Text file only.txt) #") > > > > > > print ("#########################################################\n") > > > > > > > > > > > > mchoice = int(raw_input("Please enter your choice> ")) > > > > > > while mchoice !=1 and mchoice !=2: > > > > > > print("{0} is not a menu option.".format(mchoice)) > > > > > > mchoice = int(raw_input("Please try again> ")) > > > > > > > > > > > > > > > > > > if mchoice == 2: > > > > > > filename = raw_input("Hello, please enter file name here> ") > > > > > > if filename.endswith(".txt"): > > > > > > > > > > > > try: > > > > > > infile = open(filename) > > > > > > except EnvironmentError as e: > > > > > > print(e) > > > > > > sys.exit(1) > > > > > > > > > > > > print("\nFile {0} exists!".format(filename)) > > > > > > print("\nGetting IP addresses for hosts") > > > > > > print("\n") > > > > > > else: > > > > > > print("{0} is not a Text file.".format(filename)) > > > > > > sys.exit(1) > > > > > > for line in infile: > > > > > > hostname = line.strip() > > > > > > try: > > > > > > ip_address = socket.gethostbyname(hostname) > > > > > > except EnvironmentError as e: > > > > > > print("Couldn't find IP address for {0}: {1}".format(hostname, e)) > > > > > > continue > > > > > > print("IP address for {0} is {1}.".format(hostname, ip_address)) > > > > > > else: > > > > > > print ("\nFinished the operation") > > > > > > > > > > > > if mchoice == 1: > > > > > > murl = raw_input("Enter URL here> ") > > > > > > try: > > > > > > print("Checking URL...") > > > > > > ip_address = socket.gethostbyname(murl) > > > > > > except EnvironmentError as d: > > > > > > print(d) > > > > > > sys.exit(1) > > > > > > print("Valid URL") > > > > > > print("\nIP address for {0} is {1}.".format(murl, ip_address)) > > > > > > print ("\nFinished the operation") > > > > > > ===================================================================== > > > > > > > > > > > > now where it says Finsihed the operation i want it to show (another search > > /main menu/exit program) > > > > > > > > > > > > i know about the while loop , but forgive me i just don't have a clue how > > to use it for this situation. > > > > > > > > > > > > i don't want you to give me the code:) just the idea. > > > > > > i did read the section about the while loop but still i do not know how to > > use it in this situation. > > > > > > thanks. > > > > o.k a giant while loop :) > > thanks.
hi, found a solution, it's not quite like Chris advised but it works. #!/usr/bin/env python #Get the IP Address import sys, socket, os def restart_program(): python = sys.executable os.execl(python, python, * sys.argv) print ("\n\n#########################################################") print ("# Get IP from Host v 1.0 #") print ("#########################################################") print ("# Choose from the options below #") print ("# 1- url , 2-File(Text file only.txt) #") print ("#########################################################\n") mchoice = int(raw_input("Please enter your choice> ")) while mchoice !=1 and mchoice !=2: print("{0} is not a menu option.".format(mchoice)) mchoice = int(raw_input("Please try again> ")) while mchoice == 2: filename = raw_input("Please enter file name here> ") if filename.endswith(".txt"): try: infile = open(filename) except EnvironmentError as e: print(e) sys.exit(1) print("\nFile {0} exists!".format(filename)) print("\nGetting IP addresses for hosts") print("\n") else: print("{0} is not a Text file.".format(filename)) sys.exit(1) for line in infile: hostname = line.strip() try: ip_address = socket.gethostbyname(hostname) except EnvironmentError as e: print("Couldn't find IP address for {0}: {1}".format(hostname, e)) continue print("IP address for {0} is {1}.".format(hostname, ip_address)) else: print ("\nFinished the operation") print ("A=another search, M=main menu, E=exit") waction=raw_input("Please choose your action > ") while waction !='A' and waction !='M' and waction !='E': print("{0} is not a valid action.".format(waction)) waction=raw_input("Please try again> ") if waction =='E': sys.exit(1) if waction =='A': continue if waction =='M': print ("#########################################################") print ("# Choose from the options below #") print ("# 1- url , 2-File(Text file only.txt) #") print ("#########################################################\n") mchoice = int(raw_input("Please enter your choice> ")) while mchoice !=1 and mchoice !=2: print("{0} is not a menu option.".format(mchoice)) mchoice = int(raw_input("Please try again> ")) while mchoice == 1: murl = raw_input("Enter URL here> ") try: print("Checking URL...") ip_address = socket.gethostbyname(murl) except EnvironmentError as d: print(d) sys.exit(1) print("Valid URL") print("\nIP address for {0} is {1}.".format(murl, ip_address)) print ("\nFinished the operation") print ("A=another search, M=main menu, E=exit") waction=raw_input("Please choose your action > ") while waction !='A' and waction !='M' and waction !='E': print("{0} is not a valid action.".format(waction)) waction=raw_input("Please try again> ") if waction =='E': sys.exit(1) if waction =='A': continue if waction =='M': restart_program() -- http://mail.python.org/mailman/listinfo/python-list