An Introduction to Software Design - With Python

Sdílet
Vložit
  • čas přidán 1. 04. 2020
  • This video is designed to introduce you to software design principles in python. This software design tutorial is aimed towards beginner python programmers looking to step up their knowledge and advance to the next level. This is merely an introduction and meant to get you thinking about a few principles and patterns that you can apply to write better, cleaner code.
    📚 The reference for this video is the book: "Practices of the Python Pro" by Dane Hillard.
    🔗 Get it here: www.manning.com/books/practic...
    I've started reading it and must say I'm impressed. It teaches software design in python and covers design principles and design patterns not covered in this video.
    ◾◾◾◾◾
    💻 Enroll in The Fundamentals of Programming w/ Python
    tech-with-tim.teachable.com/p...
    📸 Instagram: / tech_with_tim
    🌎 Website techwithtim.net
    📱 Twitter: / techwithtimm
    ⭐ Discord: / discord
    📝 LinkedIn: / tim-ruscica-82631b179
    📂 GitHub: github.com/techwithtim
    🔊 Podcast: anchor.fm/tech-with-tim
    💵 One-Time Donations: www.paypal.com/donate/?token=...
    💰 Patreon: / techwithtim
    ◾◾◾◾◾◾
    ⚡ Please leave a LIKE and SUBSCRIBE for more content! ⚡
    ⭐ Tags ⭐
    - Tech With Tim
    - Python Tutorials
    - Software Design
    - Design Principles Python
    - Python Software Design
    - Designing Programs in Python
    - Design Patterns
    ⭐ Hashtags ⭐
    #Python #SoftwareDesign

