Buch, Englisch, 560 Seiten, Format (B × H): 187 mm x 242 mm, Gewicht: 748 g
Using Problem Solving Approach
Buch, Englisch, 560 Seiten, Format (B × H): 187 mm x 242 mm, Gewicht: 748 g
ISBN: 978-0-19-948017-3
Verlag: Hurst & Co.
Python Programming is designed as a textbook to fulfil the requirements of the first-level course in Python programming. It is suited for undergraduate degree students of computer science engineering, IT as well as computer applications. This book will enable students to apply the Python programming concepts in solving real-world problems.
The book begins with an introduction to computers, problem solving approaches, programming languages, object oriented programming, and Python programming. Separate chapters dealing with the important constructs of Python language such as control statements, functions, strings, files, data structures, classes and objects, inheritance, operator overloading, and exceptions are provided in the book.
Autoren/Hrsg.
Fachgebiete
Weitere Infos & Material
- 1 Introduction to Computers and Problem Solving Strategies
- 1.1 Introduction
- 1.2 What is a Computer?
- 1.3 History of Computers
- 1.4 Characteristics of Computers
- 1.5 Classification of Computers
- 1.6 Basic Applications of Computers
- 1.7 Stored Program Concept
- 1.7.1 Types of Stored Program Computers
- 1.8 Components and Functions of a Computer System
- 1.9 Concept of Hardware and Software
- 1.9.1 Hardware
- 1.9.2 Software
- 1.10 Central Processing Unit (CPU): Basic Architecture
- 1.11 Input and Output devices
- 1.12 Computer Memory
- 1.12.1 Memory Hierarchy
- 1.12.2 Primary Memory
- 1.12.3 Secondary Storage Devices
- 1.13 Classification of Computer Software
- 1.13.1 System Software
- 1.13.2 Application Software
- 1.14 Representation of Data: Bits and Bytes
- 1.15 Problem Solving Strategies
- 1.16 Program Design Tools: Algorithms, Flowcharts, Pseudocodes
- 1.16.1 Algorithms
- 1.16.2 Flowcharts
- 1.16.3 Pseudocodes
- 1.17 Types of Errors
- 1.18 Testing and Debugging Approaches
- Annexure 1 - Types of Operating Systems
- 2 Introduction to Object Oriented Programming (OOP)
- 2.1 Computer Programming and Programming Languages
- 2.2 Generations of Programming Languages
- 2.2.1 First Generation: Machine Language
- 2.2.2 Second Generation: Assembly Language
- 2.2.3 Third Generation: High-level Language
- 2.2.4 Fourth Generation: Very High-level Languages
- 2.2.5 Fifth Generation Programming Language
- 2.3 Programming Paradigms
- 2.3.1 Monolithic Programming
- 2.3.2 Procedural Programming
- 2.3.3 Structured Programming
- 2.3.4 Object Oriented Programming (OOP)
- 2.4 Features of Object Oriented Programming
- 2.4.1 Classes
- 2.4.2 Objects
- 2.4.3 Method and Message Passing
- 2.4.4 Inheritance
- 2.4.5 Polymorphism
- 2.4.6 Containership
- 2.4.7 Reusability
- 2.4.8 Delegation
- 2.4.9 Data Abstraction and Encapsulation
- 2.5 Merits and Demerits of Object Oriented Programming Language
- 2.6 Applications of Object Oriented Programming
- 2.7 Differences Between Popular Programming Languages
- 3 Basics of Python Programming
- 3.1 Features of Python
- 3.2 History of Python
- 3.3 The Future of Python
- 3.4 Writing and Executing First Python Program
- 3.5 Literal Constants
- 3.5.1 Numbers
- 3.5.2 Strings
- 3.6 Variables and Indentifiers
- 3.7 Data Types
- 3.7.1 Assigning or Initializing Values to Variables
- 3.7.2 Multiple Assignment
- 3.7.3 Multiple Statements on a Single Line
- 3.7.4 Boolean
- 3.8 Input Operation
- 3.9 Comments
- 3.10 Reserved Words
- 3.11 Indentation
- 3.12 Operators and Expressions
- 3.12.1 Arithmetic Operators
- 3.13.2 Comparison Operators
- 3.12.3 Assignment and In-place or Shortcut Operators
- 3.12.4 Unary Operators
- 3.12.5 Bitwise Operators
- 3.12.6 Shift Operators
- 3.12.7 Logical Operators
- 3.12.8 Membership Operators
- 3.12.9 Identity Operators
- 3.12.10 Operators Precedence and Associativity
- 3.13 Expressions in Python
- 3.14 Operations on Strings
- 3.14.1 Concatenation
- 3.14.2 Multiplication (or String Repetition)
- 3.14.3 Slice a String
- 3.15 Other Data Types
- 3.15.1 Tuples
- 3.15.2 Lists
- 3.15.3 Dictionary
- 3.16 Type Conversion
- Annexure 2 - Installing Python
- Annexure 3 - Comparison between Python 2.x and Python 3.x Versions
- Annexure 4 - Testing and Debugging
- 4 Decision Control Statements
- 4.1 Introduction to Decision Control Statements
- 4.2 Selection/Conditional Branching Statements
- 4.2.1 if Statement
- 4.2.2 if-else Statement
- 4.2.3 Nested if Statements
- 4.2.4 if-elif-else Statement
- 4.3 Basic Loop Structures/ Iterative Statements
- 4.3.1 while loop
- 4.3.2 for Loop
- 4.3.3 Selecting an appropriate loop
- 4.4 Nested Loops
- 4.5 The break Statement
- 4.6 The continue Statement
- 4.7 The pass Statement
- 4.8 The else Statement used with Loops
- Case Study 1 - Simple Calculator
- Case Study 2 - Generating a Calendar
- 5 Functions and Modules
- 5.1 Introduction
- 5.1.1 Need for Functions
- 5.2 Function Declaration and Definition
- 5.3 Function Definition
- 5.4 Function Call
- 5.4.1 Function Parameters
- 5.5 Variable Scope and Lifetime
- 5.5.1 Local and Global Variables
- 5.5.2 Using the Global Statement
- 5.5.3 Resolution of Names
- 5.6 The return statement
- 5.7 More on Defining Functions
- 5.7.1 Required Arguments
- 5.7.2 Keyword Arguments
- 5.7.3 Default Arguments
- 5.7.4 Variable-length Arguments
- 5.8 Lambda Functions or Anonymous Functions
- 5.9 Documentation Strings
- 5.10 Good Programming Practices
- 5.11 Recursive Functions
- 5.11.1 Greatest Common Divisor
- 5.11.2 Finding Exponents
- 5.11.3 The Fibonacci Series
- 5.11.4 Recursion vs Iteration
- 5.12 Modules
- 5.12.1 The fromâimport statement
- 5.12.2 Name of Module
- 5.12.3 Making your own Modules
- 5.12.4 The dir() function
- 5.12.5 The Python Module
- 5.12.6 Modules and Namespaces
- 5.13 Packages in Python
- 5.14 Standard Library modules
- 5.15 Globals(), Locals(), and Reload()
- 5.16 Function Redefinition
- Annexure 5 - Functions as Objects
- Case Study 3 - Tower of Hanoi
- Case Study 4 - Shuffling a Deck of Cards
- 6 Python Strings Revisited
- Introduction
- 6.1 Concatenating, Appending, and Multiplying Strings
- 6.2 Strings are Immutable
- 6.3 String Formatting Operator
- 6.4 Built-in String Methods and Functions
- 6.5 Slice Operation
- 6.5.1 Specifying Stride While Slicing Strings
- 6.6 ord() and chr() Functions
- 6.7 in and not in operators
- 6.8 Comparing Strings
- 6.9 Iterating String
- 6.10 The String Module
- 6.11 Regular Expressions
- 6.11.1 The match() Function
- 6.11.2 The search() Function
- 6.11.3 The sub() Function
- 6.11.4 The findall() and finditer() Functions
- 6.11.5 Flag Options
- 6.12 Metacharacters in Regular Expression
- 6.12.1 Character Classes
- 6.12.2 Groups
- 6.12.3 Application of Regular Expression to Extract Email
- 7 File Handling
- 7.1 Introduction
- 7.2 File Path
- 7.3 Types of Files
- 7.3.1 ASCII Text Files
- 7.3.2 Binary Files
- 7.4 Opening and Closing Files
- 7.4.1 The open() Function
- 7.4.2 The File Object Attributes
- 7.4.3 The close() Method
- 7.5 Reading and Writing Files
- 7.5.1 write() and writelines() Methods
- 7.5.2 append() Method
- 7.5.3 The read() and readline() Methods
- 7.5.4 Opening Files using with Keyword
- 7.5.5 Splitting Words
- 7.5.6 Some Other Useful File Methods
- 7.6 File Positions
- 7.7. Renaming and Deleting Files
- 7.8 Directory Methods
- 7.8.1 Methods from the os Module
- Case Study 5 - Creating a Hash File (or a message digest of a file)
- Case Study 6 - Mail Merge Program
- Case Study 7 - Finding Resolution of an Image
- 8 Data Structures
- 8.1 Sequence
- 8.2 Lists
- 8.2.1 Access Values in Lists
- 8.2.2 Updating Values in Lists
- 8.2.3 Nested Lists
- 8.2.4 Cloning Lists
- 8.2.5 Basic List Operations
- 8.2.6 List Methods
- 8.2.7 Using Lists as Stack
- 8.2.8 Using Lists as Queues
- 8.2.9 List Comprehensions
- 8.2.10 Looping in Lists
- 8.3 Functional Programming
- 8.3.1 filter() Function
- 8.3.2 map() Function
- 8.3.3 reduce() Function
- 8.4 Tuple
- 8.4.1 Creating Tuple
- 8.4.2 Utility of Tuples
- 8.4.3 Accessing Values in a Tuple
- 8.3.4 Updating Tuple
- 8.4.5 Deleting Elements in Tuple
- 8.4.6 Basic Tuple Operations
- 8.4.7 Tuple Assignment
- 8.4.8 Tuples for Returning Multiple Values
- 8.3.9 Nested Tuples
- 8.4.10 Checking the Index: index() method
- 8.4.11 Counting the Elements: count()Method
- 8.4.12 List Comprehension and Tuples
- 8.4.13 Variable-length Argument Tuples
- 8.4.14 The zip() Function
- 8.4.16 Advantages of Tuple over List
- 8.5 Sets
- 8.5.1 Creating a Set
- 8.6 Dictionaries
- 8.6.1 Creating a Dictionary
- 8.6.2 Accessing Values
- 8.6.2 Adding and Modifying an Item in a Dictionary
- 8.6.3 Modifying an Entry
- 8.6.4 Deleting Items
- 8.6.5 Sorting Items in a Dictionary
- 8.6.6 Looping over a Dictionary
- 8.6.7 Nested Dictionaries
- 8.6.8 Built-in Dictionary Functions and Methods
- 8.6.9 Difference between a List and a Dictionary
- 8.6.10 String Formatting with Dictionaries
- 8.6.11 When to use which Data Structure?
- 8.6.12 List vs Tuple vs Dictionary vs Set
- Annexure 6 - Iterator and Generator
- 9 Classes and Objects
- 9.1 Introduction
- 9.2 Classes and Objects
- 9.2.1 Defining Classes
- 9.2.2 Creating Objects
- 9.2.3 Data Abstraction and Hiding through Classes
- 9.3 Class Method and self Argument
- 9.4 The __init__() Method (The Class Constructor)
- 9.5 Class Variables and Object Variables
- 9.6 The __del__() Method
- 9.7 Other Special Methods
- 9.8 Public and Private Data Members
- 9.9 Private Methods
- 9.10 Calling a Class Method from Another Class Method
- 9.11 Built-in Functions to Check, Get, Set, and Delete Class Attributes
- 9.12 Built-in Class Attributes
- 9.13 Garbage Collection (Destroying Objects)
- 9.14 Class Methods
- 9.15 Static Methods
- Annexure 7 - Getters, Setters, @property, and @deleter
- 10 Inheritance
- 10.1 Introduction
- 10.2 Inheriting Classes in Python
- 10.2.1 Polymorphism and Method Overriding
- 10.3 Types of Inheritance
- 10.3.1 Multiple Inheritance
- 10.3.2 Multi-level Inheritance
- 10.3.3 Multi-path Inheritance
- 10.4 Composition or Containership or Complex Objects
- 10.5 Abstract Classes and Interfaces
- 10.6 Metaclass
- 11 Operator Overloading
- 11.1 Introduction
- 11.1.1 Concept Of Operator Overloading
- 11.1.2 Advantage of Operator Overloading
- 11.2 Implementing Operator Overloading
- 11.3 Reverse Adding
- 11.4 Overriding __getitem__() and __setitem__() Methods
- 11.5 Overriding the in Operator
- 11.6 Overloading Miscellaneous Functions
- 11.7 Overriding the __call__() Method
- 12 Error and Exception Handling
- 12.1 Introduction to Errors and Exceptions
- 12.1.1 Syntax Errors
- 12.1.2 Logic Error
- 12.1.3 Exceptions
- 12.2 Handling Exceptions
- 12.3 Multiple Except Blocks
- 12.4 Multiple Exceptions in a Single Block
- 12.5 Except Block Without Exception
- 12.6 The else Clause
- 12.7 Raising Exceptions
- 12.8 Instantiating Exceptions
- 12.9 Handling Exceptions in Invoked Functions
- 12.10 Built-in and User-defined Exceptions
- 12.11 The finally Block
- 12.12 Pre-defined Clean-up Action
- 12.13 Re-raising Exception
- 12.14 Assertions in Python
- Case Study 8 - Compressing String and Files
- Appendix A - Multi-threading
- Appendix B - GUI Programming with tkinter Package
- Appendix C - Simple Graphics Using Turtle
- Appendix D - Plotting Graphs in Python
- Appendix E - CGI/Web Programming Using Python




