One of the fastest ways to become a developer in 2024 is follow a structured curriculum and to get insider knowledge from seasoned professional, if you want to learn more I have a free 1 hour course breaking down the exact steps to take to land a position ASAP: techwithtim.net/dev
@@aaronabishekecs3056if you completely copied then no don’t add it unless you can recreate one your own add some modifications and in general bring something of your own that you learned thanks to them ( correct me if I’m wrong )
00:02 9 hours of Python projects with increasing difficulty 01:53 Using the print function to output information to the user. 05:27 Using if statement to check user input 07:22 Using if statements to check conditions 11:02 Creating and testing quizzes using Python 13:04 Understanding Python syntax and 'if-else' statements 16:55 Implementing a scoring system 18:39 Converting a number to a string is necessary for valid operations with strings. 21:59 Creating a number guesser game using Python and the random module 23:32 Generating random numbers in Python using range, randrange, and randint 26:53 Converting user input to numbers using the int function 28:40 Checking input for number, generating random number, and prompting for guess 32:12 Handling user input and validation 33:49 Using the break keyword to exit a loop 37:10 Determining if a guess is above or below the random number 38:36 Implemented an L If to make the code cleaner 41:50 Checking user input for rock, paper, or scissors 43:35 Using 'not in' to check for invalid user input. 46:47 Lists are collections of elements accessed by index. 48:39 Deciding the winner of the game 52:04 Implementing a rock-paper-scissors game with user and computer wins count 53:54 Create a Choose Your Own Adventure game with customizable options. 57:18 Creating a basic text-based Python game with user input and conditional statements. 58:57 Giving clear instructions for user input handling 1:02:33 Creating if-else conditions based on user input 1:04:43 Illustrating the structure and nesting in Python projects 1:07:33 Creating a program to manage passwords and encrypt them. 1:09:28 Introduction to functions and their usage in Python 1:12:42 Using the 'with' keyword for file operations 1:14:17 File modes in Python 1:17:38 Using 'readlines' to read and process lines from a file. 1:19:18 Using rstrip and split to process data 1:22:39 Install the cryptography module for encryption 1:24:13 Installing and using the cryptography module in Python. 1:27:44 Creating and loading key files in Python 1:29:27 Loading and initializing encryption key and module 1:32:48 Defining and resolving security issues in storing encrypted data 1:34:22 Decoding bytes to string in Python 1:37:30 Creating a Pig game with Python 1:38:58 Creating a rule function to roll a die and return a value 1:42:29 Converting string to integer and validating the number of players. 1:44:14 Fix if statement error and simulate player turns 1:47:41 Implementing logic to stop game when maximum score is reached 1:49:26 Simulating turns in a dice game 1:53:09 Simulating a player's turn in a game 1:54:39 Simulating a dice rolling game with two players 1:58:24 Project one involved creating a dice rolling game in Python. 2:00:01 Using a text file to create a story operations program. 2:03:15 Read a story, find and replace words. 2:05:04 Extract words between angle brackets using Python slice operator. 2:08:38 Creating and using a dictionary in Python 2:10:33 Replacing words in a story using Python 2:14:30 Project 3 involves randomly generating math questions and timing how long it takes for the user to answer them all. 2:16:10 Creating a function to generate math problems using Python operators and random operands. 2:20:01 Using the eval function to evaluate expressions in Python 2:21:48 Implementing a loop to keep asking a user a question until they get it correct. 2:25:23 Calculating time taken for a task in Python using the time module. 2:27:16 Building a text-based slot machine project 2:30:29 Validating and converting user input 2:32:12 Function to deposit checks if the amount is valid. 2:35:22 Setting a global constant for maximum lines to create a dynamic program 2:36:56 Input validation and formatting for user-friendly interaction 2:40:07 Embedding values in strings using format method 2:41:59 Implementing a check to ensure betting amount is within balance 2:45:29 Setting up symbols and their counts for a slot machine reel 2:47:14 Generating symbols based on frequency of occurrence 2:50:44 Nested list representing columns, not rows 2:52:30 Make a copy of all symbols list to avoid affecting the original list 2:55:54 Creating a function to print the slot machine columns 2:57:36 Loop through all columns and print first value of each column 3:01:10 Adjusting the print function for the slot machine output 3:02:54 Printing new line character after every row. 3:06:13 Checking for winning lines dynamically in Python 3:07:56 Breaking out of for loop when symbols are not equal 3:11:38 Using the Splat operator to unpack and pass all lines from a list to a function 3:13:22 Create a function to run the game multiple times. 3:17:10 Fixed errors in function names and variable passing for smooth operation. 3:19:07 Created a slot machine in Python and won $11 3:22:21 Creating a function to input the number of racers and validate it 3:23:52 Using a while loop to ensure valid user input for number of racers 3:27:07 Function to check for valid number of racers 3:28:51 Running a Python program with Turtle module and function return 3:32:04 Setting up the screen and changing the window title 3:33:47 Basic turtle commands and screen setup 3:36:51 Using Python's Turtle module to move in different directions and angles. 3:38:41 Understanding the coordinate system in Turtle canvas. 3:41:54 Introduction to using turtle for drawing shapes and changing turtle properties. 3:43:29 Controlling the turtle's pen while drawing 3:46:50 Selecting unique colors for turtle racing based on user input 3:48:30 Creating and positioning multiple turtles for racing. 3:51:38 Turning arrows left by 90° to make turtles race upwards. 3:53:11 Using the setposition method to move the turtle to a specific position on the screen 3:56:25 Adjusting position of turtles for equal spacing 3:58:19 Positioning the turtles based on spacing and width 4:01:44 Refactoring the code to create Turtles inside the race function. 4:03:19 Using random movement in Python turtle racing 4:06:38 Finding the color of a turtle based on its index in the list. 4:08:21 Python Turtle race with five turtles and race mechanics. 4:11:35 Creating dynamic and flexible code with functions and variables. 4:13:05 Creating a typing test with text highlighting and styling. 4:16:13 Initializing curses module to take over the terminal and create a screen for writing text. 4:17:49 Printing 'hello world' and clearing the screen in Python 4:21:00 Running Python files and adding colors to text 4:22:32 Configure color pairs for foreground and background in Python 4:25:48 Understanding text collision 4:27:22 Creating a start screen for the game 4:30:32 Printing and overlaying user input 4:32:12 Implementing a while loop to continually ask the user to type something in and overlay it in a different color on top of the target text. 4:35:24 Adding Clear Screen and Exit Control 4:37:03 Characters have numerical representation 4:40:30 Handling backspace key input 4:42:03 Parameters in functions allow passing values with optional parameters. 4:45:23 Modifying color based on correct characters 4:47:11 Handling the completion of text and displaying words per minute 4:50:34 Using F-strings in Python to embed Python expressions directly inside of a string 4:52:13 Tracking time elapsed using start time and current time 4:55:24 Calculating words per minute (wpm) 4:57:06 Handling user input without blocking the program 5:00:19 Use the jooin method to combine list elements into a string. 5:01:53 The function brings the user back to the main screen and prompts them to play again. 5:05:30 Loading and selecting random lines from a text file in Python 5:07:02 Using random.choice to select and remove invisible characters from text file lines. 5:10:20 Create a countdown timer and play a sound effect 5:11:59 Playing sound and regulating time in Python 5:15:43 Formatting numbers in Python 5:17:30 Using ANSI characters to manipulate the terminal 5:21:08 Creating a password manager with dynamic settings 5:22:58 Generating a password with specified criteria 5:26:21 Generating random passwords based on given criteria. 5:28:10 Creating a while loop to generate a password meeting specific criteria. 5:31:41 Setting criteria based on presence of numbers and special characters 5:33:31 Python generate password function ensures password criteria are met 5:36:59 Function to generate password based on user inputs. 5:38:41 Fixing error in password generation code 5:41:47 Using curses module to manipulate terminal screen output. 5:43:21 Initializing and using the curses module 5:46:34 Creating a function to print the maze on the screen. 5:48:15 Iterating over a list and adding draw position in Python. 5:51:26 Expanding outward from a starting point to find the shortest path 5:53:01 Using 'Q' as a first in first out data structure 5:56:17 Using a visited set to skip processed elements and find the shortest path 5:57:58 Implementing a function to find the shortest path in a maze using a que 6:01:16 Using the put method to insert a tuple with starting position and list. 6:02:58 Exploring current position and finding neighbors in a maze. 6:06:20 Checking for obstacles in the maze and finding valid neighbors 6:08:01 Implementing the Breadth First Search algorithm. 9:15:44 Using pipe to communicate between Python code and external process 9:19:14 Python projects teach basic automation using useful syntax and commands. I thought it would be helpful ☺
This is seriously the best way for me to learn. By actually doing projects instead of sitting through dry tutorials that don't give actual examples of where and why things would be used. I'm finding that as I go through each project, I'm coming up with things I want to add (such as extended stats at the end of the Rock, Paper, Scissors game) and I'm actually able to write my own code to do so. I feel like I'm really learning shit instead of memorizing for the sake of memorizing.
do assignments after tutorials , and write code on your own before instructor does, this way projects become even easier when you are trying to do solo.
Thanks for this video! I noticed that there is a bug in the rock paper scissors game! If you pick the same thing as the computer, then it will give the computer a win. However, for anyone who reads this, you can fix it by adding elif user_input == computer_pick: print("You and the computer tied!") continue before the else statement.
Similar thing with the PIG multiplayer dice game. You can end up with two or more players with the same max score. As is the player with the lowest index wins according to the print statement. This problem can be solved with: winning_score = max(player_scores) winning_indices = [i for i, v in enumerate(player_scores) if v == winning_score] winning_indices = [x + 1 for x in winning_indizes] if len(winning_indices) == 1: print("Player", winning_indices[0] + 1, "has won with", winning_score, "points") else: winning_indices_string = ", ".join(map(str, winning_indices[:-1])) winning_indices_string += " and " + str(winning_indices[-1]) print("Players", winning_indices_string, "have won with", winning_score, "points")
Only decided to learn Python recently and couldn't believe I stumbled on this! And don't know what to say except to thank you for this really valuable resource. You are an absolute saint and don't know how else to thank you. With gratitude from the UK.
@@1PercentDaily I do coding for fun. So, Idk man I am just doing stuff like algorithms and pygame😂. This video was just a booster for understanding basics.
I have subscribed to your channel. I have started watching a number of Python RUclips tutorials, that I have not yet finished, just to get a basis for comparison, in teachers and in content. I must say, comparatively, that I really like, value and appreciate your teaching style. Your videos present well visually, as well as in your spoken manner. The fact that the font text size is easily visible and readable, is definitely a win for my aging eyes. The fact that your font size is easily discernable, really sets you apart from the competition. Thank you so much for the gift of your channel.
Hey everyone if you came here before watching this video, I can assure you that this video is ultra nice making your understanding of Python very very strong, literally this video gives you a powerful mind for building complex logic, GOOD LUCK, PROCEED WITH THAT!
I just started yesterday python. I was watching lot of videos but today I saw your video. So easy to understand. Anyone can watch your video. Thanks for your hard work. 😊😊😊
3:03:18 No need for the third print() in line 46, just remove the "end" part from the print in line 44. This way you are first suppressing the new line in the last column and then you are enforcing it.
Thank you so much, I have so much free time right now. Finished my finals and was bored af, good thing you uploaded this video. I'll practice them, and get ahead in new projects.
Great work! And i want to add by 53:45 rock-scissors-paper game you actually have one more if statement that controls if user and computer chooses same thing.
yep... happened immediately the first 3 guesses, LOL.... 🤣 It was like the computer was messing with me. but all you gotta do, in case anyone is wondering, is add another "elif" with the other "elifs", like this: elif user_input == computer_pick: print("It's a tie! Both you and the computer picked:", user_input) Fantastic video though
Just started today with visual studio and came across your channel, followed along with the quiz programme. works perfect thanks so much, and you explained it so well. really enjoyed it and following along with you. looking forward to the rest of your 9 hour course, cheers 🙂
I am currently studying cybersecurity. The addition of python programming to my clause will greatly be beneficial. You and other youtube content creators who make these tutorials available and, for free, are invaluable. Thank you on behalf of humanity.
You can use f string instead of + for concatenation of two string 18:46 And instead of adding lower() to every if statement, just add it in beginning when you ask do you want to....).lower()
you are just awsome . you are someone who knows how to does his things complete and perfect. i 've had the pip installing problem and the solution was nowhere and i kinda gave up and continued whatching more tutorials and here i found the solution . just thank you .
I just started this video and it might just be the best python course I've ever come across. I can actually do stuff and it's not boring me to death. you're a star Tim, thank you!!!
50:01 If you are having issues with Expected ":" Pylance, I know that is frustrating but it is literally telling you to go ahead and put a : after "Scissors" so for example look below if user_input == "Rock" and computer_pick == "Scissors": Instead of if user_input == "Rock" and computer_pick == "Scissors" I know his webcam is in the way and hopefully this helps someone out. Great video TechWithTim I am getting more familiar with this software cause of you!
I love this gem of a video! You picked projects that have entertainment value when you complete them, and you walk us through, so we can practice coding efficiently. Genuine thanks man.
The color can be returned from the color function - it comes back as a Tuple like ('green', 'green') so referenced by winnerColor = winnerColor[0]. This is useful so you can shuffle the turtle list each loop so the left most turtle dosent always have the advantage of jumping first. Nice tutorial.
First of all, thank you! I started with Python today, and I've already learned a lot thanks to you. For the Rock-Paper-Scissors project, you could add another "elif" for draw and print out the number of draw rounds. I added this to my project, and it works. Thanks to your help, I knew how to do it. Greetings from Germany! :)
Huge Respect for Sir Tim! For the 'Timed Maths Challenge,' if the problem involves a non-terminating decimal (such as 8/7), the human brain isn't efficient enough to guess all the decimal digits correctly. Therefore, I'm adding a condition to the generate_problem() function to account for this. Note that some validation errors may occur...Correct me where correction needed. import random import time operators = ["+", "-", "*" , "/"] def sting(): left = random.randint(1,9) right = random.randint(1,9) oper = random.choice(operators)
exp = str(left) +" "+ oper +" "+ str(right) ans = eval(exp) if oper == "/": ans = round(ans, 2) return ans,exp input("RULES: You have to answer 10 maths problems in minimum time possible. IF YOU TAKE MORE THAN ONE MINUTE, YOU WILL LOSE. Press any key to start: ") print("----------------------------") start_time = time.time() for i in range(1,10): ans,exp = sting() while True: guess = input(f"PROBLEM # {i}: "+ exp + " = ")
end_time = time.time() total_time = round(end_time - start_time,2) if total_time >=59: print("You lost! You took more than one minute time.") print(f"You completed in {total_time} seconds.") print("---------------------------------------")
Wow - this is amazing! Thanks a ton! I shall indeed save this link so I may come back to it repeatedly (after I've finished my Unreal Engine learning I've recently started)
Love from India bro The clarity in your concepts is amazing . It was super fun and enlightening watching you . I got crystal clear as i watched project 1 and 2
Thank you Tim ! You really make sense of what coding can be by showing examples most of us wish we could find as beginners! Imo you translate the language so effectively and efficiently!
Just a suggestion. Explain your question with written text exactly what to do. Because if one wants to solve this on their own first then it will be helpful for them. Anyway you are doing awesome stuff. Please continue doing.
in the slot machine project, the nested if statement that checks if the amount is negative is useless since it will never get used, cause isdigit function doesn't recognize negative nymbers as digits so if we enter a negative numver the if statement that checks if it's a digit won't run, thus the nested if statement that checks if it's negative won't run either so it's preffered to write it as: def deposit():
while True: amount = input("How much would you like to deposit: ") if amount.isdigit(): amount = int(amount) break elif amount.replace("-","").isdigit(): amount = int(amount) amount *=-1 break else: print("enter a valid number") return amount this way using the replace function we remove the - from amount in case it existed and check if it's a digit so if it is a negative digit it will make a copy without - then it'll be recognized as a digit then we turn it positive using amount *= -1
iam data engineering enthusiast and I wanted to start with python and one o my friend recommended your channel - I am glad I'm watching your videos to be a good python programmer - A big thank you from all of us who view your videos - YOUU ARE GOD SENT :)
Thank you for making programming so awesome and interesting. I would do programming for the rest of my life because of tutorials like this. Keep it up bro, and hope one day we can work together!
You can use this same project to introduce lists and reusable code functions to beginners where the questions and correct answers are stored in two lists, and one function that poses the question and checks the answer based on index passed in and then can give the score percentage based on num correct vs array length. Just a thought. Less code, and no magic numbers😊 I am learning python but coded professionally in other languages so it jumped out at me. Edit: I tried this out using lists and one while loop and it's 15 lines of code for unlimited questions and answers, it keeps score then figures percentage of correct using the score and list length. Neat. Thanks for your videos Tim I'm learning python pretty quick.
Great video, in the first project, I wanted to go a bit further so I used chatGPT so that now my last question is how much battery your computer has, and it is working. I aslo tried to add the score-system myself and it worked and then i saw the rest of the video and it was the exact same thing I did.
In your second example poject, random number guesser, it does not work if we enter a negative number. Looks like isdigit() function returns False if we enter the negative number as it is treated as a string. For anybody trying to make it work can use lstrip() function. So the condition part of the statement looks like if top_of_range.lstrip("-").isdigit(): This should do the trick. But anyway a great video. Keep it up🥳
The reason random.randrange(1, 10) will only generate a random number btwn 1 and 9 is b/c of indexing. In a list of numbers such as [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]. The list has 10 elements, but Python indexing begins at 0. This is 'why' element 10 will not be generated. 10 is exclusive b/c at element 10 we are at index 9. Element/Index relationship: 1 = 0, 2 = 1, 3 = 2, 4 = 3, 5 = 4, 6 = 5, 7 = 6, 8 = 7, 9 = 8, 10 = 9. Using indexing we can't get to element 10. Good vid!
We can also refer to this method as slicing(1, 10)where it refers to slice till 10th element starting from 1st element as 1 is mentioned first and 10 is mentioned afterwards in an iterable object
Mega course for any intermediate....but i like the way you interact with your keyboard...I wonder your typing speed per minute...X wpm. Find X in wpm😂😂😂....Love your work team
Thanks for putting this together. Getting my bearings with Python and looking for examples and how they were constructed, so this is helpful! Feedback as I watch though... Project #3 -- Example of insufficient testing! :) As previously pointed out, you missed the case of throwing the same thing as the computer. You can put in a test for "if user_input == computer_guess:" that mentions the tie to the user before a continue, with no scores being incremented.
28:20 Actually `isdigit` returns False for strings with leading hyphen, you can do something like `if top_of_range[1:].isdigit() if top_of_range[0] == '-' else top_of_range.isdigit():`
One of the fastest ways to become a developer in 2024 is follow a structured curriculum and to get insider knowledge from seasoned professional, if you want to learn more I have a free 1 hour course breaking down the exact steps to take to land a position ASAP: techwithtim.net/dev
Since you created this RUclips channel I have watched you but I am same person but I see you in the sky congratulations 🎉❤
Wow i just discover your channel.
It's like special for me. Exactly what i nedded. thx
Hey tim can you tell me if I can add these projects on my resume,does it have to be completely made on my own? I am a fresher learning python.
@@aaronabishekecs3056if you completely copied then no don’t add it unless you can recreate one your own add some modifications and in general bring something of your own that you learned thanks to them ( correct me if I’m wrong )
@@aaronabishekecs3056 it is not illegal
00:02 9 hours of Python projects with increasing difficulty
01:53 Using the print function to output information to the user.
05:27 Using if statement to check user input
07:22 Using if statements to check conditions
11:02 Creating and testing quizzes using Python
13:04 Understanding Python syntax and 'if-else' statements
16:55 Implementing a scoring system
18:39 Converting a number to a string is necessary for valid operations with strings.
21:59 Creating a number guesser game using Python and the random module
23:32 Generating random numbers in Python using range, randrange, and randint
26:53 Converting user input to numbers using the int function
28:40 Checking input for number, generating random number, and prompting for guess
32:12 Handling user input and validation
33:49 Using the break keyword to exit a loop
37:10 Determining if a guess is above or below the random number
38:36 Implemented an L If to make the code cleaner
41:50 Checking user input for rock, paper, or scissors
43:35 Using 'not in' to check for invalid user input.
46:47 Lists are collections of elements accessed by index.
48:39 Deciding the winner of the game
52:04 Implementing a rock-paper-scissors game with user and computer wins count
53:54 Create a Choose Your Own Adventure game with customizable options.
57:18 Creating a basic text-based Python game with user input and conditional statements.
58:57 Giving clear instructions for user input handling
1:02:33 Creating if-else conditions based on user input
1:04:43 Illustrating the structure and nesting in Python projects
1:07:33 Creating a program to manage passwords and encrypt them.
1:09:28 Introduction to functions and their usage in Python
1:12:42 Using the 'with' keyword for file operations
1:14:17 File modes in Python
1:17:38 Using 'readlines' to read and process lines from a file.
1:19:18 Using rstrip and split to process data
1:22:39 Install the cryptography module for encryption
1:24:13 Installing and using the cryptography module in Python.
1:27:44 Creating and loading key files in Python
1:29:27 Loading and initializing encryption key and module
1:32:48 Defining and resolving security issues in storing encrypted data
1:34:22 Decoding bytes to string in Python
1:37:30 Creating a Pig game with Python
1:38:58 Creating a rule function to roll a die and return a value
1:42:29 Converting string to integer and validating the number of players.
1:44:14 Fix if statement error and simulate player turns
1:47:41 Implementing logic to stop game when maximum score is reached
1:49:26 Simulating turns in a dice game
1:53:09 Simulating a player's turn in a game
1:54:39 Simulating a dice rolling game with two players
1:58:24 Project one involved creating a dice rolling game in Python.
2:00:01 Using a text file to create a story operations program.
2:03:15 Read a story, find and replace words.
2:05:04 Extract words between angle brackets using Python slice operator.
2:08:38 Creating and using a dictionary in Python
2:10:33 Replacing words in a story using Python
2:14:30 Project 3 involves randomly generating math questions and timing how long it takes for the user to answer them all.
2:16:10 Creating a function to generate math problems using Python operators and random operands.
2:20:01 Using the eval function to evaluate expressions in Python
2:21:48 Implementing a loop to keep asking a user a question until they get it correct.
2:25:23 Calculating time taken for a task in Python using the time module.
2:27:16 Building a text-based slot machine project
2:30:29 Validating and converting user input
2:32:12 Function to deposit checks if the amount is valid.
2:35:22 Setting a global constant for maximum lines to create a dynamic program
2:36:56 Input validation and formatting for user-friendly interaction
2:40:07 Embedding values in strings using format method
2:41:59 Implementing a check to ensure betting amount is within balance
2:45:29 Setting up symbols and their counts for a slot machine reel
2:47:14 Generating symbols based on frequency of occurrence
2:50:44 Nested list representing columns, not rows
2:52:30 Make a copy of all symbols list to avoid affecting the original list
2:55:54 Creating a function to print the slot machine columns
2:57:36 Loop through all columns and print first value of each column
3:01:10 Adjusting the print function for the slot machine output
3:02:54 Printing new line character after every row.
3:06:13 Checking for winning lines dynamically in Python
3:07:56 Breaking out of for loop when symbols are not equal
3:11:38 Using the Splat operator to unpack and pass all lines from a list to a function
3:13:22 Create a function to run the game multiple times.
3:17:10 Fixed errors in function names and variable passing for smooth operation.
3:19:07 Created a slot machine in Python and won $11
3:22:21 Creating a function to input the number of racers and validate it
3:23:52 Using a while loop to ensure valid user input for number of racers
3:27:07 Function to check for valid number of racers
3:28:51 Running a Python program with Turtle module and function return
3:32:04 Setting up the screen and changing the window title
3:33:47 Basic turtle commands and screen setup
3:36:51 Using Python's Turtle module to move in different directions and angles.
3:38:41 Understanding the coordinate system in Turtle canvas.
3:41:54 Introduction to using turtle for drawing shapes and changing turtle properties.
3:43:29 Controlling the turtle's pen while drawing
3:46:50 Selecting unique colors for turtle racing based on user input
3:48:30 Creating and positioning multiple turtles for racing.
3:51:38 Turning arrows left by 90° to make turtles race upwards.
3:53:11 Using the setposition method to move the turtle to a specific position on the screen
3:56:25 Adjusting position of turtles for equal spacing
3:58:19 Positioning the turtles based on spacing and width
4:01:44 Refactoring the code to create Turtles inside the race function.
4:03:19 Using random movement in Python turtle racing
4:06:38 Finding the color of a turtle based on its index in the list.
4:08:21 Python Turtle race with five turtles and race mechanics.
4:11:35 Creating dynamic and flexible code with functions and variables.
4:13:05 Creating a typing test with text highlighting and styling.
4:16:13 Initializing curses module to take over the terminal and create a screen for writing text.
4:17:49 Printing 'hello world' and clearing the screen in Python
4:21:00 Running Python files and adding colors to text
4:22:32 Configure color pairs for foreground and background in Python
4:25:48 Understanding text collision
4:27:22 Creating a start screen for the game
4:30:32 Printing and overlaying user input
4:32:12 Implementing a while loop to continually ask the user to type something in and overlay it in a different color on top of the target text.
4:35:24 Adding Clear Screen and Exit Control
4:37:03 Characters have numerical representation
4:40:30 Handling backspace key input
4:42:03 Parameters in functions allow passing values with optional parameters.
4:45:23 Modifying color based on correct characters
4:47:11 Handling the completion of text and displaying words per minute
4:50:34 Using F-strings in Python to embed Python expressions directly inside of a string
4:52:13 Tracking time elapsed using start time and current time
4:55:24 Calculating words per minute (wpm)
4:57:06 Handling user input without blocking the program
5:00:19 Use the jooin method to combine list elements into a string.
5:01:53 The function brings the user back to the main screen and prompts them to play again.
5:05:30 Loading and selecting random lines from a text file in Python
5:07:02 Using random.choice to select and remove invisible characters from text file lines.
5:10:20 Create a countdown timer and play a sound effect
5:11:59 Playing sound and regulating time in Python
5:15:43 Formatting numbers in Python
5:17:30 Using ANSI characters to manipulate the terminal
5:21:08 Creating a password manager with dynamic settings
5:22:58 Generating a password with specified criteria
5:26:21 Generating random passwords based on given criteria.
5:28:10 Creating a while loop to generate a password meeting specific criteria.
5:31:41 Setting criteria based on presence of numbers and special characters
5:33:31 Python generate password function ensures password criteria are met
5:36:59 Function to generate password based on user inputs.
5:38:41 Fixing error in password generation code
5:41:47 Using curses module to manipulate terminal screen output.
5:43:21 Initializing and using the curses module
5:46:34 Creating a function to print the maze on the screen.
5:48:15 Iterating over a list and adding draw position in Python.
5:51:26 Expanding outward from a starting point to find the shortest path
5:53:01 Using 'Q' as a first in first out data structure
5:56:17 Using a visited set to skip processed elements and find the shortest path
5:57:58 Implementing a function to find the shortest path in a maze using a que
6:01:16 Using the put method to insert a tuple with starting position and list.
6:02:58 Exploring current position and finding neighbors in a maze.
6:06:20 Checking for obstacles in the maze and finding valid neighbors
6:08:01 Implementing the Breadth First Search algorithm.
9:15:44 Using pipe to communicate between Python code and external process
9:19:14 Python projects teach basic automation using useful syntax and commands.
I thought it would be helpful ☺
I love you
i too love you
Thank you lots
Thank you very much
doing god's work. i would literally buy you a damn coffee or beer or whatever bro stronk ethic
Thanks Tim for such an informative and useful video! 🙏🏻🙏🏻🙏🏻
Wow thanks for the donation!
He owes you alot more @TechWithTim
This is seriously the best way for me to learn. By actually doing projects instead of sitting through dry tutorials that don't give actual examples of where and why things would be used. I'm finding that as I go through each project, I'm coming up with things I want to add (such as extended stats at the end of the Rock, Paper, Scissors game) and I'm actually able to write my own code to do so. I feel like I'm really learning shit instead of memorizing for the sake of memorizing.
yep same here, it's a game changer
do assignments after tutorials , and write code on your own before instructor does, this way projects become even easier when you are trying to do solo.
Thanks for this video! I noticed that there is a bug in the rock paper scissors game! If you pick the same thing as the computer, then it will give the computer a win. However, for anyone who reads this, you can fix it by adding
elif user_input == computer_pick:
print("You and the computer tied!")
continue
before the else statement.
Similar thing with the PIG multiplayer dice game. You can end up with two or more players with the same max score. As is the player with the lowest index wins according to the print statement.
This problem can be solved with:
winning_score = max(player_scores)
winning_indices = [i for i, v in enumerate(player_scores) if v == winning_score]
winning_indices = [x + 1 for x in winning_indizes]
if len(winning_indices) == 1:
print("Player", winning_indices[0] + 1, "has won with", winning_score, "points")
else:
winning_indices_string = ", ".join(map(str, winning_indices[:-1]))
winning_indices_string += " and " + str(winning_indices[-1])
print("Players", winning_indices_string, "have won with", winning_score, "points")
that's smart, i was just going to do 3 elif's for the 3 possible ties
i was thinking why noone realised that
I was thinking of this and want to check the comments before coding.
i did not copy but got project ideas and made my own projects
Only decided to learn Python recently and couldn't believe I stumbled on this! And don't know what to say except to thank you for this really valuable resource. You are an absolute saint and don't know how else to thank you. With gratitude from the UK.
how is going now!!
Pranvi I bet you're from india, an immigrant in uk
@@StrawHatPirateesss idgaf we dont blast
same
I almost feel embarrassed for not paying for this video....thank you!when I grow up I wanna program like Tim!😀
🙄
Sure like to know how you were able to watch 9 hours of video within 40 minutes of release.
He has paid course 😐
Don’t be, everybody should have free access to education, moreover he is getting paid by the ads if that makes you feel better
I think thats possible
@@loczster
As a complete beginner, this video is a banger 👀, Now this is a real 9 hrs long roadmap video from beginner to Advance😂 python. A practical one🔥☠️
Now that you've completed it what have you done?
@@1PercentDaily I do coding for fun. So, Idk man I am just doing stuff like algorithms and pygame😂. This video was just a booster for understanding basics.
Why are you questioning people? everyone has different reasons, and you dont always need to be building something big @@1PercentDaily
@@1PercentDailythis helped to built logics in python and helped to some solve advanced programs which can be asked in exams
stop lying cause if you're a true beginner this video is not for you.
I have subscribed to your channel. I have started watching a number of Python RUclips tutorials, that I have not yet finished, just to get a basis for comparison, in teachers and in content. I must say, comparatively, that I really like, value and appreciate your teaching style. Your videos present well visually, as well as in your spoken manner. The fact that the font text size is easily visible and readable, is definitely a win for my aging eyes. The fact that your font size is easily discernable, really sets you apart from the competition. Thank you so much for the gift of your channel.
يا جماعه بجد انا مشيت معاه تلات اربع الكورس و الراجل ده جامد جدا و شرحه حلو خالص و يستحق تتابع و الي موافقني بحط ليك
Reallyyy you are the best tech youtuber here... i struggled of learning python but your videos helped me a lot. thanks for being here, tim
Hey everyone if you came here before watching this video, I can assure you that this video is ultra nice making your understanding of Python very very strong, literally this video gives you a powerful mind for building complex logic, GOOD LUCK, PROCEED WITH THAT!
Thank you
I just started yesterday python. I was watching lot of videos but today I saw your video. So easy to understand. Anyone can watch your video. Thanks for your hard work. 😊😊😊
can do better say so
How's the process so far ⁉️6 months later 👀
3:03:18 No need for the third print() in line 46, just remove the "end" part from the print in line 44. This way you are first suppressing the new line in the last column and then you are enforcing it.
Thank you so much, I have so much free time right now. Finished my finals and was bored af, good thing you uploaded this video. I'll practice them, and get ahead in new projects.
What was your favorite project?
@@1PercentDaily tbh I'm still a beginner so I did the first 5 projects but my fav was the quiz and the adventure one. The adventure one was fun tho.
Great work! And i want to add by 53:45 rock-scissors-paper game you actually have one more if statement that controls if user and computer chooses same thing.
yep... happened immediately the first 3 guesses, LOL.... 🤣 It was like the computer was messing with me.
but all you gotta do, in case anyone is wondering, is add another "elif" with the other "elifs", like this:
elif user_input == computer_pick:
print("It's a tie! Both you and the computer picked:", user_input)
Fantastic video though
yep its missing another elif statement that check if the user and computer pick are the same to print draw
Just started today with visual studio and came across your channel, followed along with the quiz programme. works perfect thanks so much, and you explained it so well. really enjoyed it and following along with you. looking forward to the rest of your 9 hour course, cheers 🙂
Best Teacher on youtube for Projects.
I am currently studying cybersecurity. The addition of python programming to my clause will greatly be beneficial. You and other youtube content creators who make these tutorials available and, for free, are invaluable. Thank you on behalf of humanity.
You can use f string instead of + for concatenation of two string 18:46
And instead of adding lower() to every if statement, just add it in beginning when you ask do you want to....).lower()
The best teacher in the RUclips for python,, your efforts are highly appreciated 🙏❤️
Bro? You literally created a whole entire paid 10 hour online course for free in one video just “because” You are actually a legend. Great teacher!
Thanks!
I'd like to see something else than python but still, I am beyond impressed and grateful. Thanks Tim, your videos always get me excited to code. ❤️
What language would you like to see?
@@TechWithTim Mainly JS, C or some front end content. But it's up to you. I'll be able to understand anything you teach.
gotcha, thanks for the feedback! I'm thinking about some more JS content@@Big_chicken-ok8gc
@@TechWithTim That'd be great!!
Go is getting a lot of asks in job listings, so that'd be nice
Enjoyed the video and learned a lot, Tim. Forever Grateful to you.😌
you are just awsome . you are someone who knows how to does his things complete and perfect.
i 've had the pip installing problem and the solution was nowhere and i kinda gave up and continued whatching more tutorials and here i found the solution . just thank you .
thanks Tim! i am working on my own project... but i like how much you work for the videos!!
Thanks Tim. Will definitely check it out and try out the projects which interests me. Thanks again
No problem!
I just started this video and it might just be the best python course I've ever come across. I can actually do stuff and it's not boring me to death. you're a star Tim, thank you!!!
Before watching the video, just want to say thank you to Tim for such massive work! 9 hrs video! Truly be thankful :)
50:01 If you are having issues with Expected ":" Pylance, I know that is frustrating but it is literally telling you to go ahead and put a : after "Scissors" so for example look below
if user_input == "Rock" and computer_pick == "Scissors": Instead of if user_input == "Rock" and computer_pick == "Scissors"
I know his webcam is in the way and hopefully this helps someone out. Great video TechWithTim I am getting more familiar with this software cause of you!
As a beginner in Python my suggestion is
You can use int(input("for input in random numbers project " )) 25:54
For better understanding
I love this gem of a video! You picked projects that have entertainment value when you complete them, and you walk us through, so we can practice coding efficiently. Genuine thanks man.
The color can be returned from the color function - it comes back as a Tuple like ('green', 'green') so referenced by winnerColor = winnerColor[0]. This is useful so you can shuffle the turtle list each loop so the left most turtle dosent always have the advantage of jumping first. Nice tutorial.
First of all, thank you! I started with Python today, and I've already learned a lot thanks to you. For the Rock-Paper-Scissors project, you could add another "elif" for draw and print out the number of draw rounds. I added this to my project, and it works. Thanks to your help, I knew how to do it.
Greetings from Germany! :)
Saving this for the weekend, a must see video it is!
hey tim!, I dont know why i didn't find this before I was struggling to learn python, this made my life easy man! thanks a lot.
Huge Respect for Sir Tim!
For the 'Timed Maths Challenge,' if the problem involves a non-terminating decimal (such as 8/7), the human brain isn't efficient enough to guess all the decimal digits correctly. Therefore, I'm adding a condition to the generate_problem() function to account for this. Note that some validation errors may occur...Correct me where correction needed.
import random
import time
operators = ["+", "-", "*" , "/"]
def sting():
left = random.randint(1,9)
right = random.randint(1,9)
oper = random.choice(operators)
exp = str(left) +" "+ oper +" "+ str(right)
ans = eval(exp)
if oper == "/":
ans = round(ans, 2)
return ans,exp
input("RULES:
You have to answer 10 maths problems in minimum time possible.
IF YOU TAKE MORE THAN ONE MINUTE, YOU WILL LOSE.
Press any key to start: ")
print("----------------------------")
start_time = time.time()
for i in range(1,10):
ans,exp = sting()
while True:
guess = input(f"PROBLEM # {i}: "+ exp + " = ")
if guess == str(ans):
print("Correct Answer")
break
else:
print("Wrong Answer.Please try again")
end_time = time.time()
total_time = round(end_time - start_time,2)
if total_time >=59:
print("You lost! You took more than one minute time.")
print(f"You completed in {total_time} seconds.")
print("---------------------------------------")
It's an amazing video. Easy to understand .He directly heads into the content what we need . Explained well while showing how to code .
The video deserves 1 million likes! 🎉🎉🎉🎉 Tim is a top notch programmer and teacher.
Amazing content, Tim. You fellow Pythonista here.
Currently on day 8 and I am loving these ❤❤
jai shree ram ❤❤
This is a very good video. Finally I can do something from all difficulty levels and learn more about Python. Thank you.
New coder here, looks good. Thanks
Hardwork + excellence spotted here. Thanks a million.
Thanks Tim for your time and this video is really good!
Wow - this is amazing! Thanks a ton! I shall indeed save this link so I may come back to it repeatedly (after I've finished my Unreal Engine learning I've recently started)
Thanks Tim, great content. Keep it up
Thank you very much in spending time in making this video, Tim. Kudos to you!!!
Bro the best and awaited video from your channel, I Thank you for sharing your valuable information 🙏
Thank you very much sir. In fact, this lesson has benefited us. You are great. I wish you more brilliance and success.
This guy is a legend. I've done the shortest path finder a longggg time ago. I was looking for similar projects and came across this gem
Love from India bro The clarity in your concepts is amazing . It was super fun and enlightening watching you . I got crystal clear as i watched project 1 and 2
Your description doesn't match what ur account has
Starting my journey to learning Python. First things first, liked and subscribed. Wish me luck.
Finally! Thank you Tim. You are my GOTO to find answers.
Thank you Tim ! You really make sense of what coding can be by showing examples most of us wish we could find as beginners! Imo you translate the language so effectively and efficiently!
Tim, i am a complete beginner and i cant even start my own projects… thanks Tim your videos are real bangers. 🎉
There is no words exist that would tell you how much i appreciate what you are doing for us!
This is the kind of video I have been looking for ❤❤❤❤ thanks Tim. Subscribed😊😊😊
Thank you very much for this man, you put too much effort into the videos 🙏🙏🙏
This channel is truly awesome. Amazing, high-quality educational videos.
I dont know what to say but this will help me alot cause just learning isn't sufficient having practical knowledge is imp
Finally found the video to recommend to every beginner who asks for a python roadmap
Very well channel. You're my favorite channel right now.
5:11:55 pip install --upgrage setup tools wheel
pip install play sound
Great Video Tim, thanks for putting the effort to make such a good content!! =)
Just a suggestion. Explain your question with written text exactly what to do. Because if one wants to solve this on their own first then it will be helpful for them. Anyway you are doing awesome stuff. Please continue doing.
in the slot machine project, the nested if statement that checks if the amount is negative is useless since it will never get used, cause isdigit function doesn't recognize negative nymbers as digits so if we enter a negative numver the if statement that checks if it's a digit won't run, thus the nested if statement that checks if it's negative won't run either so it's preffered to write it as:
def deposit():
while True:
amount = input("How much would you like to deposit: ")
if amount.isdigit():
amount = int(amount)
break
elif amount.replace("-","").isdigit():
amount = int(amount)
amount *=-1
break
else:
print("enter a valid number")
return amount
this way using the replace function we remove the - from amount in case it existed and check if it's a digit so if it is a negative digit it will make a copy without - then it'll be recognized as a digit then we turn it positive using amount *= -1
Awesome video Tim this really helps need to learn to code again after 10yrs😂 of not coding at all
Thank you so much for the video. People like you help the beginners a lot . Love your content ❤
iam data engineering enthusiast and I wanted to start with python and one o my friend recommended your channel - I am glad I'm watching your videos to be a good python programmer - A big thank you from all of us who view your videos - YOUU ARE GOD SENT :)
Go code yourself a grammar helper
@@turbodog99grammar helper lol- you should get some help dog
could've done some teaching on the functions but thanks for this man, really helped me out a lot!
Great job Tim! This should help me refresh and enhance my skills in Py. Thank you so much.
Thank you for making programming so awesome and interesting. I would do programming for the rest of my life because of tutorials like this. Keep it up bro, and hope one day we can work together!
this is exactly what i needed , big thanks to you !
You can use this same project to introduce lists and reusable code functions to beginners where the questions and correct answers are stored in two lists, and one function that poses the question and checks the answer based on index passed in and then can give the score percentage based on num correct vs array length. Just a thought. Less code, and no magic numbers😊 I am learning python but coded professionally in other languages so it jumped out at me.
Edit: I tried this out using lists and one while loop and it's 15 lines of code for unlimited questions and answers, it keeps score then figures percentage of correct using the score and list length. Neat. Thanks for your videos Tim I'm learning python pretty quick.
Great video, in the first project, I wanted to go a bit further so I used chatGPT so that now my last question is how much battery your computer has, and it is working. I aslo tried to add the score-system myself and it worked and then i saw the rest of the video and it was the exact same thing I did.
Love you Tim, great contents
In your second example poject, random number guesser, it does not work if we enter a negative number. Looks like isdigit() function returns False if we enter the negative number as it is treated as a string. For anybody trying to make it work can use lstrip() function. So the condition part of the statement looks like
if top_of_range.lstrip("-").isdigit():
This should do the trick.
But anyway a great video. Keep it up🥳
Life saver
I was wondering if you had a solution to if they had included commas in the integer?
This is actually so amazing!
Just wanted to say thank you! Really appreciate this!
Thank you for creating these great videos. Good approaching and easy to understand.
The reason random.randrange(1, 10) will only generate a random number btwn 1 and 9 is b/c of indexing. In a list of numbers such as [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]. The list has 10 elements, but Python indexing begins at 0. This is 'why' element 10 will not be generated. 10 is exclusive b/c at element 10 we are at index 9. Element/Index relationship: 1 = 0, 2 = 1, 3 = 2, 4 = 3, 5 = 4, 6 = 5, 7 = 6, 8 = 7, 9 = 8, 10 = 9. Using indexing we can't get to element 10. Good vid!
We can also refer to this method as slicing(1, 10)where it refers to slice till 10th element starting from 1st element as 1 is mentioned first and 10 is mentioned afterwards in an iterable object
I find your video very helpful. I've learned a lot about programming and English from it.
Thank Tim really good video and I like how you structured everything. Will
Mega course for any intermediate....but i like the way you interact with your keyboard...I wonder your typing speed per minute...X wpm.
Find X in wpm😂😂😂....Love your work team
Thank you so much Tim was struggling on my python class
Thank you so much Tim! Much much appreciated 🙏🏻🙏🏻
Thanks for putting this together. Getting my bearings with Python and looking for examples and how they were constructed, so this is helpful! Feedback as I watch though...
Project #3 -- Example of insufficient testing! :) As previously pointed out, you missed the case of throwing the same thing as the computer.
You can put in a test for "if user_input == computer_guess:" that mentions the tie to the user before a continue, with no scores being incremented.
Thank so much sir. I was looking to make a python project that I can add into my resume 🎉
Thank you so much for putting this together. This is amazing.
28:20 Actually `isdigit` returns False for strings with leading hyphen, you can do something like `if top_of_range[1:].isdigit() if top_of_range[0] == '-' else top_of_range.isdigit():`
Thank you for this amazing video I am on project 7 right now.🤩🤩
Nice tutorial! I loved the python automation/scripting project the most. Its much easier to do it in Python than bash lol
Thank you Tim🤝
thank you very much, the explanations done in this video are very clear that I got to understand everything while doing my project 😊
Dude when did you hit 1.5m subs? Congrats!
Thank you so much for this content ❤❤❤
Please do more videos like this, You are the best!!!
@TechWithTim - You are really awesome, this course is really helpful