Welcome to the Treehouse Community
The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.
Vladimir Ulyanov14,023 Points
Program format best practice?
Hi everyone, I'm currently on the Python track and am loving the lessons so far.
I challenged myself to build the disemvowel program before watching this video, and it looks wildly different to what Kenneth has put together. I understand it's a different concept as Kenneth's program takes a set list of words already where as mine takes an input from the user.
That being said, my question lies more towards the formatting (not even sure that's the right word!) side of programming.
The code I have written uses functions and a while loop as going from previous videos this seems like a logical code format to use when creating an input loop that the user can control.
I was wondering if someone could take a look at what I built and give me some general pointers on if the way I have programmed this. Is it following good practice or are there areas I could improve on? I'm not too sure how much code should be held in the functions themselves and if I should leave as much coding out of the main loop as possible?
I basically want to try and learn good formatting habits early so I don't end up writing messy code in the future!
import os def clear(): if os.name == "nt": os.system("cls") else: os.system("clear") def get_word(): while True: try: word = list(str(input("What word shall I disemvowel? ")).lower()) except ValueError: print("I can only disemvowel words, you pleb.") else: return word def disemvowel(any_word, letters): for letter in letters: while True: try: any_word.remove(letter) continue except ValueError: break print("Behold! Your disemvoweled word!") print("".join(any_word).capitalize()) def restart(): restart = input("Type RESTART to disemvowel another word, type anything else to quit. ").lower() if restart == "restart": return 1 else: return 0 def welcome(): print("I am the mighty disemvoweler!") input("Press Enter to begin! ") welcome() while True: clear() disemvowel(get_word(), "aeiou") if restart(): continue else: break
If this question is better suited to be asked somewhere else, please let me know, and thank you :)
Rebeca Sarai4,609 Points
Hey man, about the functions, code them for make your life easy, that is, use to avoid code repetition. About the welcome() function since you put out of the loop it didn't need to be a function since there is no reuse. But these are silly things, you're doing great