├── .gitignore
├── 100+ Python challenging programming exercises.md
├── README.md
├── Solutions.sublime-project
├── cse231
├── anagrams
│ ├── anagrams.py
│ └── shortWordList.txt
└── number_guessing_game.py
├── my_solutions
├── Solution2.py
├── Solution3problem.py
├── Solutions.sublime-project
├── Sublime Shortcus.md
├── __pycache__
│ └── Solution2.cpython-34.pyc
├── empty.sublime-workspace
├── empty.txt
├── ex3io.py
├── ex4arraymaps.py
└── exercise1; List Comprehensions.ipynb.py
├── python contents.docx
└── python contents.txt
/.gitignore:
--------------------------------------------------------------------------------
1 | ### Python template
2 | # Byte-compiled / optimized / DLL files
3 | __pycache__/
4 | *.py[cod]
5 | *$py.class
6 |
7 | # C extensions
8 | *.so
9 |
10 | # Distribution / packaging
11 | .Python
12 | env/
13 | build/
14 | develop-eggs/
15 | dist/
16 | downloads/
17 | eggs/
18 | .eggs/
19 | lib/
20 | lib64/
21 | parts/
22 | sdist/
23 | var/
24 | *.egg-info/
25 | .installed.cfg
26 | *.egg
27 |
28 | # PyInstaller
29 | # Usually these files are written by a python script from a template
30 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
31 | *.manifest
32 | *.spec
33 |
34 | # Installer logs
35 | pip-log.txt
36 | pip-delete-this-directory.txt
37 |
38 | # Unit test / coverage reports
39 | htmlcov/
40 | .tox/
41 | .coverage
42 | .coverage.*
43 | .cache
44 | nosetests.xml
45 | coverage.xml
46 | *,cover
47 | .hypothesis/
48 |
49 | # Translations
50 | *.mo
51 | *.pot
52 |
53 | # Django stuff:
54 | *.log
55 | local_settings.py
56 |
57 | # Flask instance folder
58 | instance/
59 |
60 | # Scrapy stuff:
61 | .scrapy
62 |
63 | # Sphinx documentation
64 | docs/_build/
65 |
66 | # PyBuilder
67 | target/
68 |
69 | # IPython Notebook
70 | .ipynb_checkpoints
71 |
72 | # pyenv
73 | .python-version
74 |
75 | # celery beat schedule file
76 | celerybeat-schedule
77 |
78 | # dotenv
79 | .env
80 |
81 | # virtualenv
82 | venv/
83 | ENV/
84 |
85 | # Spyder project settings
86 | .spyderproject
87 |
88 | # Rope project settings
89 | .ropeproject
90 | ### JetBrains template
91 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
92 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
93 |
94 | # User-specific stuff:
95 | .idea/workspace.xml
96 | .idea/tasks.xml
97 | .idea/dictionaries
98 | .idea/vcs.xml
99 | .idea/jsLibraryMappings.xml
100 |
101 | # Sensitive or high-churn files:
102 | .idea/dataSources.ids
103 | .idea/dataSources.xml
104 | .idea/dataSources.local.xml
105 | .idea/sqlDataSources.xml
106 | .idea/dynamic.xml
107 | .idea/uiDesigner.xml
108 |
109 | # Gradle:
110 | .idea/gradle.xml
111 | .idea/libraries
112 |
113 | # Mongo Explorer plugin:
114 | .idea/mongoSettings.xml
115 |
116 | ## File-based project format:
117 | *.iws
118 |
119 | ## Plugin-specific files:
120 |
121 | # IntelliJ
122 | /out/
123 |
124 | # mpeltonen/sbt-idea plugin
125 | .idea_modules/
126 |
127 | # JIRA plugin
128 | atlassian-ide-plugin.xml
129 |
130 | # Crashlytics plugin (for Android Studio and IntelliJ)
131 | com_crashlytics_export_strings.xml
132 | crashlytics.properties
133 | crashlytics-build.properties
134 | fabric.properties
135 |
136 | # Created by .ignore support plugin (hsz.mobi)
137 |
138 | # Sublime
139 | *.sublime-project
140 | *.sublime-workspace
141 |
--------------------------------------------------------------------------------
/100+ Python challenging programming exercises.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleverProgrammer/Python-programming-exercises/1d525b54cca34ee38247891817c34747c1fb7508/100+ Python challenging programming exercises.md
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 0 - 100 Real Quick (Python Problems)
2 |
3 | Today, 2015 August 21st, I am going to embark on a journey of completing 100 python problems. Ranging from increasing complexities from 1-3.
4 |
5 | ### Complexity Scale:
6 |
7 | Easy | Medium | Hard
8 | --- | --- | ---
9 | 1 | 2 | 3
10 |
11 | >“I know it seems hard sometimes but remember one thing.
12 | >Through every dark night, there's a bright day after that.
13 | >So no matter how hard it get, stick your chest out,
14 | >keep ya head up.... and handle it.”
15 |
16 | ― Tupac Shakur
17 |
18 |
19 |
20 | ```python
21 | python = 'is going to be the language of choice'
22 |
23 | def anti_vowel(text):
24 | text = text.lower()
25 | vowels = ['a','e','i','o','u']
26 | return ''.join([x for x in text if x not in vowels])
27 |
28 | anti_vowel(python)
29 | Output: 's gng t b th lngg f chc'
30 | ```
31 |
32 | You are welcome to work on these with me and send request pull your solutions! I promise I won't look at your solutions haha. Only for cross-checking once I complete my solution. Perhaps this repository might be of use to other learners who can see multiple solutions to a problem.
33 |
34 | In any case...
35 | # Here... We... GO! :facepunch:
36 |
--------------------------------------------------------------------------------
/Solutions.sublime-project:
--------------------------------------------------------------------------------
1 | {
2 | }
3 |
--------------------------------------------------------------------------------
/cse231/anagrams/anagrams.py:
--------------------------------------------------------------------------------
1 | """
2 | anagrams.py
3 |
4 | Author: Rafeh Qazi
5 |
6 | Modified: June 2016
7 |
8 | Copyright (C) 2016 Rafeh Qazi
9 | """
10 |
11 | from collections import Counter
12 |
13 |
14 | def read_file(file):
15 | with open(file, 'r') as f:
16 | return [word[:-1] for word in f]
17 |
18 |
19 | file_data = read_file('shortWordList.txt')
20 |
21 | # print(file_data)
22 | #
23 | # for _ in range(5):
24 | # print('\n')
25 | #
26 | # anagrams = []
27 | # for word_1 in file_data:
28 | # file_data.pop(0)
29 | # word_1_anagrams = []
30 | # for word_2 in file_data:
31 | # if Counter(word_1) == Counter(word_2):
32 | # if word_2 not in anagrams:
33 | # word_1_anagrams.append(word_2)
34 | # anagrams.append(word_2)
35 | # if word_1_anagrams:
36 | # print(word_1_anagrams)
37 |
38 | # print(anagrams)
39 |
--------------------------------------------------------------------------------
/cse231/anagrams/shortWordList.txt:
--------------------------------------------------------------------------------
1 | able
2 | acre
3 | bale
4 | beyond
5 | binary
6 | boat
7 | brainy
8 | care
9 | cat
10 | cater
11 | crate
12 | lawn
13 | list
14 | race
15 | react
16 | sheet
17 | silt
18 | slit
19 | trace
20 |
--------------------------------------------------------------------------------
/cse231/number_guessing_game.py:
--------------------------------------------------------------------------------
1 | """
2 | number_guessing_game.py
3 |
4 | Author: Rafeh Qazi
5 |
6 | Modified: June 2016
7 |
8 | Copyright (C) 2016 Rafeh Qazi
9 | """
10 |
11 |
12 | def is_good_number(number):
13 | """
14 | Let's a user know whether a number is properly formed.
15 | Each number should be 5 digits long and should not repeat numbers.
16 |
17 | :param number: str
18 | :return: boolean
19 |
20 | >>> is_good_number('12345')
21 | True
22 | >>> is_good_number('55432')
23 | False
24 | >>> is_good_number('444')
25 | False
26 | """
27 | try:
28 | int(number)
29 | except ValueError:
30 | error_message()
31 |
32 | if not int(number):
33 | return False
34 |
35 | elif len(number) != 5:
36 | return False
37 |
38 | for num in number:
39 | if number.count(num) > 1:
40 | return False
41 |
42 | return True
43 |
44 |
45 | def error_message():
46 | """
47 | Print an error message based on an ill formed number.
48 | """
49 | print('The number must be 5 digits long and should not repeat numbers.')
50 | print('Please fix your number!\n\n')
51 | return get_number()
52 |
53 |
54 | def blank_lines():
55 | """
56 | Print blank lines on a successfully formed number.
57 | """
58 | print('--------------------------------------')
59 | for _ in range(20):
60 | print()
61 |
62 |
63 | def get_number():
64 | """
65 | Ask the user for their number and retrieve that number.
66 |
67 | :return: str
68 | """
69 | user_input = input('Please enter your 5 digit number here:\n\n')
70 | if is_good_number(user_input):
71 | return user_input
72 | return error_message()
73 |
74 |
75 | def report_results(user_number, secret_number):
76 | """
77 | Report how many digits are correct.
78 | Report how many digits are in correct position.
79 |
80 | :param user_number: str
81 | :param secret_number: str
82 | :return: tuple
83 |
84 | >>> report_results('54321', '12345')
85 | (5, 1)
86 | >>> report_results('25314', '23514')
87 | (5, 3)
88 | """
89 | correct_digits = 0
90 | correct_pos_digits = 0
91 |
92 | for digit in user_number:
93 | if digit in secret_number:
94 | correct_digits += 1
95 |
96 | for i in range(len(user_number)):
97 | if user_number[i] == secret_number[i]:
98 | correct_pos_digits += 1
99 |
100 | return correct_digits, correct_pos_digits
101 |
102 |
103 |
104 | def player_progress(num_of_guesses, user_guess, correct_digits, correct_pos_digits):
105 | """
106 | Report the player's current progress.
107 |
108 | Nums of guesses, their guess, num of correct digits,
109 | and num of digits in the correct position.
110 |
111 | :param num_of_guesses: int
112 | :param user_guess: str
113 | :param correct_digits: int
114 | :param correct_pos_digits: int
115 |
116 | >>> player_progress(5, '12345', 4, 3)
117 | ------------------------------
118 | Used guesses: 5
119 | User guess: 12345
120 | Digits correct: 4
121 | Digits in correct position: 3
122 | ------------------------------
123 | """
124 |
125 | print('------------------------------')
126 | print('Used guesses: {}'.format(num_of_guesses))
127 | print('User guess: {}'.format(user_guess))
128 | print('Digits correct: {}'.format(correct_digits))
129 | print('Digits in correct position: {}'.format(correct_pos_digits))
130 | print('------------------------------')
131 |
132 |
133 | def success_message(num_of_guesses):
134 | """
135 | If user guesses the secret number successfully,
136 | show how many guesses were used.
137 |
138 | :param num_of_guesses: int
139 |
140 | >>> success_message(5)
141 | Congratulations! You have successfully guessed the secret number!
142 | It took you 5 guesses to get it right!
143 | """
144 |
145 | print('Congratulations! You have successfully guessed the secret number!')
146 | print('It took you {} guesses to get it right!'.format(num_of_guesses))
147 |
148 |
149 | def guesses_exceeded(allowed_guesses, num_of_guesses):
150 | """
151 | Set the maximum number of guesses and notify the user
152 | that they lost when they exceed the limit.
153 |
154 | :param allowed_guesses: int
155 | :param num_of_guesses: int
156 |
157 | >>> guesses_exceeded(5, 6)
158 | Allowed guesses: 5
159 | Used guesses: 6
160 | You have exceeded your limit of guesses and you still did not get it correct, you lose!
161 | """
162 |
163 | print('Allowed guesses: {}'.format(allowed_guesses))
164 | print('Used guesses: {}'.format(num_of_guesses))
165 | print('You have exceeded your limit of guesses and you still did not get it correct, you lose!')
166 |
167 |
168 | def win(user_number, secret_number):
169 | return report_results(user_number, secret_number)[1] == len(secret_number)
170 |
171 |
172 | def main():
173 | """
174 | Number guessing game logic
175 | """
176 | max_guesses = int(input('Enter the max number of allowed guesses: '))
177 | secret_number = get_number()
178 | num_of_guesses = 0
179 | blank_lines()
180 | while (input('Press Q or q to quit, anything else to continue playing: ').lower()) != 'q':
181 | guess = get_number()
182 | num_of_guesses += 1
183 | correct_digits, correct_pos_digits = report_results(guess, secret_number)
184 | player_progress(num_of_guesses, guess, correct_digits, correct_pos_digits)
185 |
186 | if win(guess, secret_number):
187 | return success_message(num_of_guesses)
188 |
189 | if num_of_guesses > max_guesses:
190 | return guesses_exceeded(max_guesses, num_of_guesses)
191 |
192 |
193 | if __name__ == '__main__':
194 | import doctest
195 |
196 | doctest.testmod()
197 | main()
198 |
--------------------------------------------------------------------------------
/my_solutions/Solution2.py:
--------------------------------------------------------------------------------
1 | '''
2 | Working I/O Template
3 |
4 |
5 | Problem Statement
6 | This is an introductory challenge. The purpose of this challenge is to give you a working I/O template in your preferred language. It includes scanning two integers from STDIN, calling a function,
7 | returning a value, and printing it to STDOUT.
8 |
9 | The task is to scan two numbers from STDIN, and print the sum A+B on STDOUT. The code has already been provided for most of the popular languages. This is primarily for you to read
10 | and inspect how the IO is handled.
11 |
12 |
13 | Note: The code has been saved in a template, which you can submit if you want. Or, you may try rewriting it and building it up from scratch.
14 |
15 | Input Format
16 | (This section specifies the Input Format.)
17 | Given A and B on two different lines.
18 |
19 | Output Format
20 | (This section specifies the Output Format.)
21 | An integer that denotes Sum (A+B)
22 | Constraints
23 | (This section tells what input you can expect. You can freely assume that the input will remain within the boundaries specified.
24 | As an example here given below, A and B will never be below 1 or above 1000.)
25 | 1≤A,B≤1000
26 | Sample Input
27 |
28 | 2
29 | 3
30 |
31 |
32 | Sample Output
33 |
34 | 5
35 | The above sample should be taken seriously. The input will be 2 and 3 in two separate lines, and the output should be just one number, 5. You should not print any whitespace at the beginning of output
36 | (e.g. " 5" or "\n5"), unless specifically asked for. Also, printing any extra non-whitespace characters such as "The answer is: 5" will result in a Wrong Answer, as the judging is done using diff checker.
37 | '''
38 |
39 | # STDIN means read input.
40 |
41 | def solveMeFirst(a,b):
42 | return (a+b)
43 |
44 | user1 = int(raw_input("Put your number here: "))
45 | user2 = int(raw_input("Put your number here: "))
46 |
47 | print(solveMeFirst(user1, user2))
48 |
--------------------------------------------------------------------------------
/my_solutions/Solution3problem.py:
--------------------------------------------------------------------------------
1 | Solution3problem.py
2 |
3 | 'hi'
--------------------------------------------------------------------------------
/my_solutions/Solutions.sublime-project:
--------------------------------------------------------------------------------
1 | {
2 | }
3 |
--------------------------------------------------------------------------------
/my_solutions/Sublime Shortcus.md:
--------------------------------------------------------------------------------
1 | #SHORTCUTS
2 | ctrl+,, s Selection
3 | ctrl+,, f File
4 | ctrl+,, l Lines
5 | ctrl+,, b Block
6 |
--------------------------------------------------------------------------------
/my_solutions/__pycache__/Solution2.cpython-34.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleverProgrammer/Python-programming-exercises/1d525b54cca34ee38247891817c34747c1fb7508/my_solutions/__pycache__/Solution2.cpython-34.pyc
--------------------------------------------------------------------------------
/my_solutions/empty.sublime-workspace:
--------------------------------------------------------------------------------
1 | {
2 | "auto_complete":
3 | {
4 | "selected_items":
5 | [
6 | ]
7 | },
8 | "buffers":
9 | [
10 | ],
11 | "build_system": "",
12 | "build_system_choices":
13 | [
14 | ],
15 | "build_varint": "",
16 | "command_palette":
17 | {
18 | "height": 0.0,
19 | "last_filter": "",
20 | "selected_items":
21 | [
22 | ],
23 | "width": 0.0
24 | },
25 | "console":
26 | {
27 | "height": 0.0,
28 | "history":
29 | [
30 | ]
31 | },
32 | "distraction_free":
33 | {
34 | "menu_visible": true,
35 | "show_minimap": false,
36 | "show_open_files": false,
37 | "show_tabs": false,
38 | "side_bar_visible": false,
39 | "status_bar_visible": false
40 | },
41 | "file_history":
42 | [
43 | ],
44 | "find":
45 | {
46 | "height": 23.0
47 | },
48 | "find_in_files":
49 | {
50 | "height": 0.0,
51 | "where_history":
52 | [
53 | ]
54 | },
55 | "find_state":
56 | {
57 | "case_sensitive": false,
58 | "find_history":
59 | [
60 | "python",
61 | "github",
62 | "git",
63 | "users",
64 | "chesstastic",
65 | "sta",
66 | "git",
67 | "rafeh"
68 | ],
69 | "highlight": true,
70 | "in_selection": false,
71 | "preserve_case": false,
72 | "regex": false,
73 | "replace_history":
74 | [
75 | ],
76 | "reverse": false,
77 | "show_context": true,
78 | "use_buffer2": true,
79 | "whole_word": false,
80 | "wrap": true
81 | },
82 | "groups":
83 | [
84 | {
85 | "sheets":
86 | [
87 | ]
88 | }
89 | ],
90 | "incremental_find":
91 | {
92 | "height": 23.0
93 | },
94 | "input":
95 | {
96 | "height": 0.0
97 | },
98 | "layout":
99 | {
100 | "cells":
101 | [
102 | [
103 | 0,
104 | 0,
105 | 1,
106 | 1
107 | ]
108 | ],
109 | "cols":
110 | [
111 | 0.0,
112 | 1.0
113 | ],
114 | "rows":
115 | [
116 | 0.0,
117 | 1.0
118 | ]
119 | },
120 | "menu_visible": true,
121 | "output.find_results":
122 | {
123 | "height": 0.0
124 | },
125 | "pinned_build_system": "",
126 | "project": "empty.sublime-project",
127 | "replace":
128 | {
129 | "height": 42.0
130 | },
131 | "save_all_on_build": true,
132 | "select_file":
133 | {
134 | "height": 0.0,
135 | "last_filter": "",
136 | "selected_items":
137 | [
138 | ],
139 | "width": 0.0
140 | },
141 | "select_project":
142 | {
143 | "height": 500.0,
144 | "last_filter": "",
145 | "selected_items":
146 | [
147 | [
148 | "",
149 | "~/Dropbox/github/SublimeProjects/GitHub.sublime-project"
150 | ]
151 | ],
152 | "width": 380.0
153 | },
154 | "select_symbol":
155 | {
156 | "height": 0.0,
157 | "last_filter": "",
158 | "selected_items":
159 | [
160 | ],
161 | "width": 0.0
162 | },
163 | "selected_group": 0,
164 | "settings":
165 | {
166 | },
167 | "show_minimap": true,
168 | "show_open_files": false,
169 | "show_tabs": true,
170 | "side_bar_visible": true,
171 | "side_bar_width": 120.0,
172 | "status_bar_visible": true,
173 | "template_settings":
174 | {
175 | }
176 | }
177 |
--------------------------------------------------------------------------------
/my_solutions/empty.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleverProgrammer/Python-programming-exercises/1d525b54cca34ee38247891817c34747c1fb7508/my_solutions/empty.txt
--------------------------------------------------------------------------------
/my_solutions/ex3io.py:
--------------------------------------------------------------------------------
1 | ex3io.py
2 |
3 | Problem Statement
4 |
5 | You learnt about STDIN and STDOUT in Solve me first.
6 |
7 | This is the second challenge in the introduction series. The purpose of this challenge is to give you a working I/O template in your preferred language. It includes scanning two space-separated integers from STDIN in a loop over T lines, calling a function, returning a value, and printing it to STDOUT.
8 |
9 | A pseudo code looks like the following:
10 |
11 | read T
12 | loop from 1 to T
13 | read A and B
14 | compute the sum
15 | print value in a newline
16 | end loop
17 | The task is to scan two numbers from STDIN, and print the sum A+B on STDOUT. The code has already been provided for most of the popular languages. This is primarily for you to read and inspect how the IO is handled.
18 |
19 | Note: The code has been saved in a template, which you can submit if you want. Or, you may try rewriting it and building it up from scratch.
20 |
21 | Input Format
22 | (This section specifies the Input Format.)
23 | The first line contains T (number of test cases) followed by T lines
24 | Each line contains A and B, separated by a space.
25 |
26 | As you can see that we have provided in advance the number of lines, we discourage the use of scanning till EOF as not every language has an easy way to handle that. In fact, every HackerRank challenge is designed in such a way that multitests begin with a T line to indicate the number of lines.
27 |
28 | Output Format
29 | (This section specifies the Output Format.)
30 | An integer that denotes Sum (A+B) printed on new line for every testcase.
31 |
32 | Constraints
33 | (This section tells what input you can expect. You can freely assume that the input will remain within the boundaries specified.)
34 | 1≤T,A,B≤1000
35 |
36 | Sample Input
37 |
38 | 2
39 | 2 3
40 | 3 7
41 | Sample Output
42 |
43 | 5
44 | 10
45 | The above sample should be taken seriously. 2 in the first line describes how many lines will follow, and your test cases are 2, 3 and 3, 7 in two separate lines. Your output should be 5 and 10 printed on two separate lines. If you print extra lines or "The answer is: 5", any such extra characters in output will result in a Wrong Answer, as the judging is done using diff checker.
46 |
47 |
--------------------------------------------------------------------------------
/my_solutions/ex4arraymaps.py:
--------------------------------------------------------------------------------
1 | '''
2 |
3 | ex4arraymapping.py
4 |
5 | Turn single-spaced numbers from strings to arrays of integers and then compute the sum.
6 |
7 | '''
8 |
9 | # [in] 6
10 | # [in] 1 2 3 4 5 6
11 | # [out] 21
12 |
13 | n = input()
14 | arr = map(int,raw_input().split()) #map integers to the strings.
15 | print arr
16 | print sum(arr)
17 |
--------------------------------------------------------------------------------
/my_solutions/exercise1; List Comprehensions.ipynb.py:
--------------------------------------------------------------------------------
1 | # coding: utf-8
2 |
3 |
4 | '''
5 | 1st attempt at solution
6 | for i in range(2000,3200):
7 | if i % 7 == 0:
8 | if i % 5 != 0:
9 | print(i)
10 | '''
11 |
12 | print ([i for i in range(2000,3200) if i % 7 == 0 and i % 5 != 0])
13 |
14 |
--------------------------------------------------------------------------------
/python contents.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CleverProgrammer/Python-programming-exercises/1d525b54cca34ee38247891817c34747c1fb7508/python contents.docx
--------------------------------------------------------------------------------
/python contents.txt:
--------------------------------------------------------------------------------
1 | Python
2 | The below table largely covers the TOC for 5 popular books. Learning Python (Fourth Edition) has a more in-depth look at concepts than any of the other books. However this book also does not essentially cover some aspects that are covered in other books.
3 | No. Diving into Python The Python Standard Library by Example Python Essential Reference (4th edition) The Quick Python Book Learning Python
4 | Introductory Concepts covering installation on different OS, version history, interpreter. This section also covers questions like Why, Who, What and Where on Python.
5 | 1 1. Installing Python
6 | 2. Which Python is right for you ?
7 | 3. Python & your OS
8 | 4. Interactive Shell
9 | 5. Summary 1. Introduction (Text) 1. Tutorial Introduction
10 | 2. Lexical Conventions and Syntax 1. About Python
11 | 2. Getting Started 1. Python Q & A Session
12 | 1. Why do people use Python ?
13 | 2. Downside of using it
14 | 3. Who uses Python Today ?
15 | 4. What Can I do with Python ?
16 | 5. Python vs Language X
17 | 6. Test your Knowledge
18 | 2. How Python runs programs
19 | 1. Python Interpreter
20 | 2. Program Execution
21 | 1. Programmer View
22 | 2. Python View
23 | 3. Execution Model Variations
24 | 1. Implementation Alternatives
25 | 2. Execution Optimization Tools
26 | 3. Frozen Binaries
27 | 3. How you run programs
28 | 1. Interactive prompt
29 | 2. Your first script
30 |
31 | Python Object Types, Numeric Types, Data Structures, Control Structures, Scopes and Arguments
32 | 2 1. Your first program
33 | 2. Declaring Functions
34 | 3. Python Data types vs Other Languages
35 | 4. Documenting Functions
36 | 5. Everything is an Object
37 | 6. The Import Search Path
38 | 7. What is an Object ?
39 | 8. Indenting Code
40 | 9. Testing Modules
41 | 10. Native Datatypes
42 | 1. Dictionaries
43 | 2. List
44 | 3. Tuples
45 | 11. Variables & referencing 1. Data Structures 1. Types and Objects
46 | 2. Operators and Expressions
47 | 3. Program Structure and Control Flow
48 | 4. Functions and Functional Programming
49 | 5. Classes and Object Oriented Programming
50 | 6. Modules, Packages and Distribution
51 | 7. Input and Output
52 | 8. Execution Environment
53 | 9. Testing, Debugging, Profiling and Tuning
54 |
55 | Data Structures, Algorithms & Code simplification
56 | String & Text Handling 1. Python Overview
57 | 1. Built-in Data types
58 | 2. Control Structures
59 | 3. Module
60 | 4. OOPs
61 | 2. Basics
62 | 1. Lists
63 | 2. Dictionaries
64 | 3. Tuple
65 | 4. Sets
66 | 5. Strings
67 | 6. Control Flow
68 | 3. Functions
69 | 4. Modules and Scoping Rules
70 | 5. Python Programs 1. Introducing Python Object Types
71 | 1. Why use built-in Types ?
72 | 2. Core data types
73 | 3. Numbers, Lists, Dictionaries, Tuples, Files, Other Core Types
74 | 4. User Defined Classes
75 | 2. Numeric Types
76 | 1. Literals, Built-in tools, expression operators
77 | 2. Formats, Comparisons, Division, Precision
78 | 3. Complex Numbers
79 | 4. Hexadecimal, Octal & Binary
80 | 5. Bitwise Operations
81 | 6. Decimal, Fraction, Sets, Booleans
82 |
83 | 1. Statements & Syntax
84 | 2. Assignments, Expressions & Syntax
85 | 3. If Tests & Syntax Rules
86 | 4. Scopes
87 | 5. Arguments
88 | Built-in functions, Function Design, Recursive Functions, Introspection, Annotations, Lambda, Filter and Reduce
89 | 3 1. Power of Introspection
90 | 1. Optional and Named Arguments
91 | 2. type, str, dir and other built-in functions
92 | 3. Object References with getattr
93 | 4. Filtering Lists
94 | 5. Lambda Functions
95 | 6. Real world Lambda functions
96 | None 1. Built-in functions
97 | 2. Python run-time services None Built-in functions are covered as part of the topic above but from a numeric perspective
98 | 1. Advanced Function Topics
99 | 1. Function Design
100 | 2. Recursive Functions
101 | 3. Attributes and Annotation
102 | 4. Lambda
103 | 5. Mapping Functions over sequences
104 | 6. Filter and Reduce
105 |
106 | Special Class Attributes
107 | Display Tool
108 | OOPS, Modules
109 | 4 1. Objects and Object Orientation
110 | 1. Importing Modules
111 | 2. Defining Classes
112 | 3. Initializing and Coding Classes
113 | 4. Self & __init__
114 | 5. Instantiating Classes
115 | 6. Garbage Collection
116 | 7. Wrapper Classes
117 | 8. Special Class Methods
118 | 9. Advanced Class Methods
119 | 10. Class Attributes
120 | 11. Private Functions None Covered partially section 2 1. Packages
121 | 2. Data Types and Objects
122 | 3. Advanced Object Oriented Features 1. Modules
123 | 1. Why use Modules ?
124 | 2. Program Architecture
125 | 3. Module Search Path
126 | 4. Module Creation & Usage
127 | 5. Namespaces
128 | 6. Reloading Modules
129 | 7. Packages
130 | 2. Advanced Module Topics
131 | 1. Data Hiding in Modules
132 | 2. as Extension for import and from
133 | 3. Modules are Objects: Metaprograms
134 | 4. Transitive Module Reloads
135 | 5. Module Design Concepts
136 | 6. Module Gotchas
137 | 3. OOP
138 | 1. Why use classes ?
139 | 2. Classes & Instances
140 | 3. Attribute Inheritance Search
141 | 4. Class Method Calls
142 | 5. Class Trees
143 | 6. Class Objects & Default Behavior
144 | 7. Instance Objects are Concrete Items
145 | 8. Intercepting Python Operators
146 | 9. Classes Vs. Dictionaries
147 | 10. Class customization by Inheritance
148 | 11. Operator Overloading
149 | 12. Subclasses
150 | 13. Polymorphism in Action
151 | 14. Designing with Classes
152 | 15. Mix-in Classes
153 | Advanced Class Topics
154 | 5 None None None None 1. Advanced Class Topics
155 | 1. Extending Types by Embedding
156 | 2. Extending Types by Subclassing
157 | 3. Static and Class Methods
158 | 4. Decorators and Metaclasses
159 | 5. Class Gotchas
160 | Exceptions
161 | 6 1. Exceptions and File Handling
162 | 1. Handling Exceptions
163 | 2. Using exceptions for other purposes 1. Exceptions 1. Exceptions Basics
164 | 1. Why use Exceptions ?
165 | 2. Default Exception Handler
166 | 3. User-Defined Exceptions
167 | 4. Class Based Exceptions
168 | 5. Designing with Exceptions
169 | XML, HTTP, SOAP, Network Programming, I18N, Unicode
170 | 7 1. Regular Expressions
171 | 2. Parsing / Processing Mark-up languages (HTML, XML)
172 | 1. Unicode
173 | 3. HTTP Web Services
174 | 1. Headers
175 | 2. Debugging
176 | 4. SOAP Web Services 1. Networking
177 | 2. Internet
178 | 3. Email
179 | 4. Internationalization and Localization 1. Network Programming and Sockets
180 | 2. Internet Application Programming
181 | 3. Web Programming
182 | 4. Internet Data Handling & Encoding 1. Network, web programming 1. Unicode and Bytes Strings
183 | Miscellaneous
184 | 8 None 1. Algorithms
185 | 2. Cryptography
186 | 3. Data compression and archiving
187 | 4. Processes and Threads
188 | 5. Data persistence & exchange 1. Extending & Embedding Python 1. GUI None
189 |
--------------------------------------------------------------------------------