Constructive Criticism

Peter Otten __peter__ at web.de
Thu Jan 9 04:56:37 EST 2014


jeremiahvalerio123 at gmail.com wrote:

> Hi, hows it going I've been self teaching myself python, and i typed up
> this small script now i know its not the best the coding is not the best
> but i would like to know of ways to make a small script like this better
> so all constructive critisim is Welcome.
> 
> 
> 
> Here is the link to the code
> 
>    " http://pastebin.com/5uCFR2pz "

>     time.sleep(1)
>     import time
>     print("Closing in 9 ")
>     time.sleep(1)
>     import time
>     print("Closing in 8 ")

- You should import modules just once, at the beginning of your script.

- Repetetive tasks are best handled with a for-loop, e. g.:

>>> import time
>>> for seconds_left in reversed(range(1, 10)):
...     print("Closing in", seconds_left, "seconds")
...     time.sleep(1)
... 
Closing in 9 seconds
Closing in 8 seconds
Closing in 7 seconds
Closing in 6 seconds
Closing in 5 seconds
Closing in 4 seconds
Closing in 3 seconds
Closing in 2 seconds
Closing in 1 seconds

>     user_input = input("\nWhos your favorite Football team? \n 1.Arizona
>     Cardinals\n 2.Atlanta Falcons\n 3.Baltimore Ravens\n 4.Buffalo Bills\n
>     5.Miami Dolphins\n 6.Minnesota Vikings \n 7.New England Patriots \n
>     8.New Orleans Saints \n 9.Carolina 
[snip]

Python offers triple-quoted strings which may include newline literals:

user_input = input("""
Who's your favorite Football team?
 1. Arizona Cardinals
 2. Atlanta Falcons
...
""")

> if user_input == "1" :
>     print("\nThey suck! BYE!")
>  
> elif user_input == "2" :
>     print("\nThey suck! BYE!")
>  
> elif user_input == "3" :
>     print("\nThey suck!BYE!")
[snip]

Ignoring the typos you are taking the same action for all inputs but "17". 
So:

if user_input != "17":
    print()
    print("They suck! BYE!")

You should give some thought how unexpected user input like "", "123", 
"whatever" should be handled.

> elif user_input == "no" :
>     print("\nAlrighty bye have a nice day! :)\n\nClosing in 10.")
>     import time
>     time.sleep(1)
>     import time
>     print("Closing in 9 ")
>     time.sleep(1)
>     import time
>     print("Closing in 8 ")
>     time.sleep(1)
>     import time

OK, you are doing the count-down thing twice -- time to write a function, 
say countdown(), that you can put where you need a count-down instead of the 
repetetive code.





More information about the Python-list mailing list