Komentáře • 365

  • @DaneHillardTheFirst
    @DaneHillardTheFirst Před 4 lety +794

    Hey Tim, author of Practices of the Python Pro here!
    Thanks so much for distilling a number of concepts in the book to these tangible examples. Reading about them is one thing, but watching code change in real time often helps folks really see the value.
    Well done as always, and thanks for the shout out!

    • @TechWithTim
      @TechWithTim  Před 4 lety +52

      Hey Dane! No problem, looking forward to diving deeper into the book. Has been a great read so far :)

    • @MBrieger
      @MBrieger Před 4 lety +6

      Sorry, check the IBM Documentation on Software Application Architecture
      Pretty old and independ of any language. Still the standard of the trade.

    • @MrKurdishFreak
      @MrKurdishFreak Před 4 lety +1

      @@MBrieger Do you have a link to that Book/ Document?

    • @bluesdog88
      @bluesdog88 Před 4 lety

      @@MrKurdishFreak www.amazon.com.au/Practices-Python-Pro-Dane-Hillard/dp/1617296082/ref=sr_1_1?keywords=Practices+of+the+Python+Pro&qid=1589844408&sr=8-1

    • @bluesdog88
      @bluesdog88 Před 4 lety +1

      Hey Dane, no kindle version on amazon, is that weird?

  • @vengeanceseville2768
    @vengeanceseville2768 Před 4 lety +380

    You making videos for people who have done the circuit of "beginner tutorials" is a godsend. I can make the loops, I understand the syntax but I really think it's so nice to see what it is I need to do to get a bigger picture. Thank you for making these, I'm definitely following

  • @zanna2557
    @zanna2557 Před 4 lety +22

    I'm an Italian computer science student and I swear that it doesn't matter if I know topics you're talking about, I'll watch your videos 'cause I'm just amazed about the way you explain concepts. Keep up the great work Tim, you're a programming beast! 💪🏽

  • @Reese40m
    @Reese40m Před 3 lety +33

    Finally I've found someone who can teach, without getting sidetracked or losing my attention by just going to slow. It's so much easier to follow along when you keep the momentum going. Keep up the good work!

  • @robo9798
    @robo9798 Před 4 lety +11

    You've said in the first minute everything with what I'm struggle with
    Thanks for your time to make such great educational videos!

  • @TopBagon
    @TopBagon Před 4 lety +36

    Your examples are so helpful, they really help me realizing in which cases that could be used. Thanks a lot for your work and stay safe

  • @charlemagne7460
    @charlemagne7460 Před 2 lety +36

    0:00 Introduction
    2:19 Why software design is important :flexibility&scalability (if the input or problem is changed)
    8:30 use the code multiple times and change it in the future: split the code in classes/methods/function +more make readable and debug-able
    18:26 make modules( separate files) to be cohesive, import functions from other modules
    28:00 packages
    33:00 conclusion

  • @PS-dp8yg
    @PS-dp8yg Před 3 lety +18

    I haven't seen the whole video, and I'm not a Python developer. However, one improvement you can do with your guessing game is to separate your UI from your guessing game logic. If I'm not mistaken, input and print are console operations. As of right now, your guessing game is coupled to a console app. If you separate the UI and put the logic in its own module, you can reuse it for other apps such as desktop, console, and web. Anyway, great content!

  • @Kage79
    @Kage79 Před 3 lety +1

    So far this has to be the best channel I've found for learning to code. I'm extremely new to this but having watched a handful of your earlier videos I've been able to keep up with your explanations. I can't write code like this but I understand the concept.
    I find it's a rarity these days to be able to watch an entire video from someone on CZcams.. You have a talent for keeping the content engaging and moving at a pace that's just right!

  • @nickleonardthomas
    @nickleonardthomas Před 4 lety

    Thanks for taking the time to make tutorials like this! I'd love to see more like this - there's so many tutorials on what you "can" do in Python but so few like this on good practices and organization.

  • @RameenFallschirmjager
    @RameenFallschirmjager Před 4 lety +5

    The guess game class was like a poet! Beautiful and full of meaning! I'm not a very good programmer, but as I move forward and learn more I appreciate the beauty of good code more and more.

  • @TheShadyStudios
    @TheShadyStudios Před 4 lety +6

    you’re killing it Tim hope your career is taking off

  • @poolmorosanacona1930
    @poolmorosanacona1930 Před 4 lety +1

    Thank you! I love all that is related to design, I've been reading the "Head first design and oop" book and your video is really helpful to see all that stuff implemented!

  • @inhexile5a788
    @inhexile5a788 Před 4 lety +140

    i have 59 and my prof have 19 year old. Thank you for this experience...

    • @lamborgenie6923
      @lamborgenie6923 Před 3 lety +39

      CodyLLC I’m assuming English isn’t the first language here. Some languages say they have certain ages instead of is a certain age.

    • @The4lexO
      @The4lexO Před 3 lety +34

      He said that his teacher (Tim) is 19 years old while he is 59.

    • @jiganeshpatil1472
      @jiganeshpatil1472 Před 3 lety +8

      Deep

    • @harirajan2255
      @harirajan2255 Před 3 lety +1

      @@The4lexO yeh

    • @5staryzzz
      @5staryzzz Před 3 lety +1

      What...?

  • @shriprakashtiwari3910
    @shriprakashtiwari3910 Před 4 lety +3

    Thanks man thats what I was looking for. Your tutorials are easy to understand.

  • @josephattwood4168
    @josephattwood4168 Před 4 lety

    Thank you for this. Principle of change and avoiding hard coding explained really well. So helpful.

  • @huntercoleman1347
    @huntercoleman1347 Před 4 lety

    This is exactly the video I needed to watch tonight. Lots of great information here. Thank you!

  • @umbertomariaforno5774
    @umbertomariaforno5774 Před 4 lety +1

    You are so good in what you do! Keep it up man, this really helps

  • @DonEdward
    @DonEdward Před 3 lety

    This video is the perfect leg-up from basics. Tha is fir making this, Tim! I'll be checking out everything in this series!

  • @leonlysak4927
    @leonlysak4927 Před 4 lety

    Dude. This couldn't have come at a better time. Thanks Tim

  • @winnumber101
    @winnumber101 Před 4 lety +33

    young buck is the best OOP teacher I've seen period

  • @RobinHagg
    @RobinHagg Před 3 lety +4

    The idea of a package have never really been explained this good before.

  • @pkavenger9990
    @pkavenger9990 Před rokem +2

    WoW your tutorials are like fast reading a 200 page book. In start it was hard for me to follow what you are saying but now that I am an intermediate programmer and doing Data Analysis using Python and SQL. I can quickly grasp what you are saying. You kind of reminds of Sheldon Cooper from TV Series Big Bang Theory.

  • @Daniel-mi6gd
    @Daniel-mi6gd Před 4 lety

    Great timing. We needed this during the lockdown.
    Thanks.

  • @johnpensados5054
    @johnpensados5054 Před 4 lety

    Thanks Tim, this video is exactly what I needed in my current learning process. Feel free to make more of those in the future it is just awesome! Keep up the good work!!! Cheers

  • @nuklearboysymbiote
    @nuklearboysymbiote Před 4 lety

    good advice as always. love the perfect flow of the video, you planned it really well!

  • @Ynaxio
    @Ynaxio Před 3 lety

    This is EXACTLY the point I am right now.
    Thank for the video!!!

  • @Ian-bb7vv
    @Ian-bb7vv Před 3 lety

    Big thank again. Now every time when i needed to learn a new thing about Python, I look for lessons made my Tim only.........

  • @emojiguy6374
    @emojiguy6374 Před 4 lety +54

    Hey I think it's time i introduce myself:
    My name is Victor and I'm sixteen
    Since I was thirteen I have been learning python from you although not full-time but your tutorial s have taken me a long way and
    I want to take on computer science in a year. Thank you Tim you r my role model

    • @edwardseverinsen5598
      @edwardseverinsen5598 Před 4 lety +4

      It's awesome you're getting into computer science at such a young age. Once you learn one language it only gets easier. Basically all programming languages reuse the same concepts, just different syntax and implementation. You'll do great. Good luck.

  • @RameenFallschirmjager
    @RameenFallschirmjager Před 4 lety +14

    Damn this channel is superb! I never thought to find something this good for free! I found this channel by chance, actually youtube algorithms showed it to me and I feel like someone who found a gold coin in the street!

  • @RameenFallschirmjager
    @RameenFallschirmjager Před 4 lety +1

    You are specially good. Beside presenting high quality content, introducing us to resources and books is a very good thing. Most of youtubers don't do this.

  • @thealiker7777
    @thealiker7777 Před 4 lety

    Really out of all python channels out there you are the best!!! I really like your explanation style. if you get it you can go at 1.5x or something and you can get it or if you don't get it go at normal speed and even then understand it. Thanks for the tutorials!!!

  • @Jucapadi
    @Jucapadi Před 3 lety

    Im improving my English and my programming skills with you. Thanks.

  • @dnetvaggos4443
    @dnetvaggos4443 Před 2 lety

    Dear Tim, we really appreciate the content you created for us...you really help us a lot and we appreciate that....thank you very much again!!!

  • @LeondalePhotographer
    @LeondalePhotographer Před 4 lety

    loved this vid, great info! would like more level 2 tutorials!

  • @mr1enrollment
    @mr1enrollment Před 4 lety +1

    Very good Tim, a follow on that I would like to see would cover data structures.
    Coming from C, I miss when working in Python,
    Of course dict, list, tuple, string etc are understandable each on their own,
    but I do struggle a bit on organizing at the appropriate level.
    I am learning of course but a lecture which joins concepts from C --> Python would help me.
    Thanks

  • @cacurazi
    @cacurazi Před 4 lety

    Man.. this is gold!! More videos on this topic please!!

  • @bonkers2371
    @bonkers2371 Před 2 lety

    I've already jumped into the database section but never have I organized my code.. Thank you for this Tim!

  • @devhypercoder6772
    @devhypercoder6772 Před 4 lety +1

    Hi, I really love your videos. I am 15. Your python tutorials are amazing. You are my inspiration for my youtube channel

  • @electroayman
    @electroayman Před 3 lety

    Great video, some of the best explanations of great practice in half an hour.

  • @acidtears
    @acidtears Před 4 lety +8

    18:51 I found that to be especially important in programming! Would it be possible for you to make a video about it maybe? For example, I suck at doing flowcharts and it'd be nice to see what an optimal approach would look like!

  • @houmamkafa4373
    @houmamkafa4373 Před 4 lety

    Thanks Tim, very nice video :) it’s very useful as we move from beginner to intermediate level in python programming. I would love if you made a video about ‘the pythonic’ way of programming in Python. I read this around a lot, and I have a basic understanding of what it means, but I am sure you could provide more insight on how to be more ‘pythonic’.

  • @BcomingHIM
    @BcomingHIM Před 3 lety

    Excellent video Tim, thank you.
    quick suggestion,you can make this a series where you can explain how some software design principles are necessary to follow for specific use cases.Like making rest APIs that are secure etc. I would love to learn more from you .

  • @SuperADI2
    @SuperADI2 Před 3 lety +1

    Really useful info for organising code in a professional way, I need to rethink all my software robotics projects, your tutorial helps me a lot, hope in future you will continue this subject about smart software design and organising

  • @ViniciusBuscacio
    @ViniciusBuscacio Před 4 lety

    Thank you, your videos and content are amazing. Keep going!

  • @valentbrkic2980
    @valentbrkic2980 Před 4 lety

    Great video, Tim. I appreciate it! :)

  • @atalyy
    @atalyy Před 4 lety

    You're great! Thanks for all tutorials :))

  • @ChristianHaugland74
    @ChristianHaugland74 Před 4 lety

    Thank you, Tim, for a great video and explanation. it was superb.

  • @qualjyn2
    @qualjyn2 Před 4 lety

    Tim, as always a brilliant video. Looking forward to more in this series. If I could with for a series, it would be something about setting up a CI/CD pipeline on e.g. GitHub, including pytest, build and deploy. If I am really to dream big, it would include packaging in a container and deployment :)

  • @akiratoriyama1320
    @akiratoriyama1320 Před 4 lety

    Your latest videos have great content!! Congratulations sir! Thank you very much!!

  • @cgpmth6449
    @cgpmth6449 Před rokem

    Now i have a higher sight of programming. Thanks you so much

  • @rohanraj8418
    @rohanraj8418 Před 4 lety

    You Set The CZcams On Fire With This Helpful Video.

  • @fsxdb000
    @fsxdb000 Před 4 lety

    love it and thank you for this man , and love all your videos

  • @codewarrior4458
    @codewarrior4458 Před 3 lety

    Mien i love this guy, Thanks bro really appreciate it, everything sync with perfectly

  • @Michael-mm9fc
    @Michael-mm9fc Před 4 lety +4

    This is a GREAT video and it was posted just at the perfect timing!
    I´ve been looking for guides that could teach me how to arrange the codes better for several days. I´ve read books and watched videos in three different languages but still couldn´t find the best answer. Then I found this excellent tutorial, thank you very much, since it really helps me a lot!
    Furthermore, I´m really hoping to see you explaining the execution order of python codes. I´m having difficulties to arrange them when I have to introduce classes, define functions and instantiate a window with multiples widgets for my simple GUI at the same time. I don´t know which part should come first and which next. I would appreciate that, if somebody can recommend some chapters from books or some videos to me!

    • @TechWithTim
      @TechWithTim  Před 4 lety +6

      ordering: imports, constants, classes, functions, mainline

    • @Michael-mm9fc
      @Michael-mm9fc Před 4 lety

      @@TechWithTim Thanks!

  • @automationtesting3149
    @automationtesting3149 Před 3 lety

    This is the first time I am learning Python and it is really helpful

  • @harmannatsingh3933
    @harmannatsingh3933 Před 4 lety +4

    4th. I always watch your videos. They're so good!

  • @SirHackaL0t.
    @SirHackaL0t. Před 4 lety

    Very clearly put across. Great job. 👍

  • @automationtesting3149
    @automationtesting3149 Před 3 lety

    I am relatively new to Python and this information was really useful

  • @I_Follow_Jesus
    @I_Follow_Jesus Před 3 lety

    Thank you. This video helped me under stand this issue better.

  • @levbarenboim9870
    @levbarenboim9870 Před 4 lety +1

    Thank you, Tim. very useful! :-)

  • @badhreeshmrao609
    @badhreeshmrao609 Před 4 lety

    Hey Tim! Awesome video. I learnt a lot. I have a question. With regards to the guessNumber class, is there an order in which you code the class? In other words, what would be the first method you build inside the class? Would you start from __init__ or do you start from play. Also, when building get_guess(), is the valid_number() method already implemented? How do I structure the building of the class? Thanks :)

  • @creativeclub2023
    @creativeclub2023 Před 4 lety

    Thankyou for providing us valueable content ♥️

  • @automationtesting3149
    @automationtesting3149 Před 3 lety

    Really useful information. Keep up the good work!!!

  • @danadasachan7208
    @danadasachan7208 Před 11 měsíci

    Hi Tim. Thanks for this awesome video. Very helpful to get a broader perspective on what clean code looks like and how it functions. I also found it very helpful to start with poorly written code and how to transform poor code into clean code. 🙂

  • @cjacoby75
    @cjacoby75 Před 2 měsíci

    Very nice. Thank you, sir. Clear, concise and useful information.

  • @jvsonyt
    @jvsonyt Před 4 lety +1

    Super helpful on "where to go next"

  • @rexcode1759
    @rexcode1759 Před 3 lety

    thank you tim, this is really worth it

  • @KshitijaChilbule-qt7rw
    @KshitijaChilbule-qt7rw Před měsícem

    Wow 😳, loved it !!

  • @deusopus
    @deusopus Před 4 lety

    you're really great. thanks for the great content.

  • @spyrosdev2533
    @spyrosdev2533 Před 3 lety

    This helped me a lot! thank you so much!

  • @axe_fx
    @axe_fx Před 2 lety

    awesome and on point. Exactly what I was looking for

  • @simvoli
    @simvoli Před 3 lety +1

    Hi Tim, thank you for beeing such a nice teacher!
    What is the name of the editor you are using here?
    Cheers from Switzerland.

  • @MrSemro12345
    @MrSemro12345 Před 4 lety +1

    Awesome video. Don't forget the Analysis, Testing, Documenting, Evaluation and Maintenance phases ;)

  • @aar021
    @aar021 Před rokem

    Love it Tim. Thank you.

  • @ahmedouerfelli4709
    @ahmedouerfelli4709 Před 3 lety +1

    Nice video brother, I want to share with you my thoughts about this.
    Code reuse:
    1- Since the purpose of using the GuessNumber class is just code reuse, it is better to implement the valid_number and get_guess methods independently from the class as separate functions, that way you could use them for prompting the user to input a number in a given range outside the context of the guessing game; and you won't sacrifice the class functionality. When you import the class in another program, you don't need to import the stand-alone functions with it because python will automatically encapsulate the dependencies of the play method implicitly within the imported class.
    2- Instead of implementing the guesses variable as an attribute, making it local to the play method makes the game object replayable without the need to reconstruct another object with the same parameters.
    3- It is a good idea to not force specifying the number at the construction of the object, instead, provide the option of setting it later when calling the play method. In other words, the game object could be constructed only specifying the range bounds. If the number is fixed at the instantiation, any value given at the play method will be ignored.
    4- Another good idea is to implement random number generation in the class by giving the option for a game object to have no fixed number at all. Meaning that when you do not specify the number in the class constructor, nor in the play method, the game chooses a random number in the range by itself.
    Simplification:
    1- There is no need to name a variable if you are going to use it once. You can still execute .play() from the game object without assigning it to a variable, and that is one line of code.
    2- By renaming the method play to __call__, you get rid of the .play thing. And you call the game object directly.
    Performance:
    Since my programming skills are built more about performance than code reuse and readability, when I see a function executed twice on the same input, my brain hurts. My programming reflexes tell me to capture the output for the second use. While performance is not a real issue in this example, the conversion to int happening twice on the same string still makes me uncomfortable.
    And the code becomes like this:
    from random import randint
    def convert_valid(str_number,mn,mx):
    try: number = int(str_number)
    except: return
    if number in range(mn,mx+1): return number
    def get_guess(mn,mx):
    guess = convert_valid(input(f"please guess ({mn}-{mx}):"),mn,mx)
    if guess != None: return guess
    print("please enter a valid number")
    return get_guess(mn,mx)
    class GuessNumber:
    __slots__="min","max","number"
    def __init__(self,mn=0,mx=100,number=None):
    if number != None: assert mn

  • @xXHelsingGamingXx
    @xXHelsingGamingXx Před 2 lety

    Hey Tim, I am a huge fan, I am just looking for design patterns in your playlist. Would there be a course soon for design patterns in python?

  • @rahulshukla5033
    @rahulshukla5033 Před 2 lety

    great, very unique video for intermediate python developer..want more this type of videos

  • @thelordsofgaming2153
    @thelordsofgaming2153 Před 3 lety +14

    15:21 there is even a better way (i think) of doing it:
    import random
    import time
    class Game:
    def __init__ (self, min, max, times=0):
    self.min = min
    self.max = max
    self.times = times
    def startnum(self):
    global correct
    global pas
    pas = True
    correct = random.randrange(self.min, self.max)
    global guess
    guess = int(input(f"Guess Numbers between {self.min} - {self.max}: "))
    if guess > self.max or guess < self.min:
    print('Wrong Range, reset')
    pas = False
    else:
    pas = True
    return guess, correct
    def is_Correct(self):
    if pas == True:
    if correct == guess:
    return f'You have won, the correct number is {correct}'
    else:
    return f'You have lost, the correct number is {correct}'
    else:
    self.startnum()
    def play(self):
    self.startnum()
    time.sleep(0.6)
    print(self.is_Correct())
    print(correct)
    game = Game(1, 2)
    game.startnum()
    print(game.is_Correct())

    • @duddie4171
      @duddie4171 Před 3 lety +1

      Lmao, this hurts to read, but you've likely made progress since then. Why did this get upvoted?

    • @sulizu0186
      @sulizu0186 Před 3 lety

      Wow
      Extreme compression

    • @vodoinstolotorgoku3035
      @vodoinstolotorgoku3035 Před 2 lety

      @@duddie4171 I mean, the init function has single underscores, he didn't understand anything from the video lol

  • @rohanraj8418
    @rohanraj8418 Před 4 lety

    Thanks For Making this Helpful Video.

  • @josebriceno3530
    @josebriceno3530 Před 4 lety +1

    DAMN Just awesome... keep it up dude.

  • @7Trident3
    @7Trident3 Před 4 lety

    Very clear example of Classes, OOP.

  • @migueldomingos4570
    @migueldomingos4570 Před 4 lety +1

    Amazing vid!

  • @mahermokhtar
    @mahermokhtar Před 3 lety +1

    hello Tim and thanks for your videos, not always simple but easy to understand (y).
    i have a question considering the "from ... import .. as ..." and just "import ....", is it not a little bit complicated to import the functions instead of the whole module? i mean what is the advantage or benefits of "importing the medthodes from the module" and "importing the module and then applying the methodes directly" ??

  • @mominmostafa4419
    @mominmostafa4419 Před 3 lety

    Thank you. Helps us a lot.

  • @subbaiah1752
    @subbaiah1752 Před 4 lety

    Hey Tim, Thanks for sharing useful information

  • @drop_messages6226
    @drop_messages6226 Před 4 lety +2

    I got into programming C++ awhile back, glad I made the switch to Python, I can get so much more done with fewer lines of code. One of my for fun side projects is a text based adventure game, kind of like ZORK. In the game, there is a combat system. I did not know how to "randomize" the chances of a successful hit, so I had to have the player open an online dice simulator, to represent random chance. Python has randint and that makes it so much easier to code my text games.

    • @mustafakhalid9348
      @mustafakhalid9348 Před 4 lety

      You could've used the built in eand function in cpp, instead you changed languages and chose a language that needs a separated library to generate random integral numbers.

  • @Omerko
    @Omerko Před 4 lety

    Thanks for this one!

  • @whiteeagle9303
    @whiteeagle9303 Před 4 lety

    Hey Tim, nice video. What are your thoughts on Django and flask? Do you recommend Python for creating websites?

  • @paulojunior9017
    @paulojunior9017 Před 4 lety +2

    Hey Tim, could you please make a video teaching when we have to create a new folder or a new file for an especific project? I'm doing a project and I don't know when I have to create another file

  • @danb6339
    @danb6339 Před 4 lety

    Awesome video by the way👍🏼

  • @Miran-nv6kl
    @Miran-nv6kl Před 4 lety

    this was very useful, thanks tim

  • @odd13579
    @odd13579 Před 7 měsíci

    bingo! i've been wondering about this for a long time!

  • @aureliusnt
    @aureliusnt Před 3 lety

    Amazing video! Thank you!

  • @tonyf1410
    @tonyf1410 Před 4 lety

    Excellent video! Thanks so much

  • @awood9214
    @awood9214 Před 3 lety

    Hey Tim, great vid man! Quick question, I have a background outside of tech but I was accepted into a Masters program in Software Development. I'm kinda concerned because I've never used programming software before; however, it's something I've grown fond of and still want to try it. With that said, from someone coming into software design is it difficult to grasp for someone who's never done it before? What can I do to become more proficient in the field? Thanks man.

  • @waltersweetheart8885
    @waltersweetheart8885 Před 3 lety +29

    The best solution for the first problem is
    print(*list_of_words, sep=',')

    • @mastershooter64
      @mastershooter64 Před 3 lety +2

      what is * in python?
      when I had a list_1 = [1, 2, 3] and I printed out *list_1 it gave me 1 2 3
      so what is it and what does it do? and apparently there's ** too, what does ** do?

    • @waltersweetheart8885
      @waltersweetheart8885 Před 3 lety +6

      ​ @master shooter64 * is a destruction operator for any list. In parameters it just pass each element of the list to the function.
      For example:
      print("24", 62, [], 'Hello')
      is the same as
      print("24", *[ 62, []], 'Hello')
      ** does the same but with dictionaries
      (key is a name of an argument and value is a value)
      print('g', 'g', **{'sep': ''})

    • @mastershooter64
      @mastershooter64 Před 3 lety +1

      @@waltersweetheart8885 oh ok thanks!

    • @NirjhorNath
      @NirjhorNath Před 3 lety +3

      Only if you’re printing it

    • @waltersweetheart8885
      @waltersweetheart8885 Před 3 lety +4

      @@NirjhorNath indeed, functional design gives a lot of pros and some cons to you but you have to know where you should put it to get maximum profit. Use better tools for your tasks.

  • @abdulnoor2210
    @abdulnoor2210 Před 3 lety

    This video is exciting to watch. It seems to be out of world.

  • @freddyflores6608
    @freddyflores6608 Před 4 lety

    You're great, thanks for your videos.

  • @RichardGreco
    @RichardGreco Před 2 lety

    Very good, thanks for making it.