title
How to code with Python - Beginner to PRO class with 3 projects
description
Python is an excellent programming language to learn for people in data professions. In this in-depth video, learn how to get started with Python and use it for practical situations. You will also learn how to build 3 projects (2 mini-projects and one big project). If you have been on the lookout for a thorough & easy explanation on how to write Python code, this is the video for you. Please set aside 2 hours of time to learn and practice.
Let's GO!!!
πWhat is covered in the video
=========================
β Getting started with Python
β Working with variables in Python
β IF condition, indentation in Python
β While loop in Python
β Building a simple expense calculator with Python
β Working with Lists in Python
β Using For loop when navigating a list
β Generating list of values with loops
β List comprehension in Python
β How to access an item or a part of list in Python
β Creating a multiplication table with Python lists
β Building an enhanced expense calculator with Python
β Working with CSV & Datetime libraries in Python
β How to execute Python code from command line
β How to learn more β My top 6 tips
π¨πΎβπ»πCode Samples
=================
Download ZIP file with all code samples from here π https://chandoo.org/wp/python-for-excel-people/
More on the files, installation instructions - https://chandoo.org/wp/python-for-excel-people/
βπ INSTALL PYTHON & VS CODE
Download Python - https://www.python.org/downloads/
Download Visual Studio (VS) Code - https://code.visualstudio.com/
Python Setup Instructions - https://docs.python.org/3.10/using/index.html
β±Video Timestamps
==================
0:00 - Why Python?
2:08 - Our first Python program
6:10 - Python concepts with a mind-map
15:00 - Variables in Python
20:59 - IF conditions in Python
24:00 - Mini-project #1 - Expense Calculator in Python
26:08 - Loops in Python
32:13 - Python Lists
38:16 - Lists & For Loops
40:18 - Generating a list with loops
43:00 - List comprehension in Python
46:37 - Accessing items in a lists
50:41 - Mini-project #2 - Multiplication Table
56:29 - f Expressions in Python
58:48 - Project - Expense Calc app with Python
1:01:00 - Libraries in Python (for CSV, Datetime)
1:01:47 - Working with dates in Python
1:03:01 - Working with CSV files in Python
1:09:47 - Putting everything together for our project
1:16:18 - Running Python files from command line
1:18:04 - How to learn more - My top 6 tips
π‘ PYTHON BOOKS & RESOURCES
=============================
π My book recommendations:
π Python Crash Course 2nd Edition by Eric Matthes - https://amzn.to/3PBzYRK
This is the book we all (Jo, kids & I) read and really loved it. The explanations and examples are easy enough to get started. There is enough variety to please everyone. Pictured aside is my son with the book π
π Automate boring stuff with Python - https://amzn.to/3Py5T5w
More practical if you want to get things done with Python. I read it a few times and really like the practicality of the book.
Python Data Science Handbook - https://amzn.to/3MFKOUK
Python is particularly useful for doing data science & building machine learning models. This is an area of focus for me in the next months. I suggest getting the Python Data Science book once you have strong foundation in the language.
π» Python Course Recommendations:
I recommend Coding 101: Python for Beginners by Alvin Wan on SkillShare. It is a concise and practical course that should give you enough confidence to build more powerful code. Check out the class here - https://skl.sh/3kIP4Xt
(you get 1 month free access to SkillShare when you join with my link)
~ Note about the book & course links:
If you purchase the course or books using my links, I receive a small commission. My recommendation is based purely on the merit of them rather than the pay-out.
π¨πΎβπ»π¨βπ» MY VIDEOS ON CODING
=========================
Check out below videos for more on coding for Data folks.
Getting started with VBA (2 part series) - https://youtu.be/5k-KpSkrROw
VBA vs. Python - Comparison for Data people - https://youtu.be/l0o7VMEf0yc
Step by Step by VBA Course by Chandoo - https://chandoo.org/wp/vba-classes/
~
π ALL THE BEST
#Python #DataAnalytics
detail
{'title': 'How to code with Python - Beginner to PRO class with 3 projects', 'heatmap': [{'end': 208.563, 'start': 141.517, 'weight': 0.752}, {'end': 938.845, 'start': 884.436, 'weight': 0.895}, {'end': 1726.532, 'start': 1576.957, 'weight': 0.727}, {'end': 1829.053, 'start': 1774.775, 'weight': 0.795}, {'end': 2171.097, 'start': 2069.427, 'weight': 0.751}, {'end': 2317.382, 'start': 2266.459, 'weight': 0.706}, {'end': 4202.426, 'start': 4136.85, 'weight': 0.951}, {'end': 4683.94, 'start': 4533.724, 'weight': 0.736}, {'end': 4837.277, 'start': 4775.7, 'weight': 0.745}, {'end': 4915.796, 'start': 4875.306, 'weight': 0.745}], 'summary': 'Learn python from beginner to advanced level with 3 practical projects, covering python fundamentals, libraries, objects, list operations, multiplication table creation, and expense tracker app development with csv file handling.', 'chapters': [{'end': 635.907, 'segs': [{'end': 32.978, 'src': 'embed', 'start': 2.423, 'weight': 0, 'content': [{'end': 7.206, 'text': 'Python is a great programming language to learn for anyone in the data profession.', 'start': 2.423, 'duration': 4.783}, {'end': 12.57, 'text': 'Nowadays, many companies ask for Python skills when they advertise for data jobs.', 'start': 7.707, 'duration': 4.863}, {'end': 21.456, 'text': 'If you are an Excel person, learning Python could be a great way to enhance your resume and find interesting and exciting job opportunities.', 'start': 13.17, 'duration': 8.286}, {'end': 26.946, 'text': "In this video, let's understand how to use Python with plenty of examples.", 'start': 22.336, 'duration': 4.61}, {'end': 32.978, 'text': 'By the end of this video, you will learn how to create Python programs to solve practical problems.', 'start': 27.647, 'duration': 5.331}], 'summary': 'Learning python can enhance job opportunities for data professionals, with many companies now requiring python skills for data jobs.', 'duration': 30.555, 'max_score': 2.423, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM2423.jpg'}, {'end': 65.262, 'src': 'embed', 'start': 41.828, 'weight': 1, 'content': [{'end': 54.671, 'text': 'you will learn how to create a simple expense tracker app using Python that can take the expenses that you are encountering and then save them to a CSV file with date and timestamp.', 'start': 41.828, 'duration': 12.843}, {'end': 65.262, 'text': 'You will also learn how to use Python concepts such as variables, if-then, condition for and while loops, lists and list comprehensions,', 'start': 55.211, 'duration': 10.051}], 'summary': 'Learn to create an expense tracker app using python, saving expenses to a csv file with date and timestamp.', 'duration': 23.434, 'max_score': 41.828, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM41828.jpg'}, {'end': 170.286, 'src': 'embed', 'start': 141.517, 'weight': 4, 'content': [{'end': 149.059, 'text': "So I'll go to file new file and then from here I'm just going to say Python as my language and then start typing the code.", 'start': 141.517, 'duration': 7.542}, {'end': 156.681, 'text': 'We can use the print statement within Python print function really to print a message.', 'start': 149.799, 'duration': 6.882}, {'end': 160.262, 'text': "So I'm going to just say hello viewers.", 'start': 157.001, 'duration': 3.261}, {'end': 170.286, 'text': 'this is our first python program and control s.', 'start': 161.822, 'duration': 8.464}], 'summary': "Creating a python program to print 'hello viewers' as the first program.", 'duration': 28.769, 'max_score': 141.517, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM141517.jpg'}, {'end': 233.77, 'src': 'heatmap', 'start': 141.517, 'weight': 5, 'content': [{'end': 149.059, 'text': "So I'll go to file new file and then from here I'm just going to say Python as my language and then start typing the code.", 'start': 141.517, 'duration': 7.542}, {'end': 156.681, 'text': 'We can use the print statement within Python print function really to print a message.', 'start': 149.799, 'duration': 6.882}, {'end': 160.262, 'text': "So I'm going to just say hello viewers.", 'start': 157.001, 'duration': 3.261}, {'end': 170.286, 'text': 'this is our first python program and control s.', 'start': 161.822, 'duration': 8.464}, {'end': 181.09, 'text': "to save this, i already have a getting started folder, so i'll just say hello.py and then save this program.", 'start': 170.286, 'duration': 10.804}, {'end': 184.009, 'text': 'Now that this is saved, we can just run it.', 'start': 182.048, 'duration': 1.961}, {'end': 188.191, 'text': 'And this is just going to print the message here.', 'start': 185.41, 'duration': 2.781}, {'end': 191.833, 'text': 'Hello viewers, this is our first Python program.', 'start': 189.012, 'duration': 2.821}, {'end': 202.599, 'text': "Awesome. Now, let's just enhance this by just, instead of saying viewers will first ask the question what is your name?", 'start': 193.734, 'duration': 8.865}, {'end': 208.563, 'text': 'and then it will say hello, Mr John, or Bob or Cynthia or whatever.', 'start': 202.599, 'duration': 5.964}, {'end': 209.103, 'text': 'Maybe the name.', 'start': 208.603, 'duration': 0.5}, {'end': 213.83, 'text': 'So the first thing that we will do is get their name.', 'start': 211.365, 'duration': 2.465}, {'end': 216.635, 'text': 'This is where the input function comes in.', 'start': 214.832, 'duration': 1.803}, {'end': 218.078, 'text': 'You can say input.', 'start': 217.036, 'duration': 1.042}, {'end': 229.248, 'text': 'What is your name? Now this input function is going to collect some value that is the name of the person.', 'start': 218.94, 'duration': 10.308}, {'end': 233.77, 'text': 'And then we need to bring that value back and then use it inside the print statement.', 'start': 229.628, 'duration': 4.142}], 'summary': 'Creating a python program to print a message and ask for user input.', 'duration': 31.171, 'max_score': 141.517, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM141517.jpg'}, {'end': 468.069, 'src': 'embed', 'start': 438.973, 'weight': 3, 'content': [{'end': 443.654, 'text': 'There are many keywords in the Python language and we will introduce these as we make progress.', 'start': 438.973, 'duration': 4.681}, {'end': 448.455, 'text': 'Another key concept within the programming languages is variables.', 'start': 444.374, 'duration': 4.081}, {'end': 459.344, 'text': "A variable refers to the idea that from time to time you need to store some values in computer's memory and then refer back to that.", 'start': 451.3, 'duration': 8.044}, {'end': 468.069, 'text': "So for example, within the previous code that we have written, we collected user's name and then we printed hello message to them.", 'start': 460.065, 'duration': 8.004}], 'summary': 'Introduction to python keywords and variables for storing and accessing data in memory.', 'duration': 29.096, 'max_score': 438.973, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM438973.jpg'}], 'start': 2.423, 'title': 'Python for data and module work', 'summary': 'Discusses the increasing demand for python skills in data jobs and practical projects, including creating an expense tracker app, and covers python module usage, visual studio code, and programming concepts such as keywords, variables, data types, conditions, loops, functions, and operators.', 'chapters': [{'end': 65.262, 'start': 2.423, 'title': 'Python for data: job opportunities and practical projects', 'summary': 'Emphasizes the growing demand for python skills in the data profession, highlighting its relevance for excel users and promising to teach python programming through practical projects and examples, including the creation of an expense tracker app with csv file functionality.', 'duration': 62.839, 'highlights': ['The chapter discusses the increasing demand for Python skills in the data profession, with many companies now seeking Python proficiency for data-related roles.', 'The video promises to teach Python programming through practical projects, including the creation of a simple expense tracker app using Python that can save expenses to a CSV file with date and timestamp.', 'The chapter highlights the potential of learning Python for Excel users, presenting it as a way to enhance their resumes and access exciting job opportunities in the data field.']}, {'end': 635.907, 'start': 65.262, 'title': 'Python module work and language concepts', 'summary': 'Covers python module usage, coding with visual studio code, and introduces programming concepts such as keywords, variables, data types, conditions, loops, functions, and operators.', 'duration': 570.645, 'highlights': ['The chapter covers Python module usage, coding with visual studio code, and introduces programming concepts such as keywords, variables, data types, conditions, loops, functions, and operators. The chapter covers Python module usage, coding with visual studio code, and introduces programming concepts such as keywords, variables, data types, conditions, loops, functions, and operators.', 'Python is a simple language to get started, using print and input to get input and print outputs. Python is a simple language to get started, using print and input to get input and print outputs.', 'The input function collects the name of the person, stores it in a variable, and uses it inside the print statement. The input function collects the name of the person, stores it in a variable, and uses it inside the print statement.', 'Python has keywords, variables, data types, conditions, loops, functions, and operators. Python has keywords, variables, data types, conditions, loops, functions, and operators.']}], 'duration': 633.484, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM2423.jpg', 'highlights': ['The chapter discusses the increasing demand for Python skills in the data profession, with many companies now seeking Python proficiency for data-related roles.', 'The video promises to teach Python programming through practical projects, including the creation of a simple expense tracker app using Python that can save expenses to a CSV file with date and timestamp.', 'The chapter highlights the potential of learning Python for Excel users, presenting it as a way to enhance their resumes and access exciting job opportunities in the data field.', 'The chapter covers Python module usage, coding with visual studio code, and introduces programming concepts such as keywords, variables, data types, conditions, loops, functions, and operators.', 'Python is a simple language to get started, using print and input to get input and print outputs.', 'The input function collects the name of the person, stores it in a variable, and uses it inside the print statement.']}, {'end': 1110.796, 'segs': [{'end': 672.236, 'src': 'embed', 'start': 637.188, 'weight': 0, 'content': [{'end': 639.969, 'text': 'Time for a new pen because we are going to talk about some more things.', 'start': 637.188, 'duration': 2.781}, {'end': 644.052, 'text': 'Another concept within Python is libraries.', 'start': 640.95, 'duration': 3.102}, {'end': 647.261, 'text': 'Within this particular video.', 'start': 645.638, 'duration': 1.623}, {'end': 654.777, 'text': "I'm not going to get into too much of libraries, but this is something that you will very soon realize when you start building your Python knowledge.", 'start': 647.261, 'duration': 7.516}, {'end': 661.433, 'text': "Many times if you want to do a certain activity, it doesn't make sense for you to write all the code yourself.", 'start': 655.492, 'duration': 5.941}, {'end': 665.955, 'text': "You may want to borrow someone else's code that already does certain things.", 'start': 662.074, 'duration': 3.881}, {'end': 672.236, 'text': 'So for example, the print, we are just calling the print function and the print function is printing the message.', 'start': 666.015, 'duration': 6.221}], 'summary': 'Python libraries allow for reusing code, like the print function, saving time and effort.', 'duration': 35.048, 'max_score': 637.188, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM637188.jpg'}, {'end': 809.924, 'src': 'embed', 'start': 776.069, 'weight': 3, 'content': [{'end': 777.59, 'text': 'Same thing happens within Python.', 'start': 776.069, 'duration': 1.521}, {'end': 786.936, 'text': 'Within Python, it has many objects that you can readily use, as well as you can use the libraries to introduce new types of objects into your system.', 'start': 777.63, 'duration': 9.306}, {'end': 792.219, 'text': 'Class is basically a class of object and an object is an instance of a class.', 'start': 787.416, 'duration': 4.803}, {'end': 800.572, 'text': 'Again, these are technical words, but essentially what it means is this is a pen, but it belongs to the pens class.', 'start': 792.959, 'duration': 7.613}, {'end': 809.924, 'text': 'So imagine you have a pens class and then this red pen is one of the pens, but you could also have other pens,', 'start': 801.093, 'duration': 8.831}], 'summary': 'Python has many objects and libraries for introducing new types of objects; a class is a category of object and an object is an instance of a class.', 'duration': 33.855, 'max_score': 776.069, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM776069.jpg'}, {'end': 850.256, 'src': 'embed', 'start': 824.033, 'weight': 2, 'content': [{'end': 828.797, 'text': 'A simple type of an object that we commonly use within Python is a list object.', 'start': 824.033, 'duration': 4.764}, {'end': 832.36, 'text': 'So list is something that we will definitely try out in this tutorial.', 'start': 829.078, 'duration': 3.282}, {'end': 835.603, 'text': 'A list is nothing but a collection of values.', 'start': 832.921, 'duration': 2.682}, {'end': 839.307, 'text': 'In other programming languages or systems, you would have arrays.', 'start': 836.144, 'duration': 3.163}, {'end': 840.728, 'text': 'Python has lists.', 'start': 839.607, 'duration': 1.121}, {'end': 844.391, 'text': 'A simple way to think about list is like a range within Excel.', 'start': 841.148, 'duration': 3.243}, {'end': 847.554, 'text': 'You have a range of cells, each cell containing one value.', 'start': 844.431, 'duration': 3.123}, {'end': 850.256, 'text': 'A list is similar to that.', 'start': 848.114, 'duration': 2.142}], 'summary': 'Python uses list objects, a collection of values, similar to a range in excel.', 'duration': 26.223, 'max_score': 824.033, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM824033.jpg'}, {'end': 952.954, 'src': 'heatmap', 'start': 884.436, 'weight': 4, 'content': [{'end': 888.139, 'text': "Again, these are technical words, so it doesn't make sense to elaborate them here.", 'start': 884.436, 'duration': 3.703}, {'end': 890.46, 'text': 'We will do that as part of the coursework.', 'start': 888.259, 'duration': 2.201}, {'end': 895.544, 'text': 'So that is Python mind map.', 'start': 894.043, 'duration': 1.501}, {'end': 900.568, 'text': "Now let's go back to the computer so that we can write some Python code and learn more about the language.", 'start': 895.944, 'duration': 4.624}, {'end': 908.546, 'text': "Let's understand a little bit more about the variables.", 'start': 906.345, 'duration': 2.201}, {'end': 913.087, 'text': "For the purpose of this, let's explore the number variables.", 'start': 909.706, 'duration': 3.381}, {'end': 915.508, 'text': 'So I want to take two variables.', 'start': 913.607, 'duration': 1.901}, {'end': 924.454, 'text': 'Number one is 23 and number two is 47.', 'start': 917.088, 'duration': 7.366}, {'end': 931.159, 'text': "Notice that within Python, you don't really have to use any other special statement like dim or var or anything.", 'start': 924.454, 'duration': 6.705}, {'end': 938.845, 'text': 'You just start typing the variable is equal to and then assign a value and automatically Python will create a variable for you.', 'start': 931.219, 'duration': 7.626}, {'end': 944.249, 'text': 'So now both of these numbers are there within my Python program.', 'start': 939.406, 'duration': 4.843}, {'end': 946.391, 'text': 'I want to print their total as a message.', 'start': 944.309, 'duration': 2.082}, {'end': 947.972, 'text': "So we'll say print.", 'start': 946.991, 'duration': 0.981}, {'end': 952.954, 'text': 'and then i just want to say num1 plus num2.', 'start': 949.173, 'duration': 3.781}], 'summary': 'Learning python variables: num1=23, num2=47, print num1+num2', 'duration': 68.518, 'max_score': 884.436, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM884436.jpg'}], 'start': 637.188, 'title': 'Python libraries and objects', 'summary': 'Covers the importance of python libraries for various tasks such as printing, data analysis, and automation, as well as the concept of objects and classes, including creation, usage, errors encountered, and typecasting.', 'chapters': [{'end': 694.464, 'start': 637.188, 'title': 'Python libraries overview', 'summary': 'Discusses the importance of libraries in python, highlighting the need to utilize existing code for various tasks such as printing, data analysis, and automation.', 'duration': 57.276, 'highlights': ['The importance of libraries in Python for tasks such as printing, data analysis, and automation is emphasized.', 'Using existing code through libraries is crucial to avoid writing everything from scratch and to leverage functionalities like printing, data analysis, and automation.']}, {'end': 1110.796, 'start': 694.844, 'title': 'Python objects and classes', 'summary': 'Discusses the concept of objects and classes in python, including the creation and usage of objects, the list object as a common type, and variable handling. it also covers the errors encountered and the concept of typecasting. python has many libraries and you can use them on demand to achieve certain things. objects refer to anything and can have functionalities, while classes define a category of objects. the list object is a collection of values and can be used to store a collection of items. variables can be assigned without special statements, and errors like type errors can be resolved through typecasting.', 'duration': 415.952, 'highlights': ['Python has many libraries and you can use them on demand to achieve certain things. Python offers a wide variety of libraries that can be utilized as needed for specific tasks.', 'The list object is a collection of values and can be used to store a collection of items. A list object in Python is used to store a collection of values, similar to a range in Excel, and can be utilized for various purposes such as storing and manipulating data.', 'Objects refer to anything and can have functionalities, while classes define a category of objects. In Python, objects can represent any entity and can possess functionalities, while classes categorize objects and define their properties and behaviors.', 'Variables can be assigned without special statements, and errors like type errors can be resolved through typecasting. Python allows the assignment of variables without requiring special declarations, and type errors can be resolved by using typecasting to convert data from one type to another.']}], 'duration': 473.608, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM637188.jpg', 'highlights': ['Using existing code through libraries is crucial to avoid writing everything from scratch and to leverage functionalities like printing, data analysis, and automation.', 'Python offers a wide variety of libraries that can be utilized as needed for specific tasks.', 'A list object in Python is used to store a collection of values, similar to a range in Excel, and can be utilized for various purposes such as storing and manipulating data.', 'In Python, objects can represent any entity and can possess functionalities, while classes categorize objects and define their properties and behaviors.', 'Python allows the assignment of variables without requiring special declarations, and type errors can be resolved by using typecasting to convert data from one type to another.']}, {'end': 1665.118, 'segs': [{'end': 1137.04, 'src': 'embed', 'start': 1111.556, 'weight': 0, 'content': [{'end': 1117.157, 'text': "So we'll just say agecheck.py and then I can build my age checking code here.", 'start': 1111.556, 'duration': 5.601}, {'end': 1124.118, 'text': "This way all the workbooks or all the Python files that I'm generating will all sit in the same folder in my computer.", 'start': 1117.577, 'duration': 6.541}, {'end': 1135.2, 'text': 'The purpose of age check program is to ask user for their name and age and then print a message that tells them how many more years are left before they become 50..', 'start': 1124.598, 'duration': 10.602}, {'end': 1137.04, 'text': 'So we need to have two inputs.', 'start': 1135.2, 'duration': 1.84}], 'summary': 'Creating age check program to calculate years left till 50', 'duration': 25.484, 'max_score': 1111.556, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM1111556.jpg'}, {'end': 1189.991, 'src': 'embed', 'start': 1159.63, 'weight': 1, 'content': [{'end': 1168.155, 'text': "so I'm gonna add a typecasting function of int in the beginning and end of the name input, so age input,", 'start': 1159.63, 'duration': 8.525}, {'end': 1170.977, 'text': 'so that it will say whatever is the input that I collect.', 'start': 1168.155, 'duration': 2.822}, {'end': 1173.92, 'text': 'it will then convert that into an integer.', 'start': 1170.977, 'duration': 2.943}, {'end': 1185.989, 'text': 'So we got name and age now the idea that we want to do is we want to print a message that says hello name you will be 50 years old in this many years.', 'start': 1174.28, 'duration': 11.709}, {'end': 1189.991, 'text': 'so we can calculate a third variable.', 'start': 1186.81, 'duration': 3.181}], 'summary': 'Typecasting function added to name and age inputs to convert to integer. message printed with calculated age.', 'duration': 30.361, 'max_score': 1159.63, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM1159630.jpg'}, {'end': 1293.466, 'src': 'embed', 'start': 1247.608, 'weight': 2, 'content': [{'end': 1253.775, 'text': "so here is where, depending on the value of years to 50, if it's positive, then one message.", 'start': 1247.608, 'duration': 6.167}, {'end': 1256.719, 'text': "if it's negative, then another message needs to come.", 'start': 1253.775, 'duration': 2.944}, {'end': 1259.042, 'text': 'so this is where the if condition comes into picture.', 'start': 1256.719, 'duration': 2.323}, {'end': 1265.204, 'text': "Let's write this one.", 'start': 1264.423, 'duration': 0.781}, {'end': 1271.669, 'text': 'If years to 50 is greater than zero, then I want to run this part of the code.', 'start': 1265.884, 'duration': 5.785}, {'end': 1279.596, 'text': 'To run a part of the code when the if condition is true, you just have to indent that piece of code inside.', 'start': 1272.33, 'duration': 7.266}, {'end': 1282.158, 'text': 'So Python uses this indentation method.', 'start': 1279.956, 'duration': 2.202}, {'end': 1289.683, 'text': 'Whereas if you have done programming in any other language, like VBA or Java or C or any other language,', 'start': 1282.538, 'duration': 7.145}, {'end': 1293.466, 'text': 'they will all use different notations to kind of block the code.', 'start': 1289.683, 'duration': 3.783}], 'summary': 'Using if condition to execute code based on years to 50 value', 'duration': 45.858, 'max_score': 1247.608, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM1247608.jpg'}, {'end': 1421.075, 'src': 'embed', 'start': 1394.261, 'weight': 4, 'content': [{'end': 1399.364, 'text': 'So for example, this block of code here is my if block, and this is else block.', 'start': 1394.261, 'duration': 5.103}, {'end': 1404.77, 'text': 'So to keep things simple, you would always have like a curly bracket or something else in those languages.', 'start': 1400.109, 'duration': 4.661}, {'end': 1409.652, 'text': 'Whereas within Python, the intention is specified with the indentation.', 'start': 1405.191, 'duration': 4.461}, {'end': 1415.114, 'text': 'And this can be a little confusing when you get started, but later on it becomes quite natural.', 'start': 1410.292, 'duration': 4.822}, {'end': 1416.294, 'text': "So let's run this.", 'start': 1415.614, 'duration': 0.68}, {'end': 1418.855, 'text': 'James 62.', 'start': 1416.954, 'duration': 1.901}, {'end': 1421.075, 'text': 'Hello, James, you are 50, 12 years ago.', 'start': 1418.855, 'duration': 2.22}], 'summary': "Comparison between code blocks in different languages, emphasizing python's use of indentation for specifying intention. learning curve but becomes natural.", 'duration': 26.814, 'max_score': 1394.261, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM1394261.jpg'}, {'end': 1494.952, 'src': 'embed', 'start': 1466.56, 'weight': 5, 'content': [{'end': 1471.063, 'text': 'because there is always different things that need to happen based on various values that you are reading.', 'start': 1466.56, 'duration': 4.503}, {'end': 1481.001, 'text': "In this exercise, let's build a very simple expense calculator using Python.", 'start': 1476.457, 'duration': 4.544}, {'end': 1489.627, 'text': 'I have added a new file to my folder, expensecalc.py, and here the purpose of expense calculator is.', 'start': 1481.701, 'duration': 7.926}, {'end': 1494.952, 'text': 'it will ask the user for a series of inputs where you can just type the expenditures.', 'start': 1489.627, 'duration': 5.325}], 'summary': 'Building a python expense calculator to input and calculate expenditures.', 'duration': 28.392, 'max_score': 1466.56, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM1466560.jpg'}, {'end': 1598.092, 'src': 'embed', 'start': 1562.133, 'weight': 6, 'content': [{'end': 1567.576, 'text': "So we'll understand the concept with a very simple loop first and then we will build the expense calculator.", 'start': 1562.133, 'duration': 5.443}, {'end': 1576.256, 'text': "So let's just print up to 10 numbers.", 'start': 1573.294, 'duration': 2.962}, {'end': 1582.701, 'text': 'To do this, we can just say a variable and then set this to 1.', 'start': 1576.957, 'duration': 5.744}, {'end': 1588.645, 'text': 'And then we can type while our variable i is under 10.', 'start': 1582.701, 'duration': 5.944}, {'end': 1590.847, 'text': 'We just print the words i.', 'start': 1588.645, 'duration': 2.202}, {'end': 1595.25, 'text': 'And once we finish printing, we need to move the i to next point.', 'start': 1590.847, 'duration': 4.403}, {'end': 1598.092, 'text': 'So i will become i plus 1.', 'start': 1595.35, 'duration': 2.742}], 'summary': 'Teaching loop concept and building an expense calculator with a simple example.', 'duration': 35.959, 'max_score': 1562.133, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM1562133.jpg'}], 'start': 1111.556, 'title': 'Python fundamentals', 'summary': 'Discusses creating an age check program, using python to calculate years left to turn 50, demonstrating typecasting and conditional statements. it also covers if conditions in python, with examples of positive and negative scenarios, emphasizing proper indentation. additionally, it introduces looping in python to build an expense calculator, highlighting potential issues like infinite loops.', 'chapters': [{'end': 1247.608, 'start': 1111.556, 'title': 'Age check program', 'summary': 'Discusses creating an age check program in python, allowing users to input their name and age, and then calculates and prints a message indicating how many years are left before they become 50, demonstrating the use of typecasting and conditional statements.', 'duration': 136.052, 'highlights': ["The purpose of age check program is to ask user for their name and age and then print a message that tells them how many more years are left before they become 50. The program's goal is to prompt users for their name and age, then calculate and display the years remaining before they turn 50.", 'The program utilizes typecasting to convert the age input into an integer for processing. Typecasting is used to ensure the age input is processed as a number rather than a text value.', "The program applies conditional logic to handle cases where the user is already 50 or older, altering the message accordingly. The program includes conditional statements to adjust the output message based on the user's age in relation to 50."]}, {'end': 1466.56, 'start': 1247.608, 'title': 'Python if condition logic', 'summary': 'Covers the usage of if conditions in python, demonstrating how to run different parts of the code based on the condition, with examples of positive and negative scenarios, as well as the usage of else to handle the condition not being met, emphasizing the importance of using proper indentation and providing an example of how to improve the output message. if conditions are described as a great way to test different conditions and branch out the logic in programming and business situations.', 'duration': 218.952, 'highlights': ['The chapter covers the usage of if conditions in Python, demonstrating how to run different parts of the code based on the condition, with examples of positive and negative scenarios, as well as the usage of else to handle the condition not being met.', 'Python uses indentation to specify the intention of the code, which can be confusing for those with a background in programming languages that use different notations such as curly brackets.', 'Demonstrates how to improve the output message by adding proper spacing and rearranging the content for better readability and understanding.']}, {'end': 1665.118, 'start': 1466.56, 'title': 'Building expense calculator with python', 'summary': 'Introduces the concept of looping in python by building a simple expense calculator that asks the user for a series of inputs and calculates the total expenditure, highlighting the use of loops and potential issues like infinite loops.', 'duration': 198.558, 'highlights': ['The chapter introduces the concept of looping in Python by building a simple expense calculator that asks the user for a series of inputs and calculates the total expenditure. The purpose of the expense calculator is to collect user inputs for expenditures and calculate the total expenditure, introducing the concept of looping and the need for upfront knowledge of how many times to collect inputs.', "The chapter explains the concept of a loop using a simple example of printing numbers up to a specified limit, demonstrating the use of 'while' loop and the need to increment the variable to avoid infinite loops. The chapter illustrates the use of a 'while' loop to print numbers up to a specified limit, emphasizing the importance of incrementing the variable to avoid infinite loops and demonstrating the behavior of an infinite loop."]}], 'duration': 553.562, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM1111556.jpg', 'highlights': ["The program's goal is to prompt users for their name and age, then calculate and display the years remaining before they turn 50.", 'The program utilizes typecasting to convert the age input into an integer for processing.', 'The program applies conditional logic to handle cases where the user is already 50 or older, altering the message accordingly.', 'The chapter covers the usage of if conditions in Python, demonstrating how to run different parts of the code based on the condition, with examples of positive and negative scenarios, as well as the usage of else to handle the condition not being met.', 'Python uses indentation to specify the intention of the code, which can be confusing for those with a background in programming languages that use different notations such as curly brackets.', 'The chapter introduces the concept of looping in Python by building a simple expense calculator that asks the user for a series of inputs and calculates the total expenditure.', "The chapter explains the concept of a loop using a simple example of printing numbers up to a specified limit, demonstrating the use of 'while' loop and the need to increment the variable to avoid infinite loops."]}, {'end': 2051.475, 'segs': [{'end': 1689.714, 'src': 'embed', 'start': 1665.118, 'weight': 0, 'content': [{'end': 1673.365, 'text': "let's just build our expense calculator so we'll have a variable called ep and then we'll just initially set this to minus one.", 'start': 1665.118, 'duration': 8.247}, {'end': 1679.69, 'text': 'the idea here is the program will prompt you what is the expenditure and then you can just repeatedly enter expenditures.', 'start': 1673.365, 'duration': 6.325}, {'end': 1683.031, 'text': 'When you finish doing, you just type zero to stop.', 'start': 1680.27, 'duration': 2.761}, {'end': 1684.992, 'text': 'And at that point, we tell you the total.', 'start': 1683.151, 'duration': 1.841}, {'end': 1689.714, 'text': 'So and then we will also declare a variable called total expenditure, which is zero.', 'start': 1685.792, 'duration': 3.922}], 'summary': 'Building an expense calculator with initial variable set to -1 and prompting for expenditures until zero is entered, then displaying the total.', 'duration': 24.596, 'max_score': 1665.118, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM1665118.jpg'}, {'end': 1741.686, 'src': 'embed', 'start': 1710.163, 'weight': 1, 'content': [{'end': 1714.065, 'text': 'in some other programming languages we use less than greater than but within python.', 'start': 1710.163, 'duration': 3.902}, {'end': 1718.788, 'text': 'this is how you check for not equal to condition.', 'start': 1714.065, 'duration': 4.723}, {'end': 1726.532, 'text': 'so while expenditure is not equal to zero, as long as that condition is true, we want to get the expenditure.', 'start': 1718.788, 'duration': 7.744}, {'end': 1730.934, 'text': 'so expenditure would be input what is the expense?', 'start': 1726.532, 'duration': 4.402}, {'end': 1736.239, 'text': 'and then you may want to just say type zero to stop.', 'start': 1730.934, 'duration': 5.305}, {'end': 1741.686, 'text': 'whatever input is taken, we are going to convert that into an integer and then, as you are doing this,', 'start': 1736.239, 'duration': 5.447}], 'summary': "In python, '!=' is used to check for not equal condition. expenditure is input until it's not equal to zero.", 'duration': 31.523, 'max_score': 1710.163, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM1710163.jpg'}, {'end': 1829.053, 'src': 'heatmap', 'start': 1774.775, 'weight': 0.795, 'content': [{'end': 1775.596, 'text': "Let's stress this out.", 'start': 1774.775, 'duration': 0.821}, {'end': 1778.178, 'text': 'So here what is the expenditure? $12, $18, $10 and then zero.', 'start': 1775.896, 'duration': 2.282}, {'end': 1782.623, 'text': 'So 12 plus 18 plus 10 is 40 and we will get the answer.', 'start': 1778.198, 'duration': 4.425}, {'end': 1784.465, 'text': 'This is how you normally use loops.', 'start': 1782.663, 'duration': 1.802}, {'end': 1792.457, 'text': "Let's take this to the next level.", 'start': 1790.936, 'duration': 1.521}, {'end': 1796.22, 'text': 'Apart from your total expenditure, I also want to print two more stats.', 'start': 1792.837, 'duration': 3.383}, {'end': 1801.984, 'text': 'One is what is the maximum expenditure that I incurred and what is the minimum expenditure that I incurred.', 'start': 1796.56, 'duration': 5.424}, {'end': 1805.306, 'text': 'So to do this, we also need two more variables.', 'start': 1802.764, 'duration': 2.542}, {'end': 1807.167, 'text': "Let's just declare them here.", 'start': 1805.906, 'duration': 1.261}, {'end': 1810.61, 'text': 'Max exp is zero.', 'start': 1807.668, 'duration': 2.942}, {'end': 1813.932, 'text': 'Min exp is zero.', 'start': 1811.25, 'duration': 2.682}, {'end': 1819.209, 'text': 'As we add total, we also need to figure out what is the max expenditure.', 'start': 1814.548, 'duration': 4.661}, {'end': 1829.053, 'text': 'So max expenditure would be if exp is greater than max exp, then max exp becomes exp.', 'start': 1819.69, 'duration': 9.363}], 'summary': 'Using loops to calculate total expenditure and find max/min values.', 'duration': 54.278, 'max_score': 1774.775, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM1774775.jpg'}, {'end': 1852.666, 'src': 'embed', 'start': 1830.953, 'weight': 3, 'content': [{'end': 1842.797, 'text': 'but if you understand what is going on at each step we gather the expenditure and then we check if that expenditure that you have typed in is already greater than the maximum expenditure so far.', 'start': 1830.953, 'duration': 11.844}, {'end': 1848.264, 'text': 'If so, then we make that new expenditure the maximum expenditure.', 'start': 1844.002, 'duration': 4.262}, {'end': 1850.685, 'text': "Let's just stop with this for now.", 'start': 1849.064, 'duration': 1.621}, {'end': 1852.666, 'text': 'We will come back to the minimum logic in a minute.', 'start': 1850.745, 'duration': 1.921}], 'summary': 'Tracking and updating maximum expenditure in a process.', 'duration': 21.713, 'max_score': 1830.953, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM1830953.jpg'}, {'end': 1976.237, 'src': 'embed', 'start': 1913.564, 'weight': 2, 'content': [{'end': 1918.268, 'text': 'What if I want to see all the expenses entered as output on the screen?', 'start': 1913.564, 'duration': 4.704}, {'end': 1920.13, 'text': 'or maybe save that to a file?', 'start': 1918.268, 'duration': 1.862}, {'end': 1926.976, 'text': 'This is where, as we gather the input, we need to actually store them in a collection of expenses.', 'start': 1920.53, 'duration': 6.446}, {'end': 1930.76, 'text': 'This is perfect example for using a list.', 'start': 1927.637, 'duration': 3.123}, {'end': 1932.181, 'text': "So let's use that.", 'start': 1931.42, 'duration': 0.761}, {'end': 1939.159, 'text': 'I will do this in a new file.', 'start': 1937.918, 'duration': 1.241}, {'end': 1943.444, 'text': "So we'll call this as expenseCalc2.py.", 'start': 1939.66, 'duration': 3.784}, {'end': 1946.928, 'text': 'And in this file, we will follow the same structure.', 'start': 1943.965, 'duration': 2.963}, {'end': 1952.354, 'text': "We'll declare a variable called expenses and set it to an empty list.", 'start': 1947.308, 'duration': 5.046}, {'end': 1956.999, 'text': 'In Python, lists are denoted with square brackets like this.', 'start': 1953.215, 'duration': 3.784}, {'end': 1966.826, 'text': 'So for example, you could have a list of expenses like 12, 18, 10, 19, 23, 10.', 'start': 1957.645, 'duration': 9.181}, {'end': 1968.552, 'text': 'So that is a list of expenses.', 'start': 1966.831, 'duration': 1.721}, {'end': 1976.237, 'text': 'And if I print this list exp, I will see my expenses printed out as a list.', 'start': 1968.992, 'duration': 7.245}], 'summary': 'Storing expenses in a list for output or file saving in expensecalc2.py.', 'duration': 62.673, 'max_score': 1913.564, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM1913564.jpg'}], 'start': 1665.118, 'title': 'Building an expense calculator program in python', 'summary': 'Discusses building an expense calculator program in python, prompting users to enter their expenses until they type zero to stop, and then displaying the total expenditure. it also covers creating an expense calculator, including the addition of expenses, tracking total expenditure, finding maximum and minimum expenses, and implementing a list to store and manipulate the expenses.', 'chapters': [{'end': 1736.239, 'start': 1665.118, 'title': 'Expense calculator program', 'summary': 'Discusses building an expense calculator program in python, prompting users to enter their expenses until they type zero to stop, and then displaying the total expenditure.', 'duration': 71.121, 'highlights': ['The program utilizes a while loop to repeatedly prompt the user for their expenses until they enter zero to stop, offering a user-friendly way to input multiple expenditures.', "The concept of the 'not equal to' operator in Python is explained, clarifying that it is represented as '!=' instead of '<>' as used in some other programming languages."]}, {'end': 2051.475, 'start': 1736.239, 'title': 'Expense calculator & list implementation', 'summary': 'Discusses creating an expense calculator in python, including the addition of expenses, tracking total expenditure, finding maximum and minimum expenses, and implementing a list to store and manipulate the expenses.', 'duration': 315.236, 'highlights': ['The chapter explains how to create an expense calculator in Python, adding up the expenditure to the total and displaying the total expenditure. Creating an expense calculator, adding up expenditure, displaying total expenditure.', 'It details the process of finding the maximum and minimum expenditures incurred, including the logic for updating the maximum expenditure during input gathering and the suggestion to add the logic for the minimum expenditure as an exercise. Finding maximum and minimum expenditures, updating the maximum expenditure logic, suggestion for adding the logic for minimum expenditure as an exercise.', 'The transcript also covers the implementation of a list in Python to store and manipulate the expenses, including displaying the total items in the list. Implementation of a list to store expenses, displaying the total items in the list.']}], 'duration': 386.357, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM1665118.jpg', 'highlights': ['The program utilizes a while loop to repeatedly prompt the user for their expenses until they enter zero to stop, offering a user-friendly way to input multiple expenditures.', "The concept of the 'not equal to' operator in Python is explained, clarifying that it is represented as '!=' instead of '<>' as used in some other programming languages.", 'The chapter explains how to create an expense calculator in Python, adding up the expenditure to the total and displaying the total expenditure.', 'It details the process of finding the maximum and minimum expenditures incurred, including the logic for updating the maximum expenditure during input gathering and the suggestion to add the logic for the minimum expenditure as an exercise.', 'The transcript also covers the implementation of a list in Python to store and manipulate the expenses, including displaying the total items in the list.']}, {'end': 3025.374, 'segs': [{'end': 2171.097, 'src': 'heatmap', 'start': 2052.222, 'weight': 2, 'content': [{'end': 2055.503, 'text': 'Apart from LEN, we can also do several other things on the lists.', 'start': 2052.222, 'duration': 3.281}, {'end': 2063.225, 'text': "If you type a list name like exp and then press dot, depending on the development environment that you're using,", 'start': 2056.083, 'duration': 7.142}, {'end': 2066.246, 'text': 'it might show you all the things that you can do on the list.', 'start': 2063.225, 'duration': 3.021}, {'end': 2068.907, 'text': 'So for example, I can append a value to the list.', 'start': 2066.446, 'duration': 2.461}, {'end': 2073.188, 'text': 'I can clear, copy, count, extend, index, etc.', 'start': 2069.427, 'duration': 3.761}, {'end': 2079.935, 'text': "So for example, let's append another expenditure of 25.", 'start': 2074.108, 'duration': 5.827}, {'end': 2083.179, 'text': "And then let's just print the expenditure list after that.", 'start': 2079.935, 'duration': 3.244}, {'end': 2086.203, 'text': 'So we are printing it twice, once before and once after.', 'start': 2083.279, 'duration': 2.924}, {'end': 2088.685, 'text': "Here I'm just going to say after exp.", 'start': 2087.043, 'duration': 1.642}, {'end': 2093.94, 'text': 'and then before exp.', 'start': 2091.976, 'duration': 1.964}, {'end': 2100.188, 'text': "So before it's 12, 18, 10, 19, 23, 10, and after that it becomes this.", 'start': 2094.58, 'duration': 5.608}, {'end': 2107.497, 'text': 'So using the append method, I can add items to my list based on what the user is entering.', 'start': 2101.149, 'duration': 6.348}, {'end': 2115.63, 'text': "So let's build our second version of expense calculator will declare a variable called exp, which is equal to empty list,", 'start': 2108.098, 'duration': 7.532}, {'end': 2118.354, 'text': 'and then we will also have another variable.', 'start': 2115.63, 'duration': 2.724}, {'end': 2122.621, 'text': 'This one is stopped and this is false.', 'start': 2118.975, 'duration': 3.646}, {'end': 2126.14, 'text': 'So initially we have not stopped.', 'start': 2123.618, 'duration': 2.522}, {'end': 2131.924, 'text': "We want to continue gathering the input and then we will make this true if the user's input is zero.", 'start': 2126.18, 'duration': 5.744}, {'end': 2138.069, 'text': 'So while not stopped, while not a false initially.', 'start': 2132.325, 'duration': 5.744}, {'end': 2139.93, 'text': 'So that will be true while true.', 'start': 2138.689, 'duration': 1.241}, {'end': 2143.033, 'text': 'then we want to get the input.', 'start': 2140.991, 'duration': 2.042}, {'end': 2149.158, 'text': 'e is equal to input of and then we will just do a typecasting here.', 'start': 2143.033, 'duration': 6.125}, {'end': 2152.501, 'text': 'integer of that and then exp.', 'start': 2149.158, 'duration': 3.343}, {'end': 2155.444, 'text': 'dot. append e.', 'start': 2152.501, 'duration': 2.943}, {'end': 2159.067, 'text': "now we don't want to add the input if e is zero.", 'start': 2155.444, 'duration': 3.623}, {'end': 2168.094, 'text': 'so here we will just say if e is not equal to zero, then we want to append Else.', 'start': 2159.067, 'duration': 9.027}, {'end': 2171.097, 'text': 'we want to just set stop to true.', 'start': 2168.094, 'duration': 3.003}], 'summary': 'In python, the speaker demonstrates list manipulation functions, such as append and conditional appending, while building an expense calculator.', 'duration': 27.713, 'max_score': 2052.222, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM2052222.jpg'}, {'end': 2138.069, 'src': 'embed', 'start': 2108.098, 'weight': 3, 'content': [{'end': 2115.63, 'text': "So let's build our second version of expense calculator will declare a variable called exp, which is equal to empty list,", 'start': 2108.098, 'duration': 7.532}, {'end': 2118.354, 'text': 'and then we will also have another variable.', 'start': 2115.63, 'duration': 2.724}, {'end': 2122.621, 'text': 'This one is stopped and this is false.', 'start': 2118.975, 'duration': 3.646}, {'end': 2126.14, 'text': 'So initially we have not stopped.', 'start': 2123.618, 'duration': 2.522}, {'end': 2131.924, 'text': "We want to continue gathering the input and then we will make this true if the user's input is zero.", 'start': 2126.18, 'duration': 5.744}, {'end': 2138.069, 'text': 'So while not stopped, while not a false initially.', 'start': 2132.325, 'duration': 5.744}], 'summary': 'Building a second version of expense calculator, initializing variables and gathering input.', 'duration': 29.971, 'max_score': 2108.098, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM2108098.jpg'}, {'end': 2265.939, 'src': 'embed', 'start': 2225.666, 'weight': 0, 'content': [{'end': 2235.634, 'text': 'So for example, I can just say print total expenses and then use a function like sum of exp to sum them up.', 'start': 2225.666, 'duration': 9.968}, {'end': 2241.749, 'text': '12, 18, 10, 19, 0.', 'start': 2235.654, 'duration': 6.095}, {'end': 2248.834, 'text': "So this is going to add up those four values and then it'll just say 59, just as we have some, we also have min and max.", 'start': 2241.749, 'duration': 7.085}, {'end': 2253.137, 'text': 'So for example, max expense is max.', 'start': 2249.375, 'duration': 3.762}, {'end': 2259.151, 'text': '12, 18, 10, 19, 25, 0.', 'start': 2255.695, 'duration': 3.456}, {'end': 2265.939, 'text': "So it's going to add up all the expenditures to 84 and then maximum is 25 out of that.", 'start': 2259.156, 'duration': 6.783}], 'summary': "Using the function 'sum of exp' to add up expenses resulted in a total of 84, with the maximum expense being 25.", 'duration': 40.273, 'max_score': 2225.666, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM2225666.jpg'}, {'end': 2317.382, 'src': 'heatmap', 'start': 2266.459, 'weight': 0.706, 'content': [{'end': 2268.4, 'text': 'So different ways to solve the problem.', 'start': 2266.459, 'duration': 1.941}, {'end': 2275.683, 'text': 'Our original approach was to just add these things up because we have not even considered the possibility of storing all the values.', 'start': 2268.94, 'duration': 6.743}, {'end': 2284.809, 'text': 'But sometimes you may want to keep track of the values for a list in your memory, or maybe you want to save them to a file or something.', 'start': 2276.344, 'duration': 8.465}, {'end': 2290.354, 'text': 'so in that case the list is a great option for you to keep track of all the things and then use them.', 'start': 2284.809, 'duration': 5.545}, {'end': 2295.998, 'text': 'later on we will play a little bit more with loops as well as lists in the subsequent parts of this video.', 'start': 2290.354, 'duration': 5.644}, {'end': 2303.592, 'text': 'Lists are a great way to store your data.', 'start': 2301.59, 'duration': 2.002}, {'end': 2306.254, 'text': "So let's spend some more time understanding lists.", 'start': 2303.972, 'duration': 2.282}, {'end': 2309.796, 'text': 'A long way you will also be able to learn how to use the for loop.', 'start': 2306.554, 'duration': 3.242}, {'end': 2313.079, 'text': 'We can declare a list using a variable.', 'start': 2310.417, 'duration': 2.662}, {'end': 2317.382, 'text': 'So for example, L is equal to and then square brackets and then type the value.', 'start': 2313.359, 'duration': 4.023}], 'summary': 'Using lists to store and track data, emphasizing the use of loops for efficient processing.', 'duration': 50.923, 'max_score': 2266.459, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM2266459.jpg'}, {'end': 2631.631, 'src': 'embed', 'start': 2579.221, 'weight': 1, 'content': [{'end': 2584.174, 'text': 'So for example, you could simply say num plus one inside the loop, and get the same result.', 'start': 2579.221, 'duration': 4.953}, {'end': 2585.855, 'text': 'So this is another method.', 'start': 2584.554, 'duration': 1.301}, {'end': 2594.897, 'text': 'Both these methods, the while loop as well as the for loop method require you to run the process that is this little instruction 100 times.', 'start': 2586.255, 'duration': 8.642}, {'end': 2601.939, 'text': 'So this is where Python really shines because it also offers other ways to generate the lists.', 'start': 2595.877, 'duration': 6.062}, {'end': 2610.661, 'text': 'We can use a special technique called list comprehension using which I can generate this entire list without even having to loop through.', 'start': 2602.539, 'duration': 8.122}, {'end': 2622.806, 'text': "You could think of this as internally the computer will do the job, but from a coding perspective, you don't have to do it.", 'start': 2616.923, 'duration': 5.883}, {'end': 2628.569, 'text': 'Because computer does it internally, it will do it in a faster and more optimized fashion.', 'start': 2623.486, 'duration': 5.083}, {'end': 2631.631, 'text': "So let's talk about list comprehension here.", 'start': 2629.31, 'duration': 2.321}], 'summary': 'Python offers list comprehension for faster and optimized list generation without looping, saving time and effort.', 'duration': 52.41, 'max_score': 2579.221, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM2579221.jpg'}, {'end': 2884.435, 'src': 'embed', 'start': 2857.168, 'weight': 6, 'content': [{'end': 2861.573, 'text': 'This is because within Python, the indexing or the counting starts from zero.', 'start': 2857.168, 'duration': 4.405}, {'end': 2867.38, 'text': "So when I really say seven, I'm asking for the eighth item because the very first item is the zeroth item.", 'start': 2861.934, 'duration': 5.446}, {'end': 2872.266, 'text': "So if I say zero here, you'll see the very first item, which would be zero.", 'start': 2867.901, 'duration': 4.365}, {'end': 2874.793, 'text': 'So here is my answer.', 'start': 2873.953, 'duration': 0.84}, {'end': 2884.435, 'text': "So this is one of the things that you need to keep in mind when you're working with lists or any other data types where you have a collection of items and you're accessing a specific item.", 'start': 2875.553, 'duration': 8.882}], 'summary': 'Python indexing starts from zero, keep in mind when working with lists or data types.', 'duration': 27.267, 'max_score': 2857.168, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM2857168.jpg'}, {'end': 2937.745, 'src': 'embed', 'start': 2891.236, 'weight': 7, 'content': [{'end': 2898.098, 'text': 'One of the cool things within Python is you can use positive numbers to access a specific item or you can use a negative item.', 'start': 2891.236, 'duration': 6.862}, {'end': 2906.877, 'text': "So for example, I can say, what is the list minus one? And that's going to give me the very last item.", 'start': 2898.118, 'duration': 8.759}, {'end': 2911.302, 'text': "So let's just see this, 198.", 'start': 2907.598, 'duration': 3.704}, {'end': 2914.927, 'text': "So if I just say list and then minus one, I'll get the very last item.", 'start': 2911.302, 'duration': 3.625}, {'end': 2918.912, 'text': "Likewise, if I say minus three, I'll get the third item from the last.", 'start': 2915.488, 'duration': 3.424}, {'end': 2921.638, 'text': 'So 194.', 'start': 2918.932, 'duration': 2.706}, {'end': 2929.341, 'text': 'We can also use the slicing operator or the this operator to access a specific portion of the list.', 'start': 2921.638, 'duration': 7.703}, {'end': 2937.745, 'text': "So let's say I want to see what items are there in my even numbers list, starting with the index one and ending at index three.", 'start': 2929.741, 'duration': 8.004}], 'summary': 'Python allows accessing list items using positive and negative numbers. slicing operator can be used to access specific portions of the list.', 'duration': 46.509, 'max_score': 2891.236, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM2891236.jpg'}], 'start': 2052.222, 'title': 'Python list operations and access', 'summary': 'Covers list operations, expense calculation, and working with lists in python including manipulation, generation, and access, with examples and practical applications.', 'chapters': [{'end': 2265.939, 'start': 2052.222, 'title': 'List operations and expense calculator', 'summary': 'Covers list operations, including appending values, and building an expense calculator that captures expenditures and performs operations such as calculating the total expenses and identifying the maximum expense.', 'duration': 213.717, 'highlights': ['Building an expense calculator that captures expenditures and performs operations such as calculating the total expenses and identifying the maximum expense The chapter provides a detailed explanation of building an expense calculator using Python, which captures expenditures, calculates the total expenses using the sum function, and identifies the maximum expense using the max function.', 'List operations, including appending values and displaying the list before and after appending The author explains various list operations, such as appending values to a list, and demonstrates the process by displaying the list both before and after appending a value.', 'Demonstrating the use of while loop and conditions in Python to gather input for the expense calculator The transcript provides a demonstration of using a while loop and conditions in Python to gather input for the expense calculator, with a specific example of stopping the input process when the user enters zero.']}, {'end': 2797.215, 'start': 2266.459, 'title': 'Working with python lists', 'summary': 'Covers the usage of lists in python, including creating, manipulating, and generating lists using for loops, while loops, and list comprehensions, with examples of adding, extending, and manipulating lists, as well as generating lists without looping through them.', 'duration': 530.756, 'highlights': ['Using List Comprehensions to Generate Lists List comprehensions are a game-changing feature in Python, allowing for the efficient generation of lists without looping through, exemplified by generating even numbers and showcasing its powerful and efficient data management capabilities.', 'Manipulating Lists with For Loops and While Loops The usage of for loops and while loops to manipulate and generate lists, with examples of adding, extending, and generating lists, and a comparison between the two loop methods in terms of efficiency and practicality.', 'Basic List Operations and Functionality Demonstration of basic list operations such as adding, extending, printing, and accessing list items, as well as showcasing the built-in functionality of Python lists and their usage for data storage and retrieval.']}, {'end': 3025.374, 'start': 2803.499, 'title': 'Accessing list items in python', 'summary': 'Explains how to access specific items in a list using python, including indexing starting from zero, using positive and negative numbers, and slicing to access specific portions of the list.', 'duration': 221.875, 'highlights': ['Python indexing starts from zero, so when accessing the 7th item, it actually refers to the 8th item in the list, as demonstrated by accessing the 7th even number which returns 14, the 8th item.', "Using negative indexing allows accessing the last item by using '-1', and accessing the third item from the end using '-3', showcasing the flexibility of list item retrieval.", 'Slicing the list using the format list[1:3] retrieves items from index 1 to index 3, displaying the second and third items, exemplifying the application of slicing in accessing specific portions of the list.']}], 'duration': 973.152, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM2052222.jpg', 'highlights': ['Building an expense calculator that captures expenditures and performs operations such as calculating the total expenses and identifying the maximum expense', 'Using List Comprehensions to Generate Lists', 'List operations, including appending values and displaying the list before and after appending', 'Demonstrating the use of while loop and conditions in Python to gather input for the expense calculator', 'Manipulating Lists with For Loops and While Loops', 'Basic List Operations and Functionality', 'Python indexing starts from zero, so when accessing the 7th item, it actually refers to the 8th item in the list', "Using negative indexing allows accessing the last item by using '-1', and accessing the third item from the end using '-3'", 'Slicing the list using the format list[1:3] retrieves items from index 1 to index 3, displaying the second and third items']}, {'end': 3462.715, 'segs': [{'end': 3405.63, 'src': 'embed', 'start': 3345.55, 'weight': 0, 'content': [{'end': 3349.451, 'text': 'And that will make the multiplication table, but in a list.', 'start': 3345.55, 'duration': 3.901}, {'end': 3354.3, 'text': "So, if I run this now, let's just try for 19,", 'start': 3350.376, 'duration': 3.924}, {'end': 3364.07, 'text': 'one of the hardest tables that I had to remember as a kid and we will get all the 19 table values as text values in a list.', 'start': 3354.3, 'duration': 9.77}, {'end': 3375.103, 'text': 'So you can see how powerful the list comprehension concept itself is, using which we are able to generate the entire table with just one line of code.', 'start': 3364.571, 'duration': 10.532}, {'end': 3382.813, 'text': 'One annoying aspect of this is how often we have to use the typecasting function str like this.', 'start': 3375.623, 'duration': 7.19}, {'end': 3388.822, 'text': 'So there is another shortcut that you normally use within Python and these are f function or f expressions.', 'start': 3383.234, 'duration': 5.588}, {'end': 3397.647, 'text': 'So we will rewrite the mx2 with f.', 'start': 3394.386, 'duration': 3.261}, {'end': 3405.63, 'text': "So here I'm going to just say f and then within single quotes we will just write the whole thing and then that will kind of work.", 'start': 3397.647, 'duration': 7.983}], 'summary': 'Using list comprehension, generated the 19 multiplication table with a single line of code, and then used f function for rewriting mx2.', 'duration': 60.08, 'max_score': 3345.55, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM3345550.jpg'}], 'start': 3026.505, 'title': 'Building a multiplication table', 'summary': 'Demonstrates constructing a multiplication table in python using list comprehension, generating the table up to 20. it introduces the use of f-expressions for string handling, resulting in a concise and efficient implementation.', 'chapters': [{'end': 3462.715, 'start': 3026.505, 'title': 'Building multiplication table', 'summary': 'Demonstrates the construction of a multiplication table in python, using list comprehension to generate the table up to 20, and introduces the use of f-expressions to simplify string handling, resulting in a concise and efficient implementation.', 'duration': 436.21, 'highlights': ['The chapter introduces the construction of a multiplication table using list comprehension to generate the table up to 20, showcasing the power of list comprehension in Python.', 'The use of f-expressions is demonstrated to simplify string handling, reducing the need for typecasting functions like str and resulting in a concise and efficient implementation.']}], 'duration': 436.21, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM3026505.jpg', 'highlights': ['The chapter introduces the construction of a multiplication table using list comprehension to generate the table up to 20, showcasing the power of list comprehension in Python.', 'The use of f-expressions is demonstrated to simplify string handling, reducing the need for typecasting functions like str and resulting in a concise and efficient implementation.']}, {'end': 4129.145, 'segs': [{'end': 3492.632, 'src': 'embed', 'start': 3463.275, 'weight': 6, 'content': [{'end': 3466.817, 'text': 'And this is where most programming languages, when you are learning,', 'start': 3463.275, 'duration': 3.542}, {'end': 3475.483, 'text': 'the key thing to keep in mind is there can be infinite number of ways to your solution from your problem.', 'start': 3466.817, 'duration': 8.666}, {'end': 3480.085, 'text': 'and initially, as you are learning, there is no right or wrong way.', 'start': 3476.323, 'duration': 3.762}, {'end': 3484.488, 'text': 'you just have to pick the way that is most comfortable to you and then go with that.', 'start': 3480.085, 'duration': 4.403}, {'end': 3492.632, 'text': 'but as you evolve your programming knowledge, you may have some preferences as to using certain approach versus others.', 'start': 3484.488, 'duration': 8.144}], 'summary': 'In programming, there are infinite ways to solve problems. no right or wrong initially, but preferences develop with knowledge.', 'duration': 29.357, 'max_score': 3463.275, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM3463275.jpg'}, {'end': 3558.279, 'src': 'embed', 'start': 3529.069, 'weight': 0, 'content': [{'end': 3534.453, 'text': "Let's bring all of our Python understanding in one place with a Python project.", 'start': 3529.069, 'duration': 5.384}, {'end': 3537.686, 'text': 'The purpose of this project is really simple.', 'start': 3535.424, 'duration': 2.262}, {'end': 3542.531, 'text': 'We want to create an expense tracker app using Python.', 'start': 3538.107, 'duration': 4.424}, {'end': 3547.376, 'text': 'So our expense tracker app would do these things.', 'start': 3543.372, 'duration': 4.004}, {'end': 3549.375, 'text': 'Number one.', 'start': 3548.174, 'duration': 1.201}, {'end': 3558.279, 'text': 'whenever we run this tracker program, it will ask you for a list of expenditures and it will keep collecting the inputs until you type zero.', 'start': 3549.375, 'duration': 8.904}], 'summary': 'Create an expense tracker app in python that collects user input for expenditures until zero is entered.', 'duration': 29.21, 'max_score': 3529.069, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM3529069.jpg'}, {'end': 3690.881, 'src': 'embed', 'start': 3657.482, 'weight': 1, 'content': [{'end': 3661.225, 'text': 'This is where we will now have to rely on the libraries within Python.', 'start': 3657.482, 'duration': 3.743}, {'end': 3672.292, 'text': 'To import a library, you can use the from keyword and then bring any library.', 'start': 3667.11, 'duration': 5.182}, {'end': 3676.594, 'text': 'So the library that we have is datetime.', 'start': 3673.093, 'duration': 3.501}, {'end': 3680.596, 'text': 'So from datetime import date.', 'start': 3677.034, 'duration': 3.562}, {'end': 3690.881, 'text': 'This is going to bring a class name date from the datetime library or the datetime module within Python into your working file.', 'start': 3681.156, 'duration': 9.725}], 'summary': 'Using python, import the datetime library to access the date class.', 'duration': 33.399, 'max_score': 3657.482, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM3657482.jpg'}, {'end': 3848.032, 'src': 'embed', 'start': 3821.396, 'weight': 5, 'content': [{'end': 3828.36, 'text': 'Our first task is even before we achieve the overall project to understand how the CSV thing really works.', 'start': 3821.396, 'duration': 6.964}, {'end': 3835.885, 'text': 'So all we want to do is make a new CSV file and then print the current date into that file and then close it.', 'start': 3828.86, 'duration': 7.025}, {'end': 3838.503, 'text': 'So this is the first task that we will do.', 'start': 3836.721, 'duration': 1.782}, {'end': 3844.108, 'text': 'Once we get comfortable with that process, then we will kind of build our expense tracker around it,', 'start': 3838.703, 'duration': 5.405}, {'end': 3848.032, 'text': 'so that every expense that you type will go and sit into the CSV file.', 'start': 3844.108, 'duration': 3.924}], 'summary': 'Understanding csv functionality and creating an expense tracker with csv file integration.', 'duration': 26.636, 'max_score': 3821.396, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM3821396.jpg'}, {'end': 3943.859, 'src': 'embed', 'start': 3913.071, 'weight': 4, 'content': [{'end': 3919.518, 'text': 'In this case, since we need to write data to the test.csv file, we need to open it in the writing mode.', 'start': 3913.071, 'duration': 6.447}, {'end': 3923.804, 'text': 'So we will use the with statement and then use open.', 'start': 3920.481, 'duration': 3.323}, {'end': 3927.647, 'text': 'Open is a function that is now available to us.', 'start': 3924.584, 'duration': 3.063}, {'end': 3934.552, 'text': 'And then we will say open file name in write mode as a file.', 'start': 3928.307, 'duration': 6.245}, {'end': 3939.776, 'text': 'So we have opened the file and then within this file, we will now put our data.', 'start': 3935.473, 'duration': 4.303}, {'end': 3943.859, 'text': 'To put the data, we need to use a CSV writer.', 'start': 3940.337, 'duration': 3.522}], 'summary': 'To write data to test.csv, open in writing mode & use csv writer.', 'duration': 30.788, 'max_score': 3913.071, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM3913071.jpg'}, {'end': 3999.382, 'src': 'embed', 'start': 3972.882, 'weight': 3, 'content': [{'end': 3976.626, 'text': "So because it's a CSV writer, you can either write a row or multiple rows.", 'start': 3972.882, 'duration': 3.744}, {'end': 3980.77, 'text': "We'll just write a single row, which is equal to the date value.", 'start': 3976.846, 'duration': 3.924}, {'end': 3985.275, 'text': "So we'll just say DT and then we'll just close the file.", 'start': 3981.391, 'duration': 3.884}, {'end': 3993.216, 'text': "Let's just run this program and then we will see the result and then I'll come back and explain any missing bits.", 'start': 3986.769, 'duration': 6.447}, {'end': 3995.078, 'text': "So it didn't run.", 'start': 3993.896, 'duration': 1.182}, {'end': 3999.382, 'text': 'You can see that while the test.csv now appeared here, it is blank.', 'start': 3995.218, 'duration': 4.164}], 'summary': 'Csv writer can write single or multiple rows. program failed to write data to test.csv.', 'duration': 26.5, 'max_score': 3972.882, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM3972882.jpg'}, {'end': 4079.799, 'src': 'embed', 'start': 4051.936, 'weight': 2, 'content': [{'end': 4055.98, 'text': 'And then each letter is comma separated, including the hyphens in the date.', 'start': 4051.936, 'duration': 4.044}, {'end': 4059.863, 'text': "So this is a meaningless format and it doesn't really work for us.", 'start': 4056.46, 'duration': 3.403}, {'end': 4062.465, 'text': "I'm going to close this and I'll come back here.", 'start': 4060.423, 'duration': 2.042}, {'end': 4068.03, 'text': "Let's introduce a different function that can actually take the date and format it.", 'start': 4062.585, 'duration': 5.445}, {'end': 4073.134, 'text': 'So we can use the dt.strfTime.', 'start': 4068.65, 'duration': 4.484}, {'end': 4075.536, 'text': 'So strfTime is a special function.', 'start': 4073.534, 'duration': 2.002}, {'end': 4079.799, 'text': 'What it can do is it can convert the date time values into a specific string.', 'start': 4075.696, 'duration': 4.103}], 'summary': 'Introduction of dt.strftime function for date formatting.', 'duration': 27.863, 'max_score': 4051.936, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM4051936.jpg'}], 'start': 3463.275, 'title': 'Python expense tracker and csv files', 'summary': 'Discusses the creation of an expense tracker app using python, covering loops, lists, external file handling, and libraries. it also explores working with the csv package to format data and address date formatting errors.', 'chapters': [{'end': 3772.258, 'start': 3463.275, 'title': 'Developing a python expense tracker', 'summary': "Discusses the importance of finding one's own coding style and mindset while learning programming, and then delves into the creation of an expense tracker app using python, which collects and saves expenses to a csv file with timestamps, providing an opportunity to learn about loops, lists, external file handling, and libraries within python.", 'duration': 308.983, 'highlights': ["The chapter emphasizes the importance of finding one's own coding style and mindset while learning programming, with no right or wrong way initially, and the focus on becoming comfortable and thinking in the language. The key point is to focus on finding one's own coding style and mindset while learning programming, with no right or wrong way initially, and the emphasis on becoming comfortable and thinking in the language.", 'The chapter introduces the creation of an expense tracker app using Python, which collects and saves expenses to a CSV file with timestamps, providing an opportunity to learn about loops, lists, external file handling, and libraries within Python. The chapter introduces the creation of an expense tracker app using Python, emphasizing the collection and saving of expenses to a CSV file with timestamps, and the opportunity to learn about loops, lists, external file handling, and libraries within Python.', 'The chapter explains the process of importing the datetime library in Python and using the date class to obtain the current date for timestamping expenses. The chapter explains the process of importing the datetime library in Python and using the date class to obtain the current date for timestamping expenses.']}, {'end': 4129.145, 'start': 3772.559, 'title': 'Working with csv files in python', 'summary': 'Discusses using the csv package in python to create, write, and format data into a csv file, and it includes addressing errors in formatting the date data.', 'duration': 356.586, 'highlights': ['The chapter explains the process of creating a new CSV file, printing the current date into the file, and closing it as the initial task. Creating a new CSV file, printing the current date, and closing the file.', 'It demonstrates the use of the CSV package in Python for opening a file and adding data in writing mode. Usage of CSV package for opening a file and adding data in writing mode.', 'The chapter discusses the utilization of the CSV writer to write the date value into the CSV file and addresses the need to convert the date into a string format to resolve errors. Utilization of CSV writer, converting date into a string format to resolve errors.', 'It introduces the use of the strfTime function to convert date time values into a specific string format, showcasing an example of formatting the date. Introduction of strfTime function for date time value conversion, showcasing an example of date formatting.']}], 'duration': 665.87, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM3463275.jpg', 'highlights': ['The chapter introduces the creation of an expense tracker app using Python, emphasizing the collection and saving of expenses to a CSV file with timestamps, and the opportunity to learn about loops, lists, external file handling, and libraries within Python.', 'The chapter explains the process of importing the datetime library in Python and using the date class to obtain the current date for timestamping expenses.', 'It introduces the use of the strfTime function to convert date time values into a specific string format, showcasing an example of formatting the date.', 'The chapter discusses the utilization of the CSV writer to write the date value into the CSV file and addresses the need to convert the date into a string format to resolve errors.', 'Usage of CSV package for opening a file and adding data in writing mode.', 'The chapter explains the process of creating a new CSV file, printing the current date, and closing the file.', "The chapter emphasizes the importance of finding one's own coding style and mindset while learning programming, with no right or wrong way initially, and the emphasis on becoming comfortable and thinking in the language."]}, {'end': 4917.698, 'segs': [{'end': 4202.426, 'src': 'heatmap', 'start': 4136.85, 'weight': 0.951, 'content': [{'end': 4141.935, 'text': 'it is still taking the string and because it is a string, it is adding commas everywhere.', 'start': 4136.85, 'duration': 5.085}, {'end': 4145.598, 'text': 'this is kind of like not working as desired.', 'start': 4141.935, 'duration': 3.663}, {'end': 4152.724, 'text': 'so the correct way to do this is we take the date and if we pass the date as a list like this,', 'start': 4145.598, 'duration': 7.126}, {'end': 4157.688, 'text': 'then each item in the list will become one value of the csv.', 'start': 4152.724, 'duration': 4.964}, {'end': 4161.071, 'text': "so if i run this now, i'll get a single value.", 'start': 4157.688, 'duration': 3.383}, {'end': 4162.712, 'text': 'in the csv there is no comma.', 'start': 4161.071, 'duration': 1.641}, {'end': 4170.848, 'text': "But if I, for example, have date, comma 8, just another value there, it could be 8, it could be 72, it doesn't matter.", 'start': 4163.546, 'duration': 7.302}, {'end': 4176.09, 'text': 'Then I would have the date and then 8.', 'start': 4171.349, 'duration': 4.741}, {'end': 4177.63, 'text': 'So this is really the key here.', 'start': 4176.09, 'duration': 1.54}, {'end': 4184.831, 'text': 'Now that we have the current date and a comma with any value that can be added, that value needs to be the expenditure value.', 'start': 4177.91, 'duration': 6.921}, {'end': 4187.852, 'text': "So let's go ahead and build the whole mechanism now.", 'start': 4185.27, 'duration': 2.582}, {'end': 4195.66, 'text': 'We have a mechanism to write the date and any number in a list format like this.', 'start': 4191.417, 'duration': 4.243}, {'end': 4202.426, 'text': 'All we want to do is just do this in a loop as long as the value that I type is not zero.', 'start': 4196.281, 'duration': 6.145}], 'summary': 'Converting date to list for csv, avoiding unwanted commas, ensuring expenditure value integration.', 'duration': 65.576, 'max_score': 4136.85, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM4136850.jpg'}, {'end': 4514.651, 'src': 'embed', 'start': 4484.854, 'weight': 4, 'content': [{'end': 4488.096, 'text': 'So with this approach, what it will do is it will not add any new line.', 'start': 4484.854, 'duration': 3.242}, {'end': 4489.777, 'text': "So let's run this now.", 'start': 4488.836, 'duration': 0.941}, {'end': 4494.377, 'text': '12, 18, 10, 19, 0.', 'start': 4489.797, 'duration': 4.58}, {'end': 4495.618, 'text': 'So these are my expenses.', 'start': 4494.377, 'duration': 1.241}, {'end': 4498.62, 'text': 'If I go to my CSV, it looks pretty good.', 'start': 4495.758, 'duration': 2.862}, {'end': 4499.841, 'text': 'Everything is fine.', 'start': 4499.06, 'duration': 0.781}, {'end': 4506.305, 'text': 'But you might notice another problem, which is every time you run the program, it rewrites the value.', 'start': 4500.561, 'duration': 5.744}, {'end': 4508.147, 'text': 'So the original values are no longer there.', 'start': 4506.345, 'duration': 1.802}, {'end': 4508.747, 'text': "They're gone.", 'start': 4508.207, 'duration': 0.54}, {'end': 4510.368, 'text': 'This is a problem.', 'start': 4509.508, 'duration': 0.86}, {'end': 4514.651, 'text': 'One way to fix this is you can open the file in append mode.', 'start': 4511.209, 'duration': 3.442}], 'summary': 'Using append mode prevents overwriting original values in the file.', 'duration': 29.797, 'max_score': 4484.854, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM4484854.jpg'}, {'end': 4683.94, 'src': 'heatmap', 'start': 4533.724, 'weight': 0.736, 'content': [{'end': 4536.586, 'text': 'So we added a few more, three more expenses, to be honest.', 'start': 4533.724, 'duration': 2.862}, {'end': 4540.549, 'text': 'And if I go here, I will see those three added at the end.', 'start': 4536.766, 'duration': 3.783}, {'end': 4544.492, 'text': "Because I'm running all this program today, the date is not going to change.", 'start': 4541.069, 'duration': 3.423}, {'end': 4547.574, 'text': 'If you want, you can actually add a date timestamp.', 'start': 4545.072, 'duration': 2.502}, {'end': 4551.436, 'text': "But for something like expense tracking, you don't need that level of precision.", 'start': 4547.694, 'duration': 3.742}, {'end': 4553.938, 'text': 'But if you want, you can definitely try that.', 'start': 4552.057, 'duration': 1.881}, {'end': 4562.52, 'text': "But whenever in future you're watching and you run this program, you will see that data as of your system and the data added there.", 'start': 4554.918, 'duration': 7.602}, {'end': 4568.421, 'text': 'So this is how we can build a very, very simple expense tracker.', 'start': 4563.7, 'duration': 4.721}, {'end': 4578.483, 'text': 'While this is all good, it is a nuisance to run this tracker project from the VS code or your Python ID every time you want to keep track of expenses.', 'start': 4569.201, 'duration': 9.282}, {'end': 4590.28, 'text': 'So here is how you can actually launch this and keep track of expenses without even using any of the Visual Studio kind of environment.', 'start': 4582.153, 'duration': 8.127}, {'end': 4597.926, 'text': 'Just go to pipe command prompt and navigate to the folder where your file is.', 'start': 4591.901, 'duration': 6.025}, {'end': 4605.933, 'text': 'So this is my folder where I have saved my tracker project and type py space tracker project dot py.', 'start': 4598.107, 'duration': 7.826}, {'end': 4612.441, 'text': 'So this is automatically it will launch Python and then run this program for you.', 'start': 4606.834, 'duration': 5.607}, {'end': 4616.046, 'text': 'So it says what is the expense? Type 0 to stop.', 'start': 4613.242, 'duration': 2.804}, {'end': 4618.609, 'text': "We've been typing 12, 18, 10 for a while.", 'start': 4616.566, 'duration': 2.043}, {'end': 4619.89, 'text': "So I'm going to try different numbers.", 'start': 4618.629, 'duration': 1.261}, {'end': 4627.285, 'text': '78, 90, 34, 54, 0.', 'start': 4619.91, 'duration': 7.375}, {'end': 4632.131, 'text': "I'll get my total expenses today are this and your total is 256.", 'start': 4627.287, 'duration': 4.844}, {'end': 4639.016, 'text': 'So if you want you can get check the result in the CSV file here or alternatively you can go to your Windows Explorer.', 'start': 4632.131, 'duration': 6.885}, {'end': 4644.36, 'text': "So I'm just going to bring up my folder here and this is my test.csv file.", 'start': 4639.696, 'duration': 4.664}, {'end': 4646.14, 'text': 'It has all the expenses.', 'start': 4645.06, 'duration': 1.08}, {'end': 4654.102, 'text': 'I can double click on it to open this in Microsoft Excel and just see that the values are nicely coming up in both columns.', 'start': 4646.24, 'duration': 7.862}, {'end': 4663.725, 'text': 'I have got my date column here and my expenditure column here and I can use some sort of analysis within Excel to summarize this by day or whatever.', 'start': 4654.182, 'duration': 9.543}, {'end': 4666.07, 'text': 'Another way to analyze this data is.', 'start': 4664.269, 'duration': 1.801}, {'end': 4674.094, 'text': 'we can use more Python programs to look at the data and then ask questions or summarize the expenditure by day,', 'start': 4666.07, 'duration': 8.024}, {'end': 4678.537, 'text': 'or keep track of the trend or do some further analysis within Python.', 'start': 4674.094, 'duration': 4.443}, {'end': 4683.94, 'text': 'That is all out of scope for this video, but you can take those up as a challenge.', 'start': 4679.297, 'duration': 4.643}], 'summary': 'A simple expense tracker program can be launched and used without visual studio, tracking expenses and analyzing data.', 'duration': 150.216, 'max_score': 4533.724, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM4533724.jpg'}, {'end': 4578.483, 'src': 'embed', 'start': 4554.918, 'weight': 0, 'content': [{'end': 4562.52, 'text': "But whenever in future you're watching and you run this program, you will see that data as of your system and the data added there.", 'start': 4554.918, 'duration': 7.602}, {'end': 4568.421, 'text': 'So this is how we can build a very, very simple expense tracker.', 'start': 4563.7, 'duration': 4.721}, {'end': 4578.483, 'text': 'While this is all good, it is a nuisance to run this tracker project from the VS code or your Python ID every time you want to keep track of expenses.', 'start': 4569.201, 'duration': 9.282}], 'summary': 'Create a simple expense tracker to manage and monitor expenses efficiently.', 'duration': 23.565, 'max_score': 4554.918, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM4554918.jpg'}, {'end': 4735.631, 'src': 'embed', 'start': 4691.887, 'weight': 1, 'content': [{'end': 4693.627, 'text': 'How do I take my learning ahead?', 'start': 4691.887, 'duration': 1.74}, {'end': 4695.928, 'text': 'Here are some suggestions for you.', 'start': 4694.547, 'duration': 1.381}, {'end': 4698.408, 'text': 'Number one, practice the ideas.', 'start': 4696.648, 'duration': 1.76}, {'end': 4704.409, 'text': 'There is a lot of interesting and powerful concepts I have introduced in this hour long video.', 'start': 4698.848, 'duration': 5.561}, {'end': 4711.671, 'text': 'So I highly recommend that you set aside time and apply all of these ideas in various parts of your life.', 'start': 4705.01, 'duration': 6.661}, {'end': 4716.232, 'text': 'And the second suggestion that I have for you is do a project.', 'start': 4712.691, 'duration': 3.541}, {'end': 4724.427, 'text': 'Pick a project from your hobbies or your personal life or your work life and try to do that using Python.', 'start': 4717.045, 'duration': 7.382}, {'end': 4733.95, 'text': 'For example, both my kids are learning how to do programming with Python and my son recently has been doing a Python project on his own.', 'start': 4725.188, 'duration': 8.762}, {'end': 4735.631, 'text': 'I asked him what are you doing?', 'start': 4734.19, 'duration': 1.441}], 'summary': 'To advance learning, practice ideas and do a python project.', 'duration': 43.744, 'max_score': 4691.887, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM4691887.jpg'}, {'end': 4837.277, 'src': 'heatmap', 'start': 4775.7, 'weight': 0.745, 'content': [{'end': 4780.503, 'text': 'i highly recommend checking out the python crash course book by eric mathis.', 'start': 4775.7, 'duration': 4.803}, {'end': 4782.764, 'text': 'we, as in all four of us in our family,', 'start': 4780.503, 'duration': 2.261}, {'end': 4791.849, 'text': 'have read this book and thoroughly enjoyed this book and used it to learn python quite deeply and well in a span of couple of months.', 'start': 4782.764, 'duration': 9.085}, {'end': 4793.41, 'text': 'so yeah, please check that book out.', 'start': 4791.849, 'duration': 1.561}, {'end': 4795.912, 'text': 'i have got a link for that in the video description below.', 'start': 4793.41, 'duration': 2.502}, {'end': 4800.216, 'text': 'The fourth recommendation that I have for you, when it comes to learning Python or, in fact,', 'start': 4796.252, 'duration': 3.964}, {'end': 4805.2, 'text': 'when it comes to learning anything a little bit technical, is take it slow and give it time.', 'start': 4800.216, 'duration': 4.984}, {'end': 4813.888, 'text': 'Do not feel pressurized or rushed and think that, you know, if I learn for a week or three hours or 10 days, I will learn Python.', 'start': 4805.82, 'duration': 8.068}, {'end': 4819.73, 'text': 'Python or any other programming language for that matter does take its own sweet little time.', 'start': 4814.508, 'duration': 5.222}, {'end': 4825.372, 'text': 'To give you a simple example, I have been programming for about 26 years in my life.', 'start': 4820.37, 'duration': 5.002}, {'end': 4834.355, 'text': 'And even then, when I started learning Python earlier this year, it took me a good three months to really understand where everything is and,', 'start': 4826.212, 'duration': 8.143}, {'end': 4837.277, 'text': 'you know, feel comfortable with the language.', 'start': 4834.835, 'duration': 2.442}], 'summary': 'Python crash course book by eric mathis is recommended for learning python deeply, taking time is important as it took 3 months for an experienced programmer to understand python.', 'duration': 61.577, 'max_score': 4775.7, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM4775700.jpg'}, {'end': 4825.372, 'src': 'embed', 'start': 4800.216, 'weight': 3, 'content': [{'end': 4805.2, 'text': 'when it comes to learning anything a little bit technical, is take it slow and give it time.', 'start': 4800.216, 'duration': 4.984}, {'end': 4813.888, 'text': 'Do not feel pressurized or rushed and think that, you know, if I learn for a week or three hours or 10 days, I will learn Python.', 'start': 4805.82, 'duration': 8.068}, {'end': 4819.73, 'text': 'Python or any other programming language for that matter does take its own sweet little time.', 'start': 4814.508, 'duration': 5.222}, {'end': 4825.372, 'text': 'To give you a simple example, I have been programming for about 26 years in my life.', 'start': 4820.37, 'duration': 5.002}], 'summary': 'Learning technical skills like python takes time; 26 years of experience.', 'duration': 25.156, 'max_score': 4800.216, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM4800216.jpg'}, {'end': 4915.796, 'src': 'heatmap', 'start': 4875.306, 'weight': 0.745, 'content': [{'end': 4878.809, 'text': 'And the final recommendation I have for you is enjoy the journey.', 'start': 4875.306, 'duration': 3.503}, {'end': 4887.321, 'text': "anything when you are learning, if you're having fun and if you are really happy with the process, then you will learn it better,", 'start': 4880.06, 'duration': 7.261}, {'end': 4890.722, 'text': 'you will remember it better and you will cherish the whole experience.', 'start': 4887.321, 'duration': 3.401}, {'end': 4899.444, 'text': 'Some of my favorite learning experiences back from school or college days are when I was really engaged and happy with the whole process.', 'start': 4891.282, 'duration': 8.162}, {'end': 4901.304, 'text': 'So enjoy the process.', 'start': 4900.004, 'duration': 1.3}, {'end': 4910.57, 'text': 'And if you feel like you know one way of learning Python is a little too clumsy or depressing for you, go and choose another way of learning it,', 'start': 4901.424, 'duration': 9.146}, {'end': 4911.632, 'text': 'whatever works for you.', 'start': 4910.57, 'duration': 1.062}, {'end': 4912.833, 'text': 'go with that.', 'start': 4911.632, 'duration': 1.201}, {'end': 4915.796, 'text': 'i wish you all the best with your python journey.', 'start': 4912.833, 'duration': 2.963}], 'summary': 'Enjoy the learning process for better retention and a fulfilling experience.', 'duration': 40.49, 'max_score': 4875.306, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM4875306.jpg'}], 'start': 4130.046, 'title': 'Csv data processing and expense tracker creation', 'summary': 'Covers csv data processing mechanism including converting input into a list format and iterating through the input. it also explains creating a simple expense tracker using python, detailing the steps involved and offering suggestions for advancing python learning.', 'chapters': [{'end': 4270.777, 'start': 4130.046, 'title': 'Csv data processing mechanism', 'summary': 'Explores the mechanism for processing and writing csv data, converting input into a list format, and iterating through the input until a zero value is encountered.', 'duration': 140.731, 'highlights': ['The mechanism involves converting the input into a list format and iterating through it until a zero value is encountered. The mechanism involves converting the input into a list format and iterating through it until a zero value is encountered.', 'The program stops when a zero value is encountered and proceeds with further operations if the input is not zero. The program stops when a zero value is encountered and proceeds with further operations if the input is not zero.', 'The input is converted into an integer and then stored in a list if it is not zero. The input is converted into an integer and then stored in a list if it is not zero.']}, {'end': 4917.698, 'start': 4270.777, 'title': 'Creating a simple expense tracker', 'summary': 'Explains how to build a simple expense tracker using python, detailing the steps involved, the challenges encountered, and offering suggestions for advancing python learning.', 'duration': 646.921, 'highlights': ['The chapter explains how to build a simple expense tracker using Python The chapter details the process of building an expense tracker using Python, demonstrating the steps involved in creating the program and utilizing CSV files for data storage.', "The program rewrites the value every time it is run, causing the original contents to be lost The program's issue of overwriting the values each time it runs is highlighted, impacting the retention of original data and presenting a challenge for data integrity.", 'Recommendation to practice the ideas and apply them in various aspects of life The recommendation to practice the concepts introduced in the tutorial and apply them in different contexts is provided, emphasizing the importance of practical application for learning.', 'Suggestion to do a project using Python, such as tracking and analyzing statistics of a game The suggestion to undertake a personal project using Python, exemplified by the scenario of tracking and analyzing game statistics, is presented as a way to apply learned skills in a meaningful manner.', 'Encouragement to take the learning process slow and give it time The encouragement to approach the learning process of Python slowly and patiently is emphasized, highlighting the need to avoid rushing through the learning journey and allowing adequate time for understanding the language.']}], 'duration': 787.652, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/uoC48wrJ-yM/pics/uoC48wrJ-yM4130046.jpg', 'highlights': ['The chapter details the process of building an expense tracker using Python, demonstrating the steps involved in creating the program and utilizing CSV files for data storage.', 'The recommendation to practice the concepts introduced in the tutorial and apply them in different contexts is provided, emphasizing the importance of practical application for learning.', 'The suggestion to undertake a personal project using Python, exemplified by the scenario of tracking and analyzing game statistics, is presented as a way to apply learned skills in a meaningful manner.', 'The encouragement to approach the learning process of Python slowly and patiently is emphasized, highlighting the need to avoid rushing through the learning journey and allowing adequate time for understanding the language.', "The program's issue of overwriting the values each time it runs is highlighted, impacting the retention of original data and presenting a challenge for data integrity."]}], 'highlights': ['Learn python from beginner to advanced level with 3 practical projects, covering python fundamentals, libraries, objects, list operations, multiplication table creation, and expense tracker app development with csv file handling.', 'The video promises to teach Python programming through practical projects, including the creation of a simple expense tracker app using Python that can save expenses to a CSV file with date and timestamp.', 'The chapter introduces the creation of an expense tracker app using Python, emphasizing the collection and saving of expenses to a CSV file with timestamps, and the opportunity to learn about loops, lists, external file handling, and libraries within Python.', 'The chapter details the process of building an expense tracker using Python, demonstrating the steps involved in creating the program and utilizing CSV files for data storage.', 'Using existing code through libraries is crucial to avoid writing everything from scratch and to leverage functionalities like printing, data analysis, and automation.', 'The program utilizes a while loop to repeatedly prompt the user for their expenses until they enter zero to stop, offering a user-friendly way to input multiple expenditures.', 'The chapter discusses the increasing demand for Python skills in the data profession, with many companies now seeking Python proficiency for data-related roles.', "The program's goal is to prompt users for their name and age, then calculate and display the years remaining before they turn 50.", 'The chapter covers Python module usage, coding with visual studio code, and introduces programming concepts such as keywords, variables, data types, conditions, loops, functions, and operators.', 'The chapter explains the process of importing the datetime library in Python and using the date class to obtain the current date for timestamping expenses.']}