I am a working dev with over 15 years experience in multiple platforms and languages, starting with Python seriously only now. I simply have not come across a more succinct and comprehensive intro to Python, for a Developer. Derek rocks!
Hi Derek, on the method toString() of the class Dog I only managed to put it to work like this: (this works) def toString(self): return "{} is {} cm tall and {} kilograms, says {} and owner is {}".format( self.get_name(), self.get_height(), self.get_weight(), self.get_sound(), self.__owner) ...instead of: (this doesn't) def toString(self): return "{} is {} cm tall and {} kilograms, says {} and owner is {}".format( self.__name, self.__height, self.__weight, self.__sound, self.__owner)
If you change the variable definitions in the animal class to a single leading underscore (_name instead of __name) that makes the variables protected instead of private which allows child classes to access the parent class's variables.
Yes and that is very GOOD thing. Sadly most tutorials are for those with none or minimal programming experience. I would love to see more of these, maybe they are out there but the beginner tutorials always pop up first when doing a search! ;-(
This is the first time that I'm putting a comment for a video on youtube! "This was exactly what I was looking for." I was procrastinating for so long to learn Python, but you finally helped me to do that. I was under the impression that even knowing how to install it, would take me a couple of hours! When I randomly started watching your video, I noticed that before the second minute, you had already covered all I needed for the installation. I just couldn't resist finishing this video. Thank you so much. "LOVE YOU"
That's awesome! Thank you :) I'm happy it helped. If you want to learn more I teach Python through problem solving here ruclips.net/video/nwjAHQERL08/видео.html
That was great. I hadn't planned on watching the whole thing, but I started watching and the next thing I knew 43 mins had passed. Thanks for making it, Derek!
I'm new to programming so i've had to stop this video every 15 second. Still prefer this tutorial to others that i've seen since it's so concise and clear. The other guy i watched spent 5 minutes ranting about random crap.
I love how fast-paced this tutorial is. It cuts straight to the point about the stuff you need to know and it taught me so much about this amazing language. Thanks Derek!
7:15 print("%s %s %s" %('quote', quote, multi )) This syntax is different than most languages where function & method arguments are comma separated. I wonder if the function declaration for print() is only accepting one parameter, then parsing it ? Because of the weird syntax with %() being passed in. Most languages would accept an array and the syntax would be print("%s %s %s", 'quote', quote, multi)... Yeah, looking at the source code, it looks like there can only be one comma that does separation of args & kwargs (keyword_args like sep, file & end as shown in 7:50). Based off the function declaration, i'm guessing that if you wanted to use all 3 keywords sep, file, & end, i'm guessing that they'd be separated by spaces ? 8:58 print('First Item', grocery_list[0]) Okay, now I'm confused ? Maybe I was looking at the source code for a different version of Python than the one you're using ? No string concatenation here. Just a list of parameters ? I see now that your IDE says the print declaration is an array of objects. 11:30 *del* grocery_list[4] _VERSE_ grocery_list.*remove*("Pickle") 14:43 *del* super_villians['Fiddler'] 14:21 super_villians = {"Fiddler" : "Issac Bowin"} 14:59 super_villians['Pied Piper'] = 'Hartley Rathaway' Python seems schizophrenic: Sometimes it's using the methods of an object (the object oriented approach) and other times it's using an outside function or keyword to act on an object. Sure, it's perfectly fine to use a function to act on an object sometimes. But I'm not sure I can agree that this is a good beginner language because of the inconsistencies, and the use of symbols to represent real objects. Symbols are nice shortcuts for experienced programmers, but i believe they're doing a dis-service to people learning OOP. If someone doesn't understand object-oriented programming, then i would recommend Java or C# because they have so many objects to use... And after a while of using well designed objects (like Collections, List, Set, Map), OO will start to "click" and you'll "get it." Compare the above python to java: Map super_villians = new HashMap(); super_villians.put("Fiddler", "Issac Bowin"); super_villians.remove("Fiddler"); super_villians.put("Pied Piper", "Thomas Peterson"); super_villians.put("Pied Piper", "Hartley Rathaway"); super_villians.size() 17:38 The logical operators *and*, *or*, *not*: This is a cool language feature to have these as keywords instead of symbols. 20:02 for x in range(0, 10) I didn't see an example of a backwards for-loop, but stackoverflow has several different ways. 33:22 def set_name(self, name): self is an interesting concept, but it's totally un-necessary to implement a language in this way. Also, i noticed that even tho methods declare self as a parameter, that you're not required to pass it as an argument (i'm guessing it gets passed automatically). 40:49 What about: def play_sound(self): play_sound(self, 1) def play_sound(self, how_many): print(self.get_sound() * how_many) 41:43 def get_type(self, animal) "And it is going to receive Animal objects." How does it only take animal objects ? No type is specified. Couldn't you pass it any object that had a method get_type() ? in a strongly typed language, it's easy to see what type of objects are passed into functions & methods (the types are part of the method declaration). I'm struggling to see how you know what type of object to pass into a method without looking at the implementation details ? 42:22 test_animals = AnimalTesting() There's no view ? No virtual ? No interface ? No abstract class ?
Im an expert in C/C++ and was browsing through different webpages on how to learn python the fastest way. I must say that this video covers almost entirely everything that i wanted to know! Great job!
123Mrchoy what do you (personally) program with C and C++? I'm just curious because I've been learning a little about those languages and are interested in hearing someone's personal experience
+michaeljacksonator I know this is an old post, but I'm just now seeing it, lol. Unless you've used Python in a project that shows up elsewhere on your resume, I'd leave it out until you do. Your practical experience with a program cannot simply be you watched a youtube video of someone using it and you played around with it for a few hours. It doesn't need to be a complex project, maybe just talking to an arduino project via the serial port. But employers want to know you have experience with something before deciding to add it to your resume.
+michaeljacksonator if you understand difference between programming and programming language feel free to add python. everyone who can program can write python.
Thank you so much Derek, awesome! First I thought your videos were so difficult because of the speed and all the information, but after finally understanding Java as my first language (thanks to your videos mostly) I realized I can learn any language in no time with your help! You are so great! Thank you for sharing!
This is perfect for me because I completed the Python course on Codecademy a while ago and wrote a few scripts but I haven't touched it in months. This offers a great refresher than I can sit through in one session rather than having to pull from various different sources. Thanks.
It's heartening to see the number of views on these types of videos. That's at least 3.9 million peoples' kids who will probably be introduced to programming from an early age. Those are good numbers.
We had to learn html in 7th grade... I hated my teacher and coding. Now, thanks to conspiracy theories, I am researching coding independently. Oh how the tables have turned ×_×
One question: In Dog's toString(), how is it possible that you were allowed to directly access 'Animal's privates, such as __name, __height, __weight, __sound? 'Animal's privates are supposed to be not accessible by the derived class 'Dog', and that's why you had to define Animal member functions get_name(), get_height(), get_weight() and get_sound(). I tried your code as-is, and got the expected error (ie, something like 'Dog has no member named __name'). By the way, Excellent Video, Derek! :)
+Rúben Borralho this is how I changed my code: def to_string(self): return "{} is {} cm tall and {} kg and say {}. His owner is {}".format(self.get_name(), self.get_height(),self.get_weight(),self.get_sound(),self.__owner)
Hey Derek, can you please make a video series on how to make Android apps in C# using Visual Studio. A lot of people need it. Please try your best. If not can you suggest some great sources for it...
I usually don't comment on videos, but this tutorial seems very helpful. I just found your channel and I can already tell this is a great channel! I dropped a big thumbs up on this video and even subscribed because of this video! Keep up the good work man!
If you ran into an error for spot.toString (), try changing in Dog: def toString(self): return super(Dog, self).toString() + " Her owner is {}.".format(self.__owner) This worked for me, thx 2 stackoverflow for the answer ☆♡☆
I am working my way through this video. This is my first serious foray into programming and I just want to say "Thank you!". Very well laid out and paced. I am looking forward to going through your videos on C# and c++ next!
Awesome Video @Derek. Thank you! Small error: at 39:30, change "__name" into "get_name()" to avoid error . Same goes for attributes "height", "weight" and "sound", except the newly created attribute "__owner".
These videos are probably more in line if you've already learnt one language to a decent level as picking up another one is relatively simple - more often than not the differences are just syntactical
Don't use this video as the only tool to rely on. This video is very short and it doesn't take 45 minutes to actually learn coding. try to learn something new, make some assignments for yourself, re-read and make your own tests. That's how I learn by myself
personally i would see this vid, the go to thenewboston, and then watch this again, yes i know this is a 1 year old comment and there is a 98% you've already learned python
I am coding a text number guessing game, using the information I gained from your video :-) Still working on it. trying to figure out what statement to use so that if a == b to go back and redo it, so there will be no duplicate numbers.
Abbie, Thank you for your reply! I am working on the game, slowly but surely. Now I am trying to throw a Raspberry Pi into the mix.. Turn on a red LED for a guess that is too high and a yellow LED for a guess that is too low and a green LED for the right guess..
Abbie Wolff I got the whole kit and kaboodle.. I got this kit www.ebay.com/itm/Sunfounder-Project-Super-Starter-Kit-for-Raspberry-Pi-Model-B-40-Pin-GPIO-Board-/151460909119?pt=LH_DefaultDomain_0&hash=item2343c6103f and the Raspberry Pi kit with the camera, jumpers, bread board etc
I SOOO appreciate you taking the time to edit your video. Very helpful and, unlike many tutorial videos, cutting to the most interesting and important parts. Thank you! Love what you did there.
I'm a beginner C programmer and you forgot a few lines: #include int main(void) { unsigned long long infinity=0; while (infinity > 0) { printf("Pokémon Go "); } exit(0); } Or even more efficient: #include int main(void){ while (1) { printf("Pokémon Go"); } exit(0);} Also, idc that I'm in a python programming video, I'm learning C atm dammit.
+GPC™ ..as per your code, the user is expected to enter the name within quotes (eg: "sudheer"). but user may not know this. So, instead, use name=raw_input("enter your name"). this works better when the user is expected to enter a string.
In the old version of python this was the case. However in the newer version: input('What is your name?') works perfectly fine and now you don't really have to use raw_input.
Finished the whole thing. I've got 334 lines in my text editor. Thank you very much for making this. I now feel comfortable enough with python that I can use it for my projects in school.
thank you sir...and maintain this speed of teaching...sometimes it is very fast that i need to pause your video...but it's ok...i learn lot's of new thing in your great tutorial...thank you again sir...
karthikeyan mg right brother...i am programmer who is familiar with c c++ and java syntex...so sometimes i find difficulties to write code in python language...but at the end python is also great language for development of anything...
Awesome video! I have learned Java, HTML/CSS/JavaScript, and I wanted to know how to program C++ and python. Because of this video, I was able to learn python, and learn c++ all in one video. Thanks a lot Derek!
Crisp and comprehensive at the same time. An awesome jumpstart for anyone who is familiar with programming constructs and syntax in general, but not familiar with Python at all. Super!!!
In the Dog::Animal example, it won't let me access __name, __height, __weight, nor __sound from the derived class toString() def, probably since they are private. How do we make them protected, like in C++, so the derived class can access ? (EDIT): I'm new to Python, but I just read a bit of the docs about the issue. It would seem that the Python name-mangling mechanism that is used to fake private class data, applies to the *current* class - so such variables would always have a name unique to their definition at their own level in a class hierarchy. Animal::__name becomes _Animal__name, but Dog::__name becomes _Dog__name. This can be seen by expanding objects in the debugger. Is there any way around being forced to use the base class's getter/setter functions from the derived class (and still have private data) ? That would seem inefficient. (EDIT #2): I figured out a way ! - in the derived class, just use the base class mangled name directly. So to access the __name variable from the Dog class, that was declared in the Animal class, just use _Animal__name ! Do you think this breaks any rules ? Also, how did you code compile with Dog::toString() as shown ? (I'm using Python 3.4.2 on the pyCharm IDE on Windows 7 64 bit)
agnichatian Thank you for posting all that you discovered! The rule that is broken is the rule of encapsulation. It is almost always best to use the getter and setter methods that are inherited by subclasses, but it is also nice to understand the work arounds. Just make sure you heavily comment your code if you ever break rules. Others that see your code may not understand what you did.
Derek Banas Yes, that is why I was so concerned about it. The docs clearly show that there is no enforcement of the encapsulation in Python. Coming from a C++ perspective, this is dangerous and I'll bet causes a lot of unreliable code out there. The fact is that many will not maintain an engineering discipline when writing and using classes ! Thanks for tie video.
Theta Scorpii Is that a "why?" ._. Anyway it's because I'm just used to using them. Every time I write a statement in Python I put a semicolon unconsciously, it's annoying lol.
prepareuranus I think you have got habit of C and C++ programming in which we have to put Semicolons and braces for defining or declaring ;) ! never mind , it happens .
prepareuranus The semicolons and braces in those languages are seen as redundancy in Python. The indented structure provides what both semicolons and braces do in those languages.
prepareuranus I agree somewhat. I don't miss the semicolons. However, I'd gladly trade indentation for braces. Guido has said that will never happen, though.
@@ludviglindholm8314 Classes (or Object -Oriented Programming) is a methodology that we use in programming to model real world objects. Think how to describe an apple to a computer. You can give characteristics and give it actions. Classes are to nouns, as functions are to verbs and variables are to adjectives. Take that with a grain of salt though. Thinking of a video game character also helps you imagine it. The character would be your class. Health and Defense are variables and when your character moves and takes damage are functions.
Yeah, you don't understand OOP in 13 minutes don't worry just do lots of examples. OOP is a great methodology for organizing your variables and functions and is very helpful for really large projects
This video I think is for people who already know the fundamentals in another language but don't know python, if you don't understand oop at all then you should watch a more detailed video on that.
ATTENTION: For those planning to put "Python Programming" on their resume after watching this video, you must be DELUSIONAL! Even though this video does an amazing job of covering the general basics, it does just that: it covers the BASICS. There is wayyyyyy more to python. In your job interviews, the employer will ask you if you have any experience in particular python fields like Python Networking, Data Science with Python, Machine Learning Systems with Python, Black Hat Python, etc. No one will hire you just because you know how to create a loop, a list, or a class in Python! So deflate that programming ego of yours or else you will face a big world of hurt when the employer decides you are not right for that amazingly high paid programming job. That will be an opportunity flushed down the toilet all because you thought that 1 video was enough to teach you a whole programming language. You will need at least need a year or two of consistent python programming experience before an employer can take you seriously.
Absolutely Brilliant! Your way of explaining is like "Keep it simple, cut to the chase". Even a beginner like me understood up to 80% of the video in one go. Thank you sir! and looking forward to see more. :-)
Have to say, that the best channel for a programmer fast learning, clear and without too much hour of explanation around to explain the beginner's topics Derek, you save my Degree exams, my professional learning, big fan!
coming from a php background( dont hate me :'l ) i noticed when you appended "onions" in grocery list the concatenated to_do_list was also updated? does that mean to_do_lists variable only has a reference to the grocery_list variable??? pls help
Yes. Python doesn't duplicate data if it doesn't have to, so instead of a copy of the grocery_list being added to to_do_list, to_do_list points at grocery_list. If you wanted to copy all the data, you would slice grocery_list like this: to_do_list = [other_events, grocery_list[:]] Other methods are: to_do_list = [other_events, list(grocery_list)] Or use the copy module and: import copy to_do_list = [other_events, copy.copy(grocery_list)] If you need to copy objects, you can use newObject = copy.deepcopy(oldObject)
35:17 if you come from a language like Pascal, a class is nothing but a variable of the type Record. It's a collection of attributes for a given subject.
Hi Derek ,great video, I went thru most of it. I got stuck with : AttributeError: 'Dog' object has no attribute '_Dog__name' Do you have a clue as to what it means?
If this is referring to the to_string() function in the dog class I found the answer. In the cheat sheet in the description the code is different to the video. Instead calling 'self.__name' you call the animal getter method 'self.get_name()'.
I'm really strugling with understanding the purpose of the Object part, at setters and getters. At some of them the (self...) just poops up in pink colour and at others I have to manually put it in. Is there any difference between popping up and putting it in manually ? Some advice from any of you would be greatly appreciated, a noob trying to be a future programmer here, THANKS !
Thank you so much, I learned A LOT MORE in 40 minutes than in 5 full lessons. I really appreciate that these videos are free on RUclips, please keep up the fun vids :D!
Lol it's nothing like Java, Java is compiled and Python is interpreted that alone makes them a lot different from each other, if you're talking about the syntax you'll be pleased to know that a lot of languages have a similar syntax, Java and Python are both C based languages so naturally they'll have a similar syntax.
this is probably the most accurate,precise and run with perfect speed computer tutorial! Real programmers will love this. This is how fast computer tutorials should be
Am I the only one who did not skip any second of this video?? Very explicit and clear. I already have C programming and VB. Net experience but it is my first python tutorial. I have now an idea of how I can assimilate all these languages. Thanks Derek
For me, I use tutorials to know about something precise. I mean if I have a project or problem to resolve and that I am blocked, I look for specific video and in a specific time. But this one was different because it is like a lesson at school. I really enjoy it and I am willing to learn more about it by using the other languages I already knew.
In order to get the command "print(spot.toString())" to work (ran at about 41:10), I had to make all variables public. Have relevant rules/operating procedures in Python 3.6 changed since v3.4? Or may I have missed something in my code? I've looked everywhere. Any way to keep the variables private and still work the way he has it in the video? Below is my code; note all variables have had the double-underscore prefix removed to get it to function. import random import sys import os class Animal: name = None height = 0 weight = 0 sound = 0 def __init__(self, name, height, weight, sound): self.name = name self.height = height self.weight = weight self.sound = sound def set_name(self, name): self.name = name def set_height(self, height): self.height = height def set_weight(self, weight): self.weight = weight def set_sound(self, sound): self.sound = sound def get_name(self): return self.name def get_height(self): return self.height def get_weight(self): return self.weight def get_sound(self): return self.sound def get_type(self): print("Animal") def toString(self): return "{} is {} cm tall and {} kilograms and says {}".format(self.name, self.height, self.weight, self.sound) cat = Animal("Whiskers", 33, 5, "Meow") print(cat.toString()) class Dog(Animal): owner = "" def __init__(self, name, height, weight, sound, owner): self.owner = owner super().__init__(name, height, weight, sound) def set_owner(self, owner): self.owner = owner def get_owner(self): return self.owner def get_type(self): print("Dog") def toString(self): return "{} is {} cm tall and {} kilograms and says {} Her owner is {}".format(self.name, self.height, self.weight, self.sound, self.owner) def multiple_sounds(self, how_many=None): if how_many is None: print(self.get_sound()) else: print(self.get_sound() * how_many) spot = Dog("spot", 53, 27, "Ruff", "Derek") print(spot.toString())
The fundamental problem is that this tutorial teaches a lot of incorrect things. This is teaching you "Java in Python", not Python. There *are no private/public/protected* variables in Python. Indeed, there is no concept of *access modifiers at all*.
OMG, please could you expand on that? So why the getter/setter functions? What are they for? I'm completely new to Python but have to learn it very fast... Thx
Hey Vpprof, below is a good explanation of what I was referring to. All I did was remove the underscores to the variables to make them easier to get to instead of the weakly private behavior modifications Python assigns with a single or double-underscored variable. As others have said it's not actually "private" but as far as I can tell that's the closest you can get to the concept of private from other languages in Python. As far as the getter and setter functions are concerned, I want to say its a way for the developer to control the means by which one changes and accesses the value of these double-underscore, pseudo-private variables. ruclips.net/video/ALZmCy2u0jQ/видео.html
I was searching for the news story about a man eaten by a python in indonesia, and i ended up watching this instead..divine calling to be a programmer?
Error at 29:26; ".isalnum" does NOT return True if all characters are numbers. It returns True if every character is alphanumeric (either a letter or a number). Both ".isalpha" and ".isalnum" for this example return "False" because of the spaces, apostrophes, and the dash. ;)
This tutorial is actually really bad. Things like using sys.stdin.readline() instead of input(), defining private variables in a class, using setter and getter methods, etc. etc. are all horribly unpythonic or even borderline incorrect. This tutorial teaches you how to write Java in Python. It does not teach you Python.
Ok someone has to help me... I'm at about 40 min in the video and when I try to print spot.toString I get an error: AttributeError: 'Dog' object has no attribute '_Dog__name' Everything I've done is exactly as in the video but for some fucing reason Spyder thinks I'm calling _Dog__name instead of __name. Wtf do I do?
I had the same issue and this is the solution. Derek copy-pasted the toString method from the Animal class, but he left the attributes as self.__name, self.__height etc. I don't really know how it worked for him but I have to call the Animal getter methods to get values for those variables. My guess is that even though we're inheriting from Animal class, we still can't access the private variables directly from the Dog class. If you look at the cheat sheet in the video description, you'll see Derek also uses getter methods within the Dog toString method - for some reason he hasn't shown this in the video, but that's how to get around that problem
thank you!, i think he just edits out a lot of stuff from the video to be shorter, but in doing so he edited his fix to this, since you can even see the jumpcut after he clicked enter
Warning! This tutorial is not a good Python tutorial. It is clearly written by someone who comes from a Java/C++ background, and misuses Python constructs that they confuse for constructs from those languages. For example, it uses double-underscore name-mangling, i.e. things like `self.__myvar = myvar` , but this is *not meant to be used like a private access modifier*. You just do `self.myvar = myvar` in Python, or, if you want to signal to people that an attribute is an implementation detail, you use a *single underscore*. Second, the tutorial creates a bunch of class variables, that are immediately shadowed by instance variables in the initializer. This is totally pointless, and can lead to subtle bugs. Finally, a `toString` method? Use `__str__` in Python, and then you can just `print(instance)` or `str(instance)`. Again, clearly someone is coming from Java or C++.
thanks for the clarifications. there are no private instance variables which i thought was a bit strange but oh well, it's workable. Also if variables are dynamically typed, would i have to check if something is number rather than strings for, say, the add function? that was new for me too
Exactly, if you follow the example as it is here IT WON'T WORK. Try to get rid of the say __.xxx and replace them with self.xxx, that will make it work.
Learn in One Videos for Every Programming Language
Subscribe to Bookmark them: bit.ly/2FWQZTx
C++ : ruclips.net/video/Rub-JsjMhWY/видео.html
Python : ruclips.net/video/N4mEzFDjqtA/видео.html
Java : ruclips.net/video/n-xAqcBCws4/видео.html
PHP : ruclips.net/video/7TF00hJI78Y/видео.html
MySQL : ruclips.net/video/yPu6qV5byu4/видео.html
JavaScript : ruclips.net/video/fju9ii8YsGs/видео.html
C# : ruclips.net/video/lisiwUZJXqQ/видео.html
HTML5 : ruclips.net/video/kDyJN7qQETA/видео.html
CSS3 : ruclips.net/video/CUxH_rWSI1k/видео.html
JQuery : ruclips.net/video/BWXggB-T1jQ/видео.html
TypeScript : ruclips.net/video/-PR_XqW9JJU/видео.html
ECMAScript : ruclips.net/video/Jakoi0G8lBg/видео.html
Swift : ruclips.net/video/dKaojOZ-az8/видео.html
R : ruclips.net/video/s3FozVfd7q4/видео.html
Haskell : ruclips.net/video/02_H3LjqMr8/видео.html
Handlebars : ruclips.net/video/4HuAnM6b2d8/видео.html
Bootstrap : ruclips.net/video/gqOEoUR5RHg/видео.html
Rust : ruclips.net/video/U1EFgCNLDB8/видео.html
Matlab : ruclips.net/video/NSSTkkKRabI/видео.html
Arduino : ruclips.net/video/QO_Jlz1qpDw/видео.html
Crystal : ruclips.net/video/DxFP-Wjqtsc/видео.html
Emacs : ruclips.net/video/Iagbv974GlQ/видео.html
Clojure : ruclips.net/video/ciGyHkDuPAE/видео.html
Shell : ruclips.net/video/hwrnmQumtPw/видео.html
Perl : ruclips.net/video/WEghIXs8F6c/видео.html
Perl6 : ruclips.net/video/l0zPwhgWTgM/видео.html
Elixir : ruclips.net/video/pBNOavRoNL0/видео.html
D : ruclips.net/video/rwZFTnf9bDU/видео.html
Fortran : ruclips.net/video/__2UgFNYgf8/видео.html
LaTeX : ruclips.net/video/VhmkLrOjLsw/видео.html
F# : ruclips.net/video/c7eNDJN758U/видео.html
Kotlin : ruclips.net/video/H_oGi8uuDpA/видео.html
Erlang : ruclips.net/video/IEhwc2q1zG4/видео.html
Groovy : ruclips.net/video/B98jc8hdu9g/видео.html
Scala : ruclips.net/video/DzFt0YkZo8M/видео.html
Lua : ruclips.net/video/iMacxZQMPXs/видео.html
Ruby : ruclips.net/video/Dji9ALCgfpM/видео.html
Go : ruclips.net/video/CF9S4QZuV30/видео.html
Objective C : ruclips.net/video/5esQqZIJ83g/видео.html
Prolog : ruclips.net/video/SykxWpFwMGs/видео.html
LISP : ruclips.net/video/ymSq4wHrqyU/видео.html
Express : ruclips.net/video/xDCKcNBFsuI/видео.html
Jade : ruclips.net/video/l5AXcXAP4r8/видео.html
Sass : ruclips.net/video/wz3kElLbEHE/видео.html
As many languages you know so many times you are a human...
Nerrrrrrrrrrrrrrrrrrrrrrrrrrrrddddddddddddddddddd....Thank you.
Jesus christ litarly you are the jesus christ of tutorials
such a freckn big list this knowledge could last me for years thnks
What I need to know is: HOW DO YOU LEARN SO MANY PROGRAMMING LANGUAGES?
Install : 0:17
Basics : 2:23
Arithmetic : 4:21
Strings : 5:54
Lists / Arrays : 8:08
Tuples : 12:24
Dictionary : 13:37
Conditionals : 15:46
For Loop : 19:41
While Loop : 21:57
Functions : 24:59
User Input : 26:34
String Functions : 26:57
File I/O : 30:11
Classes / Objects : 32:04
Constructors : 34:39
Inheritance : 37:24
Overwriting Functions : 37:58
Overloading Functions : 39:47
Polymorphism : 41:19
in the description psssst I'm sure you know already so we'll keep it a secret
+Albert Matei Haha I saw the description but the links open a new tab...
+Thanos Sofroniou your just looking out for all of us, a true hero😢
+Thanos Sofroniou Heaven is filled with people like you.
+Thanos Sofroniou An hero
Table of contents (you can use the timemarkers as shortcuts):
2:25 hellopython.py
3:58 data types
4:18 arithm operations
5:01 order of operations
6:57 print
8:06 lists
12:30 tuples
13:37 dictionaries / maps
15:45 conditions
17:31 logical operators
19:41 loops
24:59 functions
26:35 user input (sys.stdin.readline())
27:00 more about strings
30:12 file I/O
32:05 objects
36:42 object instantiation
37:25 inheritance
39:49 method overloading
41:19 polymorphism
I am a working dev with over 15 years experience in multiple platforms and languages, starting with Python seriously only now. I simply have not come across a more succinct and comprehensive intro to Python, for a Developer. Derek rocks!
Thank you for the nice compliment :)
Install : 00:17
Basics : 02:23
Arithmetic : 04:21
Strings : 05:54
Lists / Arrays : 08:08
Tuples : 12:24
Dictionary : 13:37
Conditionals : 15:46
For Loop : 19:41
While Loop : 21:57
Functions : 24:59
User Input : 26:34
String Functions : 26:57
File I/O : 30:11
Classes / Objects : 32:04
Constructors : 34:39
Inheritance : 37:24
Overwriting Functions : 37:58
Overloading Functions : 39:47
Polymorphism : 41:19
Pamul Yadav what does file I/O do or mean
It is the shorthand for « File Input/Output », which is the creation, deletion, opening and reading, opening and writing part for Files.
Bless your soul! Thanks!
grt job yadav
You are the real MVP
that was a great tutorial. I liked the speed of it. No blablabla, just straight to the points. thank you.
+Johannes Seikowsky Thank you :) I do my best to not waste time
But really. Other lecturers spent half an hour on the print command. geez
Hi Derek, on the method toString() of the class Dog I only managed to put it to work like this:
(this works)
def toString(self):
return "{} is {} cm tall and {} kilograms, says {} and owner is {}".format(
self.get_name(),
self.get_height(),
self.get_weight(),
self.get_sound(),
self.__owner)
...instead of:
(this doesn't)
def toString(self):
return "{} is {} cm tall and {} kilograms, says {} and owner is {}".format(
self.__name,
self.__height,
self.__weight,
self.__sound,
self.__owner)
yeah.. figured that out after awhile too..
This needs to be on top
If you change the variable definitions in the animal class to a single leading underscore (_name instead of __name) that makes the variables protected instead of private which allows child classes to access the parent class's variables.
Actually it's standard to use __repr__ instead of toString. So you can simply, do -- print cat, dog
thanks that was driving me cray
Go to the settings and play the video at 0.75 speed, should help a lot! Also...
Install : 0:17
Basics : 2:23
Arithmetic : 4:21
Strings : 5:54
Lists / Arrays : 8:08
Tuples : 12:24
Dictionary : 13:37
Conditionals : 15:46
For Loop : 19:41
While Loop : 21:57
Functions : 24:59
User Input : 26:34
String Functions : 26:57
File I/O : 30:11
Classes / Objects : 32:04
Constructors : 34:39
Inheritance : 37:24
Overwriting Functions : 37:58
Overloading Functions : 39:47
Polymorphism : 41:19
instead I played it at 1.25)
print("hello world")
hello world
MOM AM A PROGRAMMER
Z Button lol
You produce more with less code. That´s power !
DailyKidness PRINT: "Yes, you can"
No! in BASIC:
10 PRINT "Hello World!"
20 GOTO 10
public static void main (String [] args){
System.out.println("NO!!");
}
this is a method to learn a language if u already know a programming language
It's a good method to refresh your memory when you know multiple languages and you have to prepare for a job interview
@@bra5081 yes
its not possible to teach programming to a newbie in 45 minutes which is the length of the video
Yes and that is very GOOD thing. Sadly most tutorials are for those with none or minimal programming experience. I would love to see more of these, maybe they are out there but the beginner tutorials always pop up first when doing a search! ;-(
Yeah that's what I was looking for!
Great video
To see how lists work in loops at 21:30 change to:
num_list=[[1,2,3],[10,20,30],[100,200,300]]
for x in num_list:
for y in x:
print(y)
This is the first time that I'm putting a comment for a video on youtube!
"This was exactly what I was looking for."
I was procrastinating for so long to learn Python, but you finally helped me to do that. I was under the impression that even knowing how to install it, would take me a couple of hours! When I randomly started watching your video, I noticed that before the second minute, you had already covered all I needed for the installation. I just couldn't resist finishing this video.
Thank you so much.
"LOVE YOU"
That's awesome! Thank you :) I'm happy it helped. If you want to learn more I teach Python through problem solving here ruclips.net/video/nwjAHQERL08/видео.html
I was looking for a one-pot pasta recipe and ended up watching this entire video.
That's funny :)
Project BRE by
Bro, go for one pot quinoa dishes. Way hipper.
Hope you liked it. :)
Project BRE programming hunger 😂
BY FAR, the best video to dive in Python out there. (forget the 11 hours tutorial).
Amazingly efficient.
Assan Sanogo Thank you for the nice compliment :)
Best programming tutorial I've ever watched. Wonderfully succinct! Thank you for putting this together!
Thank you for the compliment :) I'm happy I could help
That was great. I hadn't planned on watching the whole thing, but I started watching and the next thing I knew 43 mins had passed. Thanks for making it, Derek!
+Jordan Scott You're very welcome :) I'm glad you liked it enough to watch it all.
Very very good tutorial, not slow like many others, and it's mostly for people coming from other languages.
Thank you :)
I'm new to programming so i've had to stop this video every 15 second. Still prefer this tutorial to others that i've seen since it's so concise and clear. The other guy i watched spent 5 minutes ranting about random crap.
nope u should start from c# rather than python
Lmao I’m coming from HTML
Hahahaha
I love how fast-paced this tutorial is. It cuts straight to the point about the stuff you need to know and it taught me so much about this amazing language. Thanks Derek!
Thank you :) I'm glad you liked it
7:15 print("%s %s %s" %('quote', quote, multi )) This syntax is different than most languages where function & method arguments are comma separated. I wonder if the function declaration for print() is only accepting one parameter, then parsing it ? Because of the weird syntax with %() being passed in. Most languages would accept an array and the syntax would be print("%s %s %s", 'quote', quote, multi)... Yeah, looking at the source code, it looks like there can only be one comma that does separation of args & kwargs (keyword_args like sep, file & end as shown in 7:50). Based off the function declaration, i'm guessing that if you wanted to use all 3 keywords sep, file, & end, i'm guessing that they'd be separated by spaces ?
8:58 print('First Item', grocery_list[0]) Okay, now I'm confused ? Maybe I was looking at the source code for a different version of Python than the one you're using ? No string concatenation here. Just a list of parameters ? I see now that your IDE says the print declaration is an array of objects.
11:30 *del* grocery_list[4] _VERSE_ grocery_list.*remove*("Pickle")
14:43 *del* super_villians['Fiddler']
14:21 super_villians = {"Fiddler" : "Issac Bowin"}
14:59 super_villians['Pied Piper'] = 'Hartley Rathaway'
Python seems schizophrenic: Sometimes it's using the methods of an object (the object oriented approach) and other times it's using an outside function or keyword to act on an object. Sure, it's perfectly fine to use a function to act on an object sometimes. But I'm not sure I can agree that this is a good beginner language because of the inconsistencies, and the use of symbols to represent real objects. Symbols are nice shortcuts for experienced programmers, but i believe they're doing a dis-service to people learning OOP. If someone doesn't understand object-oriented programming, then i would recommend Java or C# because they have so many objects to use... And after a while of using well designed objects (like Collections, List, Set, Map), OO will start to "click" and you'll "get it."
Compare the above python to java:
Map super_villians = new HashMap();
super_villians.put("Fiddler", "Issac Bowin");
super_villians.remove("Fiddler");
super_villians.put("Pied Piper", "Thomas Peterson");
super_villians.put("Pied Piper", "Hartley Rathaway");
super_villians.size()
17:38 The logical operators *and*, *or*, *not*: This is a cool language feature to have these as keywords instead of symbols.
20:02 for x in range(0, 10)
I didn't see an example of a backwards for-loop, but stackoverflow has several different ways.
33:22 def set_name(self, name):
self is an interesting concept, but it's totally un-necessary to implement a language in this way. Also, i noticed that even tho methods declare self as a parameter, that you're not required to pass it as an argument (i'm guessing it gets passed automatically).
40:49
What about:
def play_sound(self):
play_sound(self, 1)
def play_sound(self, how_many):
print(self.get_sound() * how_many)
41:43 def get_type(self, animal)
"And it is going to receive Animal objects."
How does it only take animal objects ? No type is specified. Couldn't you pass it any object that had a method get_type() ?
in a strongly typed language, it's easy to see what type of objects are passed into functions & methods (the types are part of the method declaration). I'm struggling to see how you know what type of object to pass into a method without looking at the implementation details ?
42:22
test_animals = AnimalTesting()
There's no view ? No virtual ? No interface ? No abstract class ?
I love finding incredible channels on RUclips. Your mind works on a higher level. Thanks for the entertaining, high quality education.
Pinkhaired Gnom Thank you for the very nice compliment :) You're very welcome
This video is really good and fast for someone who already know other languages but want to speed things up
Thank you :)
ruclips.net/video/25gvhzRN3ns/видео.html
Great video! I haven't used Python in months and I needed a refresher to get me back in developer mode. Got everything I needed! Thanks a lot!
Im an expert in C/C++ and was browsing through different webpages on how to learn python the fastest way. I must say that this video covers almost entirely everything that i wanted to know! Great job!
+123Mrchoy Thank you :) I'm glad it helped.
+Derek Banas You are the best you helped me get an A on my test thank you!!!!
123Mrchoy what do you (personally) program with C and C++? I'm just curious because I've been learning a little about those languages and are interested in hearing someone's personal experience
Fonts , sound , code every thing perfect
Thank you very much :)
Okay, so can i put Python in my resume now?
+Gothangelik where did you took the course ?
+michaeljacksonator I know this is an old post, but I'm just now seeing it, lol. Unless you've used Python in a project that shows up elsewhere on your resume, I'd leave it out until you do. Your practical experience with a program cannot simply be you watched a youtube video of someone using it and you played around with it for a few hours. It doesn't need to be a complex project, maybe just talking to an arduino project via the serial port. But employers want to know you have experience with something before deciding to add it to your resume.
+michaeljacksonator if you understand difference between programming and programming language feel free to add python. everyone who can program can write python.
Well you certainly can't put "understand humor" in your resume...
I know this was sarcasm, but people do not get it lol
Comming from Java Python looks and feels like a stroll in a park breathing a fresh ozone air after summer rain...
Python is definitely a dream language I agree :)
Breathing in that good ass prana
You do not want to breath in ozone
Had same feeling after years of Java
thanks for the warning, I def won't learn it now
Thank you so much Derek, awesome! First I thought your videos were so difficult because of the speed and all the information, but after finally understanding Java as my first language (thanks to your videos mostly) I realized I can learn any language in no time with your help! You are so great! Thank you for sharing!
Thank you for all the nice compliments :) It is always great to hear that I've helped!
Drink 3 energy drinks, smoke 3 joints and watch this video without stopping it. Power learning
+Dolores Watson yeah man smoke de weed
Lol just like school
Noah Byrge
respect bro
+Dolores Watson #Heroes_take_it_all_at_once.
+Dolores Watson only 3?
Thank you, this is an excellent video for ones who have experience with other programming languages, and want to learn the basics of Python quickly.
Thank you :) I'm happy it helped
The lack of semicolons is disturbing and it's weirding me out.
Same.
word
same, here from 2 years in c++
Right? It's unnatural. How can you tell when it stops getting executed?
@@Keshaire By lines
I generally fasten the speed of any tutorials on YT
but here for the first time i have to slow down the speed
I specialize in fast videos full of content :)
Derek Banas great work
same!!!
same here :D
True
This is perfect for me because I completed the Python course on Codecademy a while ago and wrote a few scripts but I haven't touched it in months. This offers a great refresher than I can sit through in one session rather than having to pull from various different sources. Thanks.
Pseudo Nym You're very welcome :) I'm very happy that I could help.
31:57 needs a test_file.close() before os.remove("test.txt"), otherwise it's throwing a "file being used by another process" error
exactly
This is so interesting that I paused my Netflix and watched this for whole 44min
Thank you very much :)
@@derekbanasit's like we getting benifit but the teacher saying thanks.
It's heartening to see the number of views on these types of videos. That's at least 3.9 million peoples' kids who will probably be introduced to programming from an early age. Those are good numbers.
I agree 100% !!! It is also awesome that RUclips has been pushing more education channels lately
Yep, great channel btw, subscribed.
We had to learn html in 7th grade... I hated my teacher and coding. Now, thanks to conspiracy theories, I am researching coding independently. Oh how the tables have turned ×_×
I'm 15
ruclips.net/video/25gvhzRN3ns/видео.html
One question:
In Dog's toString(),
how is it possible that you were allowed to directly access 'Animal's privates,
such as __name, __height, __weight, __sound?
'Animal's privates are supposed to be not accessible by the derived class 'Dog',
and that's why you had to define Animal member functions get_name(), get_height(), get_weight() and get_sound().
I tried your code as-is,
and got the expected error (ie, something like 'Dog has no member named __name').
By the way,
Excellent Video, Derek! :)
So, how did you solve that problem? The same happens with me.
+Justin Lopez Thanks!, I had the same problem
+Justin Lopez
I had the same problem. Thanks!
+Justin Lopez
I had the same problem. Thanks!
+Rúben Borralho this is how I changed my code:
def to_string(self):
return "{} is {} cm tall and {} kg and say {}. His owner is {}".format(self.get_name(), self.get_height(),self.get_weight(),self.get_sound(),self.__owner)
Hey Derek, can you please make a video series on how to make Android apps in C# using Visual Studio. A lot of people need it. Please try your best. If not can you suggest some great sources for it...
no
Shut up Putin xD
Putin is all over Internet, and disturbing Programmers. 😂
You covered more in 40 minutes than in a course I did in my university for 2 months, 2 hours a week lol
Thank you for the compliment :)
I get it like sarcasm. .not compliment
Tu ne parles pas anglais
Shawn Ruby Tu es tres gentil
Si il ne comprend il devrait vouloir savoir
I usually don't comment on videos, but this tutorial seems very helpful. I just found your channel and I can already tell this is a great channel! I dropped a big thumbs up on this video and even subscribed because of this video! Keep up the good work man!
Thank you for the nice compliment :) I hope you enjoy the other videos
Totally agree!!
ruclips.net/video/25gvhzRN3ns/видео.html
If you ran into an error for spot.toString (), try changing in Dog:
def toString(self):
return super(Dog, self).toString() + " Her owner is {}.".format(self.__owner)
This worked for me, thx 2 stackoverflow for the answer ☆♡☆
Anna, you nailed, it thanks! Took me a long way toward understanding how to manage the diff between local and super.
Thank you for the comment... really helped me out as it was broken for me and now i can understand it :)
I am working my way through this video. This is my first serious foray into programming and I just want to say "Thank you!". Very well laid out and paced. I am looking forward to going through your videos on C# and c++ next!
Awesome Video @Derek. Thank you!
Small error: at 39:30, change "__name" into "get_name()" to avoid error . Same goes for attributes "height", "weight" and "sound", except the newly created attribute "__owner".
Yeah, I've never programmed anything. Not quite sure why I'm even watching this. 15 minutes in and I'm understanding less and less xD
code.org and code.hs . finish those super simple courses and come back
lol... Im still a little bit confused and have been coding PHP, JQUERY and JavaScript for a year.. I should pay more attention xD
These videos are probably more in line if you've already learnt one language to a decent level as picking up another one is relatively simple - more often than not the differences are just syntactical
Don't use this video as the only tool to rely on. This video is very short and it doesn't take 45 minutes to actually learn coding. try to learn something new, make some assignments for yourself, re-read and make your own tests. That's how I learn by myself
personally i would see this vid, the go to thenewboston, and then watch this again, yes i know this is a 1 year old comment and there is a 98% you've already learned python
That was very informative, thank you for creating the video!
Mike Notarnicola Thank you :) I'm glad you liked it.
I am coding a text number guessing game, using the information I gained from your video :-) Still working on it. trying to figure out what statement to use so that if a == b to go back and redo it, so there will be no duplicate numbers.
Abbie, Thank you for your reply! I am working on the game, slowly but surely. Now I am trying to throw a Raspberry Pi into the mix.. Turn on a red LED for a guess that is too high and a yellow LED for a guess that is too low and a green LED for the right guess..
Abbie Wolff It was a Christmas gift from my wife! :-)
Abbie Wolff I got the whole kit and kaboodle.. I got this kit www.ebay.com/itm/Sunfounder-Project-Super-Starter-Kit-for-Raspberry-Pi-Model-B-40-Pin-GPIO-Board-/151460909119?pt=LH_DefaultDomain_0&hash=item2343c6103f and the Raspberry Pi kit with the camera, jumpers, bread board etc
I SOOO appreciate you taking the time to edit your video. Very helpful and, unlike many tutorial videos, cutting to the most interesting and important parts. Thank you! Love what you did there.
Thank you :) Heavy editing is what makes me different
infinity = 0
while infinty >= 0:
print('Pokemon Go')
infinity += 1
Beautiful.
Challenge extended, challenge accepted, This quickly gets out of hand:
#! /usr/bin/python3
i = 1
s="Gotta catch 'em all" + " "
while i
and when you have a continuous thing like that, you can do ctrl c to stop it
while True:
print('Pokemon Go')
I'm a beginner C programmer and you forgot a few lines:
#include
int main(void) {
unsigned long long infinity=0;
while (infinity > 0) {
printf("Pokémon Go
"); }
exit(0); }
Or even more efficient:
#include
int main(void){
while (1) {
printf("Pokémon Go"); }
exit(0);}
Also, idc that I'm in a python programming video, I'm learning C atm dammit.
26:35 INPUT: name = input("What's your name? ")
what's all the fuss about?
+GPC™ ..as per your code, the user is expected to enter the name within quotes (eg: "sudheer"). but user may not know this. So, instead, use name=raw_input("enter your name"). this works better when the user is expected to enter a string.
In the old version of python this was the case. However in the newer version: input('What is your name?') works perfectly fine and now you don't really have to use raw_input.
Finished the whole thing. I've got 334 lines in my text editor. Thank you very much for making this. I now feel comfortable enough with python that I can use it for my projects in school.
Arend Peter Castelein You're very welcome :) I'm happy that I could help.
Order of arithmetic evaluation
BODMAS = Brackets, Orders, Division, Multiplication, Addition then Subtraction
Did it work? Do I know Python now?
WOok2a yes..
print('Yeah you should')
If you practice everything you just saw him do - then yes.
Thank you. It helped me a lot in just 1 Hour :)
I'm happy I could help :)
thank you sir...and maintain this speed of teaching...sometimes it is very fast that i need to pause your video...but it's ok...i learn lot's of new thing in your great tutorial...thank you again sir...
Thank you very much :) I'm very happy that you liked it
Derek Banas your always welcome sir...
Derek Banas Three year old video and still replying to comments. - respect
Chris Spears yesss...
ruclips.net/video/gGVqzl0V1xw/видео.html
Ater being with c++, im finding simplicity of the python difficult.... u ppl got anything to say?
I can understand that. If you get really good with anything the alternatives of any sort will seem wrong in one way or another.
yeahh true
karthikeyan mg right brother...i am programmer who is familiar with c c++ and java syntex...so sometimes i find difficulties to write code in python language...but at the end python is also great language for development of anything...
i so feel you bro !
+MPK MPK Well, Python is nice and easy and all, but it's so *incredibly* slow compared to something as low level as C, or C++ that I kind of doubt it.
i like the speed of your talk. Count me in as a subscriber..
Thank you very much :)
Awesome video! I have learned Java, HTML/CSS/JavaScript, and I wanted to know how to program C++ and python. Because of this video, I was able to learn python, and learn c++ all in one video. Thanks a lot Derek!
Thank you :) I'm very happy that I could be of help
Sheshank Shankar I need help with raspberry pi
Crisp and comprehensive at the same time. An awesome jumpstart for anyone who is familiar with programming constructs and syntax in general, but not familiar with Python at all. Super!!!
Thank you very much :)
In the Dog::Animal example, it won't let me access __name, __height, __weight, nor __sound from the derived class toString() def, probably since they are private. How do we make them protected, like in C++, so the derived class can access ?
(EDIT): I'm new to Python, but I just read a bit of the docs about the issue. It would seem that the Python name-mangling mechanism that is used to fake private class data, applies to the *current* class - so such variables would always have a name unique to their definition at their own level in a class hierarchy. Animal::__name becomes _Animal__name, but Dog::__name becomes _Dog__name. This can be seen by expanding objects in the debugger.
Is there any way around being forced to use the base class's getter/setter functions from the derived class (and still have private data) ? That would seem inefficient.
(EDIT #2): I figured out a way ! - in the derived class, just use the base class mangled name directly. So to access the __name variable from the Dog class, that was declared in the Animal class, just use _Animal__name ! Do you think this breaks any rules ?
Also, how did you code compile with Dog::toString() as shown ? (I'm using Python 3.4.2 on the pyCharm IDE on Windows 7 64 bit)
agnichatian Thank you for posting all that you discovered! The rule that is broken is the rule of encapsulation. It is almost always best to use the getter and setter methods that are inherited by subclasses, but it is also nice to understand the work arounds. Just make sure you heavily comment your code if you ever break rules. Others that see your code may not understand what you did.
Derek Banas
Yes, that is why I was so concerned about it. The docs clearly show that there is no enforcement of the encapsulation in Python. Coming from a C++ perspective, this is dangerous and I'll bet causes a lot of unreliable code out there. The fact is that many will not maintain an engineering discipline when writing and using classes ! Thanks for tie video.
More enjoyable when played at 2x
That's funny :)
lol
Lmao you want to learn programming from Eminem?
After years of C, I find Python's structure quote annoying D:
I already miss all the semicolons and braces.
Theta Scorpii Is that a "why?" ._. Anyway it's because I'm just used to using them. Every time I write a statement in Python I put a semicolon unconsciously, it's annoying lol.
prepareuranus I think you have got habit of C and C++ programming in which we have to put Semicolons and braces for defining or declaring ;) ! never mind , it happens .
prepareuranus The semicolons and braces in those languages are seen as redundancy in Python. The indented structure provides what both semicolons and braces do in those languages.
prepareuranus I agree somewhat. I don't miss the semicolons. However, I'd gladly trade indentation for braces. Guido has said that will never happen, though.
Good it isn't necessary
I absolutely love the format of these videos. "Here's the information. Done." Can't wait to watch some of the others.
Thank you :) I try not to waste time
I'm watching this from the womb and watching at 18x speed. Now I own the facebook and goggles.
That's funny :)
hahahahahaha that a cool humor :D
👓
Darn! I should have done that
What did you do with those goggles ? Sleep and imagine that you owned facebook ?
The last 13 min was the hardest
It sure was, still, don't understand classes...
this comment currently has 13 likes
@@ludviglindholm8314 Classes (or Object -Oriented Programming) is a methodology that we use in programming to model real world objects. Think how to describe an apple to a computer. You can give characteristics and give it actions. Classes are to nouns, as functions are to verbs and variables are to adjectives. Take that with a grain of salt though. Thinking of a video game character also helps you imagine it. The character would be your class. Health and Defense are variables and when your character moves and takes damage are functions.
Yeah, you don't understand OOP in 13 minutes don't worry just do lots of examples. OOP is a great methodology for organizing your variables and functions and is very helpful for really large projects
This video I think is for people who already know the fundamentals in another language but don't know python, if you don't understand oop at all then you should watch a more detailed video on that.
ATTENTION:
For those planning to put "Python Programming" on their resume after watching this video, you must be DELUSIONAL! Even though this video does an amazing job of covering the general basics, it does just that: it covers the BASICS. There is wayyyyyy more to python. In your job interviews, the employer will ask you if you have any experience in particular python fields like Python Networking, Data Science with Python, Machine Learning Systems with Python, Black Hat Python, etc. No one will hire you just because you know how to create a loop, a list, or a class in Python! So deflate that programming ego of yours or else you will face a big world of hurt when the employer decides you are not right for that amazingly high paid programming job. That will be an opportunity flushed down the toilet all because you thought that 1 video was enough to teach you a whole programming language. You will need at least need a year or two of consistent python programming experience before an employer can take you seriously.
Surfbuddy24 I agree. This tutorial covers the basic syntax of the language, but doesn't teach the logic behind what makes for a good python program.
From my experiences, if one masters the basics, they become Tim Duncan.
Absolutely Brilliant! Your way of explaining is like "Keep it simple, cut to the chase". Even a beginner like me understood up to 80% of the video in one go. Thank you sir! and looking forward to see more. :-)
Thank you :) I'm very happy that it helped
now if only i could download this all into my head permanently...
That's funny :)
It's called remembering
Ciprian Ciprian LOL
Anyone wonder if Derek is actually a bot that senses funny comments?
just get a notebook and note down every single point you find is importent for you.
My Mum told me I have to learn programming, so here I am. I'm 50 by the way.
Have fun
Não entendi nada!!!!
Paulo Silva talk fucking english
Friemeltjes wut
You're 50 and you let your mom tell you what to do?
"continue, continue, continue, i agree..."
every EULA ever.
Have to say, that the best channel for a programmer
fast learning, clear and without too much hour of explanation around to explain the beginner's topics
Derek, you save my Degree exams, my professional learning, big fan!
Thank you for the compliment :)
Thank You Derek Banas. Love From Nepal :)
Thank you :)
Abiral Sangroul
ruclips.net/video/3g6iqVsv32I/видео.html
Honest question
Why use sys instead of input?
I have no idea why. You can do type conversions easier with input.
my point EXACTLY!
Same! input() wud have been way easier n faster
They are different, and depending on what kind of program you're creating you should evaluate which one is more efficient.
ruclips.net/video/25gvhzRN3ns/видео.html
coming from a php background( dont hate me :'l ) i noticed when you appended "onions" in grocery list the concatenated to_do_list was also updated? does that mean to_do_lists variable only has a reference to the grocery_list variable??? pls help
Yes. Python doesn't duplicate data if it doesn't have to, so instead of a copy of the grocery_list being added to to_do_list, to_do_list points at grocery_list. If you wanted to copy all the data, you would slice grocery_list like this: to_do_list = [other_events, grocery_list[:]]
Other methods are:
to_do_list = [other_events, list(grocery_list)]
Or use the copy module and:
import copy
to_do_list = [other_events, copy.copy(grocery_list)]
If you need to copy objects, you can use
newObject = copy.deepcopy(oldObject)
wow. thank you for the thorough explanation. thats some knowledge i think i wont find else where. thanks.. i love how that makes python versatile.
35:17 if you come from a language like Pascal, a class is nothing but a variable of the type Record. It's a collection of attributes for a given subject.
Hi Derek ,great video, I went thru most of it. I got stuck with : AttributeError: 'Dog' object has no attribute '_Dog__name'
Do you have a clue as to what it means?
I had the same issue. Does anyone know how to solve this?
If this is referring to the to_string() function in the dog class I found the answer. In the cheat sheet in the description the code is different to the video. Instead calling 'self.__name' you call the animal getter method 'self.get_name()'.
I'm really strugling with understanding the purpose of the Object part, at setters and getters. At some of them the (self...) just poops up in pink colour and at others I have to manually put it in. Is there any difference between popping up and putting it in manually ?
Some advice from any of you would be greatly appreciated, a noob trying to be a future programmer here, THANKS !
Tips & Tricks:
Click on video settings ->choose "Speed" -> Change to 0.5
This will fix your problem ! ;)
You misstyped 1.5 :P Atleast my problem was that he was so slow idk about you tho.
and btw why your comment says tips & tricks when there is only 1 tip / trick ._.
Is there a tip or trick that can make him enunciate better? And maybe take breaks between words? Some people just can't learn not to mumble. :(
Thank you so much, I learned A LOT MORE in 40 minutes than in 5 full lessons. I really appreciate that these videos are free on RUclips, please keep up the fun vids :D!
Thank you :) I'm very happy that it helped and all my videos will always be free
C = a + b
Print(C)
*_MOM GET THE CAMERA, I MADE A CALCULATOR!!!_*
That's funny :D
How to open preferences in windows?
how to do ANYTHING, in windows
Alt + Ctrl + S or from the list choose settings
Install Gentoo. It solves all my technical problems.
Python on windows is more simple now
can you make game exploits with this I already have an injector
Your clean and direct explanation helped me to have a wide and useful overview of Phyton. Thank you Derek!
Thank you :) I'm happy it helped
wow it's so close to java it's scary lol. nice video! helped me prepare for my interview.
suppose it depends on what you compare with :/
Lol it's nothing like Java, Java is compiled and Python is interpreted that alone makes them a lot different from each other, if you're talking about the syntax you'll be pleased to know that a lot of languages have a similar syntax, Java and Python are both C based languages so naturally they'll have a similar syntax.
Gherbi Hicham I meant the syntax is similar, yes. I understand the differences.
Golemstorm In that case see C++, C and JavaScript's syntax out there, it's almost like Java's with the braces and all.
Lel, java is not compiled, it has an interpreter, JVM which is making bytecode on the fly
it usually takes ppl 1hr+ to explain classes. this guy did it in 11mins **claps**
Yep
Before this video I didn’t know how to code. After watching this, I have now accepted a job as a software engineer at Facebook!
Thanks Derek!
this is probably the most accurate,precise and run with perfect speed computer tutorial! Real programmers will love this. This is how fast computer tutorials should be
Thank you :) I'm very happy that you enjoyed it
Nice video,but can't we just do Input() instead of sys.stdin.readline?()
That's just one of the many things this tutorial does wrong. If you want to learn python, this is not the right place to do so.
@@Rawing77 Yeah, this video is more of for people who know python and needs to be reminded of a specific topic.
When you spend the year learning java only to find out the day before the final that your exam is in python... 😔🤙
How was it? Did you passed?
@@robertgardzinski6424 Yea! I actually did really well; i got a 9/9 (weird scoring lol).
This video was actually a huge help, haha
Glad to hear that. :)
Learn C++ in one video: 3732hrs
Am I the only one who did not skip any second of this video?? Very explicit and clear. I already have C programming and VB. Net experience but it is my first python tutorial. I have now an idea of how I can assimilate all these languages. Thanks Derek
Thank you for watching the whole video :) It is sad that most people watch just a few minutes
For me, I use tutorials to know about something precise. I mean if I have a project or problem to resolve and that I am blocked, I look for specific video and in a specific time. But this one was different because it is like a lesson at school. I really enjoy it and I am willing to learn more about it by using the other languages I already knew.
I'm very happy to hear that. I put a lot of time into making these videos and it is great when people enjoy them :)
In order to get the command "print(spot.toString())" to work (ran at about 41:10), I had to make all variables public. Have relevant rules/operating procedures in Python 3.6 changed since v3.4? Or may I have missed something in my code? I've looked everywhere.
Any way to keep the variables private and still work the way he has it in the video? Below is my code; note all variables have had the double-underscore prefix removed to get it to function.
import random
import sys
import os
class Animal:
name = None
height = 0
weight = 0
sound = 0
def __init__(self, name, height, weight, sound):
self.name = name
self.height = height
self.weight = weight
self.sound = sound
def set_name(self, name):
self.name = name
def set_height(self, height):
self.height = height
def set_weight(self, weight):
self.weight = weight
def set_sound(self, sound):
self.sound = sound
def get_name(self):
return self.name
def get_height(self):
return self.height
def get_weight(self):
return self.weight
def get_sound(self):
return self.sound
def get_type(self):
print("Animal")
def toString(self):
return "{} is {} cm tall and {} kilograms and says {}".format(self.name,
self.height,
self.weight,
self.sound)
cat = Animal("Whiskers", 33, 5, "Meow")
print(cat.toString())
class Dog(Animal):
owner = ""
def __init__(self, name, height, weight, sound, owner):
self.owner = owner
super().__init__(name, height, weight, sound)
def set_owner(self, owner):
self.owner = owner
def get_owner(self):
return self.owner
def get_type(self):
print("Dog")
def toString(self):
return "{} is {} cm tall and {} kilograms and says {} Her owner is {}".format(self.name,
self.height,
self.weight,
self.sound,
self.owner)
def multiple_sounds(self, how_many=None):
if how_many is None:
print(self.get_sound())
else:
print(self.get_sound() * how_many)
spot = Dog("spot", 53, 27, "Ruff", "Derek")
print(spot.toString())
thanks alot. was struggling with this forever
I was stuck too. Thanks. It is a problem of scope in the constructor. You don't need to put all your attributes in public. Here is my functionnal code :
class Animal:
# attributes
__name = "" #None revient à pas de valeur
__height = 0
__weight = 0
__sound = 0
#constructor
def __init__(self, name, height, weight, sound):
self.name = name
self.height = height
self.weight = weight
self.sound = sound
def set_name(self, name):
self.__name = name
def set_height(self, height):
self.__height = height
def weight(self, weight):
self.__weight = weight
def set_sound(self, sound):
self.__sound = sound
def get_name(self, name):
return self.__name
def get_height(self, height):
return str(self.__height) #str convertit un nb en chaîne de caractère
def get_weight(self, weight):
return str(self.__weight)
def get_sound(self, sound):
return self.__sound
def get_type(self):
print("Animal")
#show datas
def toString(self):
return "{} is {} cm tall and {} kilograms says {}".format(self.name,
self.height,
self.weight,
self.sound)
#instance of class Animal
cat = Animal('Whiskers', 33, 10, 'Meow')
print(cat.toString())
cat.set_name("Gerard")
cat.get_height(15)
#print(cat.toString())
#Inheritance
#receive Animal class in parameter
class Dog(Animal):
#initl new attribute
__owner = ""
#constructor
def __init__(self, name, height, weight, sound, owner):
self.owner = owner
super().__init__(name, height, weight, sound)
def set_owner(self, owner):
self.__owner = owner
def get_owner(self, owner):
return self.__owner
def get_type(self):
print("Dog")
def toString(self):
return "{} is {} cm tall and {} kilograms says {}d{}".format(self.name, self.height, self.weight, self.sound, self.owner)
def multiple_sounds(self, how_namy=None):
if how_many is None:
print(self.get_sound())
else:
print(self.get_sound() * how_many)
spot = Dog("Spot", 53, 27, "Ruff", "Tony")
#print(dir(spot))
print(spot.toString())
The fundamental problem is that this tutorial teaches a lot of incorrect things. This is teaching you "Java in Python", not Python. There *are no private/public/protected* variables in Python. Indeed, there is no concept of *access modifiers at all*.
OMG, please could you expand on that? So why the getter/setter functions? What are they for? I'm completely new to Python but have to learn it very fast... Thx
Hey Vpprof, below is a good explanation of what I was referring to. All I did was remove the underscores to the variables to make them easier to get to instead of the weakly private behavior modifications Python assigns with a single or double-underscored variable.
As others have said it's not actually "private" but as far as I can tell that's the closest you can get to the concept of private from other languages in Python. As far as the getter and setter functions are concerned, I want to say its a way for the developer to control the means by which one changes and accesses the value of these double-underscore, pseudo-private variables.
ruclips.net/video/ALZmCy2u0jQ/видео.html
I was searching for the news story about a man eaten by a python in indonesia, and i ended up watching this instead..divine calling to be a programmer?
That's funny :)
hmm, possibly a dictator
@@derekbanas divine called him to right place,,isn't it? :)
Please make a pygame tutorial!
The Nessiezest Channel I have been thinking about doing that. Thanks for the request :)
Error at 29:26; ".isalnum" does NOT return True if all characters are numbers. It returns True if every character is alphanumeric (either a letter or a number). Both ".isalpha" and ".isalnum" for this example return "False" because of the spaces, apostrophes, and the dash. ;)
800 people were so excited about the Captain Cold reference that they missed the like button!!!
That's funny 🤣
This tutorial is actually really bad. Things like using sys.stdin.readline() instead of input(), defining private variables in a class, using setter and getter methods, etc. etc. are all horribly unpythonic or even borderline incorrect. This tutorial teaches you how to write Java in Python. It does not teach you Python.
@@Rawing77 What's so bad about defining private variables in a class?
Ok someone has to help me... I'm at about 40 min in the video and when I try to print spot.toString I get an error: AttributeError: 'Dog' object has no attribute '_Dog__name'
Everything I've done is exactly as in the video but for some fucing reason Spyder thinks I'm calling _Dog__name instead of __name. Wtf do I do?
9213ify i dont know how to help you but i know that some Version of python Handel things different
(they are not always backwards compatibility)
Close, I was using 3. The issue is trying to call a private variable.
I had the same issue and this is the solution. Derek copy-pasted the toString method from the Animal class, but he left the attributes as self.__name, self.__height etc.
I don't really know how it worked for him but I have to call the Animal getter methods to get values for those variables. My guess is that even though we're inheriting from Animal class, we still can't access the private variables directly from the Dog class.
If you look at the cheat sheet in the video description, you'll see Derek also uses getter methods within the Dog toString method - for some reason he hasn't shown this in the video, but that's how to get around that problem
THIS. yes.
thank you!, i think he just edits out a lot of stuff from the video to be shorter, but in doing so he edited his fix to this, since you can even see the jumpcut after he clicked enter
But what I don't understand is why someone older than 65 cant have a birthday party :3
That's funny :)
Senescence strikes again.
Just followed through the whole thing. Very quick and helpful. You are a clear speaker!
Thank you :)
Warning! This tutorial is not a good Python tutorial. It is clearly written by someone who comes from a Java/C++ background, and misuses Python constructs that they confuse for constructs from those languages. For example, it uses double-underscore name-mangling, i.e. things like `self.__myvar = myvar` , but this is *not meant to be used like a private access modifier*. You just do `self.myvar = myvar` in Python, or, if you want to signal to people that an attribute is an implementation detail, you use a *single underscore*. Second, the tutorial creates a bunch of class variables, that are immediately shadowed by instance variables in the initializer. This is totally pointless, and can lead to subtle bugs. Finally, a `toString` method? Use `__str__` in Python, and then you can just `print(instance)` or `str(instance)`. Again, clearly someone is coming from Java or C++.
Juan Arrivillaga Great
thanks for the clarifications. there are no private instance variables which i thought was a bit strange but oh well, it's workable. Also if variables are dynamically typed, would i have to check if something is number rather than strings for, say, the add function? that was new for me too
What tutorial would you recommend?
I cannot get the toString function to work when using it as a “Dog” method.
Exactly, if you follow the example as it is here IT WON'T WORK. Try to get rid of the say __.xxx and replace them with self.xxx, that will make it work.
to print a name you can also do :
name = "Stel"
print("My Name is %s"%(name))
that works the same (python27) :p
Thank you for sharing :)
np
Ok
name = "Jeff"
print("my name is {}" % (name))
Python 3.6 and newer also feature fstrings.
Example:
name = 'Gunnar'
age = 36
print (f'{name} is {str (age)} years old.')
Again, the teaching and video quality is next to perfect!!! I am amazed!
Thank you very much 😁