Programming Python. Powerful Object-Oriented Programming. 4th Edition



- Ocena:
- Bądź pierwszym, który oceni tę książkę
- Stron:
- 1632
- Dostępne formaty:
-
ePubMobi
Opis ebooka: Programming Python. Powerful Object-Oriented Programming. 4th Edition
If you've mastered Python's fundamentals, you're ready to start using it to get real work done. Programming Python will show you how, with in-depth tutorials on the language's primary application domains: system administration, GUIs, and the Web. You'll also explore how Python is used in databases, networking, front-end scripting layers, text processing, and more. This book focuses on commonly used tools and libraries to give you a comprehensive understanding of Python’s many roles in practical, real-world programming.
You'll learn language syntax and programming techniques in a clear and concise manner, with lots of examples that illustrate both correct usage and common idioms. Completely updated for version 3.x, Programming Python also delves into the language as a software development tool, with many code examples scaled specifically for that purpose.
Topics include:
- Quick Python tour: Build a simple demo that includes data representation, object-oriented programming, object persistence, GUIs, and website basics
- System programming: Explore system interface tools and techniques for command-line scripting, processing files and folders, running programs in parallel, and more
- GUI programming: Learn to use Python’s tkinter widget library
- Internet programming: Access client-side network protocols and email tools, use CGI scripts, and learn website implementation techniques
- More ways to apply Python: Implement data structures, parse text-based information, interface with databases, and extend and embed Python
Wybrane bestsellery
-
Ta książka jest kompleksowym wprowadzeniem do matematyki dyskretnej, przydatnym dla każdego, kto chce pogłębić i ugruntować swoje umiejętności informatyczne. W zrozumiały sposób przedstawiono tu metody matematyki dyskretnej i ich zastosowanie w algorytmach i analizie danych, włączając w to techni...
Matematyka dyskretna dla praktyków. Algorytmy i uczenie maszynowe w Pythonie Matematyka dyskretna dla praktyków. Algorytmy i uczenie maszynowe w Pythonie
(41.40 zł najniższa cena z 30 dni)44.85 zł
69.00 zł(-35%) -
To drugie, zaktualizowane i poprawione wydanie bestsellerowego podręcznika Programowania w Pythonie pozwoli Ci błyskawicznie zacząć tworzyć kod, który działa! Zaczniesz od zrozumienia podstawowych koncepcji programistycznych, następnie nauczysz się zapewniać programom interaktywność i wykształcis...(59.40 zł najniższa cena z 30 dni)
64.35 zł
99.00 zł(-35%) -
Oto praktyczny przewodnik po wersji 3.0 systemu Spark, metodach statystycznych i rzeczywistych zbiorach danych. Omówiono w nim zasady rozwiązywania problemów analitycznych za pomocą interfejsu PySpark, z wykorzystaniem dobrych praktyk programowania w systemie Spark. Po lekturze można bezproblemow...
Zaawansowana analiza danych w PySpark. Metody przetwarzania informacji na szeroką skalę z wykorzystaniem Pythona i systemu Spark Zaawansowana analiza danych w PySpark. Metody przetwarzania informacji na szeroką skalę z wykorzystaniem Pythona i systemu Spark
Akash Tandon, Sandy Ryza, Uri Laserson, Sean Owen, Josh Wills
(44.85 zł najniższa cena z 30 dni)44.85 zł
69.00 zł(-35%) -
Mało kto lubi matematykę, zwłaszcza algebrę czy analizę matematyczną. Wydaje się trudna i niezrozumiała. Bardzo łatwo popełnić błędy podczas rozwiązywania równań różniczkowych czy całek. Jeśli jednak powierzysz najtrudniejszą i najżmudniejszą część obliczeń komputerowi, szybko się przekonasz, że ...
Matematyka w Pythonie. Algebra, statystyka, analiza matematyczna i inne dziedziny Matematyka w Pythonie. Algebra, statystyka, analiza matematyczna i inne dziedziny
(41.40 zł najniższa cena z 30 dni)44.85 zł
69.00 zł(-35%) -
Lektura tej książki ułatwi Ci pozbycie się obaw przed biblioteką asyncio. Zrozumiesz jej podstawowe elementy, co pozwoli Ci na rozpoczęcie programowania sterowanego zdarzeniami i prostą obsługę tysięcy jednoczesnych połączeń sieciowych. Dowiesz się, dlaczego Asyncio stanowi bezpieczniejszą altern...(23.94 zł najniższa cena z 30 dni)
25.93 zł
39.90 zł(-35%) -
W tej książce omówiono techniki wdrażania systemów na platformie AWS i zasady zarządzania nimi. Zaprezentowano podstawy korzystania z usługi Identity and Access Management oraz narzędzia sieciowe i monitorujące chmury AWS. Poruszono tematy Virtual Private Cloud, Elastic Compute Cloud, równoważeni...
AWS dla administratorów systemów. Tworzenie i utrzymywanie niezawodnych aplikacji chmurowych AWS dla administratorów systemów. Tworzenie i utrzymywanie niezawodnych aplikacji chmurowych
(51.35 zł najniższa cena z 30 dni)51.35 zł
79.00 zł(-35%) -
Ta książka jest zwięzłym, skupionym na praktyce przewodnikiem po Pythonie w wersji 3.6 i nowszych. Dzięki niej skoncentrujesz się na rdzeniu języka i podstawowych zagadnieniach, które musisz doskonale opanować, jeśli chcesz pisać w nim dobry kod. Dowiesz się zatem, jak działa Python i jakich zasa...(41.40 zł najniższa cena z 30 dni)
44.85 zł
69.00 zł(-35%) -
Metody statystyczne są kluczowym elementem data science, mimo to niewielu specjalistów data science posiada formalne wykształcenie statystyczne. Kursy i podręczniki o podstawach statystyki, rzadko kiedy omawiają temat z perspektywy data science. W drugim wydaniu tego popularnego podręcznika zosta...
Statystyka praktyczna w data science. 50 kluczowych zagadnień w językach R i Python. Wydanie II Statystyka praktyczna w data science. 50 kluczowych zagadnień w językach R i Python. Wydanie II
(41.40 zł najniższa cena z 30 dni)44.85 zł
69.00 zł(-35%) -
Python to jeden z najpopularniejszych dynamicznych języków programowania. Nie od dziś znajduje on zastosowanie w różnych dziedzinach informatyki, zwłaszcza jako doskonały język skryptowy. Jeśli korzystasz z niego na co dzień i chcesz szybko wyszukiwać niezbędne informacje lub odświeżyć swoją wied...(8.50 zł najniższa cena z 30 dni)
9.35 zł
17.00 zł(-45%) -
Dzięki tej książce dowiesz się, jak sobie z tym poradzić. Znalazło się w niej krótkie wprowadzenie do Pythona oraz do automatyzacji przetwarzania tekstu i obsługi systemu plików, a także do pisania własnych narzędzi wiersza poleceń. Zaprezentowano również przydatne narzędzia linuksowe, systemy za...
Python dla DevOps. Naucz się bezlitośnie skutecznej automatyzacji Python dla DevOps. Naucz się bezlitośnie skutecznej automatyzacji
(53.40 zł najniższa cena z 30 dni)57.85 zł
89.00 zł(-35%)
O autorze ebooka
Mark Lutz od 30 lat zajmuje się programowaniem. Dziś jest jedną z najważniejszych postaci w świecie Pythona. Napisał kilka popularnych, wielokrotnie wznawianych książek o programowaniu w tym języku. Przeprowadził też kilkaset sesji treningowych poświęconych Pythonowi. Zanim w 1992 roku zainteresował się tym językiem, zajmował się implementacją Prologa i pracował nad kompilatorami, narzędziami programistycznymi, aplikacjami skryptowymi oraz systemami klient-serwer.
Mark Lutz - pozostałe książki
-
To kompleksowy podręcznik do nauki programowania w Pythonie. Jego piąte wydanie zostało gruntownie zaktualizowane i rozbudowane o dodatkowe treści. Omówiono tu najnowsze wersje Pythona w liniach 3.X i 2.X, czyli 3.3 i 2.7, i dodano opisy nowych lub rozszerzonych mechanizmów, takich jak obsługa fo...(119.40 zł najniższa cena z 30 dni)
129.35 zł
199.00 zł(-35%) -
Jeżeli jednak chcesz mieć zawsze pod ręką sprawdzone źródło informacji, które pozwoli Ci w każdej sytuacji rozwiać wątpliwości, to trafiłeś na doskonałą pozycję. Należy ona do serii Leksykon kieszonkowy i charakteryzuje się niezwykle zwięzłym, przejrzystym układem najważniejszych treści oraz porę...
-
Updated for both Python 3.4 and 2.7, this convenient pocket guide is the perfect on-the-job quick reference. You’ll find concise, need-to-know information on Python types and statements, special method names, built-in functions and exceptions, commonly used standard library modules, and oth...
Python Pocket Reference. Python In Your Pocket. 5th Edition Python Pocket Reference. Python In Your Pocket. 5th Edition
(46.74 zł najniższa cena z 30 dni)46.74 zł
54.99 zł(-15%) -
Get a comprehensive, in-depth introduction to the core Python language with this hands-on book. Based on author Mark Lutz’s popular training course, this updated fifth edition will help you quickly write efficient, high-quality code with Python. It’s an ideal way to begin, whether you...
Learning Python. Powerful Object-Oriented Programming. 5th Edition Learning Python. Powerful Object-Oriented Programming. 5th Edition
(245.65 zł najniższa cena z 30 dni)245.65 zł
289.00 zł(-15%) -
Niniejsza książka należy do popularnej serii Leksykon kieszonkowy, dzięki której zawsze i wszędzie możesz przypomnieć sobie wybrane zagadnienia, związane z różną tematyką. Pozycja, którą właśnie trzymasz w rękach, została poświęcona językowi Python. W trakcie jej lektury zapoznasz się z takimi za...(14.95 zł najniższa cena z 30 dni)
16.45 zł
29.90 zł(-45%) -
Dzięki tej książce zapoznasz się z podstawowymi typami wbudowanymi Pythona, takimi jak liczby, listy oraz słowniki, nauczysz się tworzyć i przetwarzać obiekty za pomocą instrukcji Pythona, a także opanujesz ogólny model składni tego języka, stworzysz strukturę kodu i wykorzystasz kod ponownie dzi...(74.50 zł najniższa cena z 30 dni)
81.95 zł
149.00 zł(-45%) -
This is the book to reach for when you're coding on the fly and need an answer now. It's an easy-to-use reference to the core language, with descriptions of commonly used modules and toolkits, and a guide to recent changes, new features, and upgraded built-ins -- all updated to cover Python 3.X a...
Python Pocket Reference. Python in Your Pocket. 4th Edition Python Pocket Reference. Python in Your Pocket. 4th Edition
(46.74 zł najniższa cena z 30 dni)46.74 zł
54.99 zł(-15%) -
Portable, powerful, and a breeze to use, Python is ideal for both standalone programs and scripting applications. With this hands-on book, you can master the fundamentals of the core Python language quickly and efficiently, whether you're new to programming or just new to Python. Once you finish,...(126.65 zł najniższa cena z 30 dni)
126.65 zł
149.00 zł(-15%) -
Already the industry standard for Python users, ProgrammingPython fromO'Reilly just got even better. This third edition has been updated toreflect current best practices andthe abundance of changes introduced by the latest version of thelanguage, Python 2.5.Whether you're a novice or an advancedp...(186.15 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%)
Ebooka przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video zobaczysz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP4 (pliki spakowane w ZIP)
Szczegóły ebooka
- ISBN Ebooka:
- 978-14-493-0275-7, 9781449302757
- Data wydania ebooka:
-
2010-12-14
Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Język publikacji:
- angielski
- Rozmiar pliku ePub:
- 18.2MB
- Rozmiar pliku Mobi:
- 51.1MB
Spis treści ebooka
- Programming Python
- A Note Regarding Supplemental Files
- Preface
- And Now for Something Completely Different
- About This Book
- This Books Ecosystem
- What This Book Is Not
- About This Fourth Edition
- Specific Changes in This Edition
- Whats Left, Then?
- Python 3.X Impacts on This Book
- Specific 3.X Changes
- Language Versus Library: Unicode
- Python 3.1 Limitations: Email, CGI
- Using Book Examples
- Where to Look for Examples and Updates
- Example Portability
- Demo Launchers
- Code Reuse Policies
- Contacting OReilly
- Conventions Used in This Book
- Acknowledgments
- I. The Beginning
- 1. A Sneak Preview
- Programming Python: The Short Story
- The Task
- Step 1: Representing Records
- Using Lists
- Start-up pointers
- A database list
- Field labels
- Using Lists
- Using Dictionaries
- Other ways to make dictionaries
- Lists of dictionaries
- Nested structures
- Dictionaries of dictionaries
- 1. A Sneak Preview
- Step 2: Storing Records Persistently
- Using Formatted Files
- Test data script
- File name conventions
- Script start-up pointers
- Data format script
- Utility scripts
- Using Formatted Files
- Using Pickle Files
- Using Per-Record Pickle Files
- Using Shelves
- Step 3: Stepping Up to OOP
- Using Classes
- Adding Behavior
- Adding Inheritance
- Refactoring Code
- Augmenting methods
- Display format
- Constructor customization
- Alternative classes
- Adding Persistence
- Other Database Options
- Step 4: Adding Console Interaction
- A Console Shelve Interface
- Step 5: Adding a GUI
- GUI Basics
- Using OOP for GUIs
- Getting Input from a User
- A GUI Shelve Interface
- Coding the GUI
- Using the GUI
- Future directions
- Step 6: Adding a Web Interface
- CGI Basics
- GUIs versus the Web
- CGI Basics
- Running a Web Server
- Using Query Strings and urllib
- Formatting Reply Text
- A Web-Based Shelve Interface
- Coding the website
- Directories, string formatting, and security
- Using the website
- Future directions
- The End of the Demo
- II. System Programming
- 2. System Tools
- The os.path to Knowledge
- Why Python Here?
- The Next Five Chapters
- The os.path to Knowledge
- System Scripting Overview
- Python System Modules
- Module Documentation Sources
- Paging Documentation Strings
- A Custom Paging Script
- String Method Basics
- Other String Concepts in Python 3.X: Unicode and bytes
- File Operation Basics
- Using Programs in Two Ways
- Python Library Manuals
- Commercially Published References
- 2. System Tools
- Introducing the sys Module
- Platforms and Versions
- The Module Search Path
- The Loaded Modules Table
- Exception Details
- Other sys Module Exports
- Introducing the os Module
- Tools in the os Module
- Administrative Tools
- Portability Constants
- Common os.path Tools
- Running Shell Commands from Scripts
- Whats a shell command?
- Running shell commands
- Communicating with shell commands
- The subprocess module alternative
- Shell command limitations
- Other os Module Exports
- 3. Script Execution Context
- Id Like to Have an Argument, Please
- Current Working Directory
- CWD, Files, and Import Paths
- CWD and Command Lines
- Command-Line Arguments
- Parsing Command-Line Arguments
- Shell Environment Variables
- Fetching Shell Variables
- Changing Shell Variables
- Shell Variable Fine Points: Parents, putenv, and getenv
- Standard Streams
- Redirecting Streams to Files and Programs
- Chaining programs with pipes
- Coding alternatives for adders and sorters
- Redirecting Streams to Files and Programs
- Redirected Streams and User Interaction
- Redirecting Streams to Python Objects
- The io.StringIO and io.BytesIO Utility Classes
- Capturing the stderr Stream
- Redirection Syntax in Print Calls
- Other Redirection Options: os.popen and subprocess Revisited
- Redirecting input or output with os.popen
- Redirecting input and output with subprocess
- 4. File and Directory Tools
- Erase Your Hard Drive in Five Easy Steps!
- File Tools
- The File Object Model in Python 3.X
- Using Built-in File Objects
- Output files
- Opening
- Writing
- Closing
- Output files
- Ensuring file closure: Exception handlers and context managers
- Input files
- Reading lines with file iterators
- Other open options
- Binary and Text Files
- Unicode encodings for text files
- End-of-line translations for text files
- Parsing packed binary data with the struct module
- Random access files
- Lower-Level File Tools in the os Module
- Using os.open files
- os.open mode flags
- Wrapping descriptors in file objects
- Other os module file tools
- File Scanners
- File filters
- Directory Tools
- Walking One Directory
- Running shell listing commands with os.popen
- The glob module
- The os.listdir call
- Splitting and joining listing results
- Walking One Directory
- Walking Directory Trees
- The os.walk visitor
- Recursive os.listdir traversals
- Handling Unicode Filenames in 3.X: listdir, walk, glob
- Unicode policies: File content versus file names
- 5. Parallel System Tools
- Telling the Monkeys What to Do
- Forking Processes
- The fork/exec Combination
- os.exec call formats
- Spawned child program
- The fork/exec Combination
- Threads
- The _thread Module
- Basic usage
- Other ways to code threads with _thread
- Running multiple threads
- Synchronizing access to shared objects and names
- Waiting for spawned thread exits
- Coding alternatives: busy loops, arguments, and context managers
- The _thread Module
- The threading Module
- Other ways to code threads with threading
- Synchronizing access to shared objects and names revisited
- The queue Module
- Arguments versus globals
- Program exit with child threads
- Running the script
- Preview: GUIs and Threads
- More on the Global Interpreter Lock
- The thread switch interval
- Atomic operations
- C API thread considerations
- A process-based alternative: multiprocessing (ahead)
- Program Exits
- sys Module Exits
- os Module Exits
- Shell Command Exit Status Codes
- Exit status with os.system and os.popen
- Output stream buffering: A first look
- Exit status with subprocess
- Process Exit Status and Shared State
- Thread Exits and Shared State
- Interprocess Communication
- Anonymous Pipes
- Anonymous pipe basics
- Wrapping pipe descriptors in file objects
- Anonymous pipes and threads
- Bidirectional IPC with anonymous pipes
- Output stream buffering revisited: Deadlocks and flushes
- Anonymous Pipes
- Named Pipes (Fifos)
- Named pipe basics
- Named pipe use cases
- Sockets: A First Look
- Socket basics
- Sockets and independent programs
- Socket use cases
- Signals
- The multiprocessing Module
- Why multiprocessing?
- The Basics: Processes and Locks
- Implementation and usage rules
- IPC Tools: Pipes, Shared Memory, and Queues
- multiprocessing pipes
- Shared memory and globals
- Queues and subclassing
- Starting Independent Programs
- And Much More
- And a little less
- Why multiprocessing? The Conclusion
- Other Ways to Start Programs
- The os.spawn Calls
- The os.startfile call on Windows
- Using the DOS start command
- Using start in Python scripts
- The os.startfile call
- A Portable Program-Launch Framework
- Other System Tools Coverage
- 6. Complete System Programs
- The Greps of Wrath
- A Quick Game of Find the Biggest Python File
- Scanning the Standard Library Directory
- Scanning the Standard Library Tree
- Scanning the Module Search Path
- Scanning the Entire Machine
- Printing Unicode Filenames
- Splitting and Joining Files
- Splitting Files Portably
- Joining Files Portably
- Usage Variations
- Generating Redirection Web Pages
- Page Template File
- Page Generator Script
- A Regression Test Script
- Running the Test Driver
- Copying Directory Trees
- Comparing Directory Trees
- Finding Directory Differences
- Finding Tree Differences
- Running the Script
- Verifying Backups
- Reporting Differences and Other Ideas
- Searching Directory Trees
- Greps and Globs and Finds
- Rolling Your Own find Module
- The fnmatch module
- Cleaning Up Bytecode Files
- A Python Tree Searcher
- Visitor: Walking Directories ++
- Editing Files in Directory Trees (Visitor)
- Global Replacements in Directory Trees (Visitor)
- Counting Source Code Lines (Visitor)
- Recoding Copies with Classes (Visitor)
- Other Visitor Examples (External)
- Playing Media Files
- The Python webbrowser Module
- The Python mimetypes Module
- Using mimetypes guesses for SearchVisitor
- Running the Script
- Automated Program Launchers (External)
- III. GUI Programming
- 7. Graphical User Interfaces
- Heres Looking at You, Kid
- GUI Programming Topics
- Running the Examples
- Heres Looking at You, Kid
- Python GUI Development Options
- tkinter Overview
- tkinter Pragmatics
- tkinter Documentation
- tkinter Extensions
- tkinter Structure
- Implementation structure
- Programming structure
- 7. Graphical User Interfaces
- Climbing the GUI Learning Curve
- Hello World in Four Lines (or Less)
- tkinter Coding Basics
- Making Widgets
- Geometry Managers
- Running GUI Programs
- Avoiding DOS consoles on Windows
- tkinter Coding Alternatives
- Widget Resizing Basics
- Configuring Widget Options and Window Titles
- One More for Old Times Sake
- Packing Widgets Without Saving Them
- Adding Buttons and Callbacks
- Widget Resizing Revisited: Expansion
- Adding User-Defined Callback Handlers
- Lambda Callback Handlers
- Deferring Calls with Lambdas and Object References
- Callback Scope Issues
- Arguments versus globals
- Passing in enclosing scope values with default arguments
- Passing in enclosing scope values with automatic references
- But you must still sometimes use defaults instead of enclosing scopes
- Bound Method Callback Handlers
- Callable Class Object Callback Handlers
- Other tkinter Callback Protocols
- Binding Events
- Adding Multiple Widgets
- Widget Resizing Revisited: Clipping
- Attaching Widgets to Frames
- Layout: Packing Order and Side Attachments
- The Packers Expand and Fill Revisited
- Using Anchor to Position Instead of Stretch
- Customizing Widgets with Classes
- Standardizing Behavior and Appearance
- Common behavior
- Common appearance
- Standardizing Behavior and Appearance
- Reusable GUI Components with Classes
- Attaching Class Components
- Extending Class Components
- Standalone Container Classes
- The End of the Tutorial
- Python/tkinter for Tcl/Tk Converts
- 8. A tkinter Tour, Part 1
- Widgets and Gadgets and GUIs, Oh My!
- This Chapters Topics
- Widgets and Gadgets and GUIs, Oh My!
- Configuring Widget Appearance
- Top-Level Windows
- Toplevel and Tk Widgets
- Top-Level Window Protocols
- Dialogs
- Standard (Common) Dialogs
- A smart and reusable Quit button
- A dialog demo launcher bar
- Printing dialog results and passing callback data with lambdas
- Letting users select colors on the fly
- Other standard dialog calls
- Standard (Common) Dialogs
- The Old-Style Dialog Module
- Custom Dialogs
- Making custom dialogs modal
- Other ways to be modal
- Binding Events
- Other bind Events
- More on <Destroy> events and the quit and destroy methods
- Other bind Events
- Message and Entry
- Message
- Entry
- Programming Entry widgets
- Laying Out Input Forms
- Going modal again
- tkinter Variables and Form Layout Alternatives
- Checkbutton, Radiobutton, and Scale
- Checkbuttons
- Check buttons and variables
- Checkbuttons
- Radio Buttons
- Radio buttons and variables
- Radio buttons without variables
- Hold onto your variables!
- Scales (Sliders)
- Scales and variables
- Running GUI Code Three Ways
- Attaching Frames
- Importing by name string
- Configuring at construction time
- Attaching Frames
- Independent Windows
- Running Programs
- Launching GUIs as programs other ways: multiprocessing
- Cross-program communication
- Coding for reusability
- Images
- Fun with Buttons and Pictures
- Viewing and Processing Images with PIL
- PIL Basics
- Displaying Other Image Types with PIL
- Displaying all images in a directory
- Creating Image Thumbnails with PIL
- Performance: Saving thumbnail files
- Layout options: Gridding
- Layout options: Fixed-size buttons
- Scrolling and canvases (ahead)
- 9. A tkinter Tour, Part 2
- On Todays Menu: Spam, Spam, and Spam
- Menus
- Top-Level Window Menus
- Frame- and Menubutton-Based Menus
- Using Menubuttons and Optionmenus
- Windows with Both Menus and Toolbars
- Using images in toolbars, too
- Automating menu construction
- Listboxes and Scrollbars
- Programming Listboxes
- Programming Scroll Bars
- Packing Scroll Bars
- Text
- Programming the Text Widget
- Text is a Python string
- String positions
- Text indexes
- Text marks
- Text tags
- Programming the Text Widget
- Adding Text-Editing Operations
- Using the clipboard
- Composition versus inheritance
- Its called Simple for a reason: PyEdit (ahead)
- Unicode and the Text Widget
- String types in the Text widget
- Unicode text in strings
- Unicode text in files
- Unicode and the Text widget
- The problem with treating text as bytes
- Other binary mode considerations
- Supporting Unicode in PyEdit (ahead)
- Advanced Text and Tag Operations
- Canvas
- Basic Canvas Operations
- Programming the Canvas Widget
- Coordinates
- Object construction
- Object identifiers and operations
- Canvas object tags
- Scrolling Canvases
- Scrollable Canvases and Image Thumbnails
- Scrolling images too: PyPhoto (ahead)
- Using Canvas Events
- Binding events on specific items
- Grids
- Why Grids?
- Grid Basics: Input Forms Revisited
- Comparing grid and pack
- Combining grid and pack
- Making Gridded Widgets Expandable
- Resizing in grids
- Spanning columns and rows
- Laying Out Larger Tables with grid
- Time Tools, Threads, and Animation
- Using Threads with tkinter GUIs
- Using the after Method
- Hiding and redrawing widgets and windows
- Simple Animation Techniques
- Using time.sleep loops
- Using widget.after events
- Using multiple time.sleep loop threads
- Other Animation Topics
- Other animation effects
- Threads and animation
- Graphics and gaming toolkits
- The End of the Tour
- Other Widgets and Options
- 10. GUI Coding Techniques
- Building a Better Mousetrap
- GuiMixin: Common Tool Mixin Classes
- Widget Builder Functions
- Mixin Utility Classes
- GuiMaker: Automating Menus and Toolbars
- Subclass Protocols
- GuiMaker Classes
- GuiMaker Self-Test
- BigGui: A Client Demo Program
- ShellGui: GUIs for Command-Line Tools
- A Generic Shell-Tools Display
- Application-Specific Tool Set Classes
- Adding GUI Frontends to Command Lines
- Non-GUI scripts
- GUI input dialogs
- Room for improvement
- GuiStreams: Redirecting Streams to Widgets
- Using Redirection for the Packing Scripts
- Reloading Callback Handlers Dynamically
- Wrapping Up Top-Level Window Interfaces
- GUIs, Threads, and Queues
- Placing Data on Queues
- Recoding with classes and bound methods
- Thread exits in GUIs
- Placing Data on Queues
- Placing Callbacks on Queues
- Passing bound method callbacks on queues
- More Ways to Add GUIs to Non-GUI Code
- Popping Up GUI Windows on Demand
- Adding a GUI As a Separate Program: Sockets (A Second Look)
- Adding a GUI As a Separate Program: Command Pipes
- The specter of blocking input calls
- Updating GUIs within threadsand other nonsolutions
- Avoiding blocking input calls with non-GUI threads
- Sockets and pipes: Compare and contrast
- Other uses for threaded pipe GUIs
- The PyDemos and PyGadgets Launchers
- PyDemos Launcher Bar (Mostly External)
- PyGadgets Launcher Bar
- 11. Complete GUI Programs
- Python, Open Source, and Camaros
- Examples in Other Chapters
- This Chapters Strategy
- Python, Open Source, and Camaros
- PyEdit: A Text Editor Program/Object
- Running PyEdit
- Menus and toolbars
- Dialogs
- Running program code
- Multiple windows
- Other PyEdit examples and screenshots in this book
- Running PyEdit
- PyEdit Changes in Version 2.0 (Third Edition)
- Font dialog
- Undo, redo, and modified tests
- Configuration module
- PyEdit Changes in Version 2.1 (Fourth Edition)
- Modal dialog state fix
- Cross-process change tests on Quit
- New Grep dialog: Threaded and Unicode-aware file tree search
- Grep threading model
- Grep Unicode model
- Update for initial positioning
- Improvements for running code
- Unicode (Internationalized) text support
- Unicode file and display model
- Unicode options and choices
- More on Quit checks: The <Destroy> event revisited
- PyEdit Source Code
- User configurations file
- Windows (and other) launch files
- Main implementation file
- PyPhoto: An Image Viewer and Resizer
- Running PyPhoto
- PyPhoto Source Code
- PyView: An Image and Notes Slideshow
- Running PyView
- Embedding PyEdit in PyView
- Running PyView
- PyView Source Code
- PyDraw: Painting and Moving Graphics
- Running PyDraw
- PyDraw Source Code
- PyClock: An Analog/Digital Clock Widget
- A Quick Geometry Lesson
- Running PyClock
- PyClock Source Code
- PyToe: A Tic-Tac-Toe Game Widget
- Running PyToe
- PyToe Source Code (External)
- Where to Go from Here
- IV. Internet Programming
- 12. Network Scripting
- Tune In, Log On, and Drop Out
- Internet Scripting Topics
- What we will cover
- What we wont cover
- Other themes in this part of the book
- Internet Scripting Topics
- Running Examples in This Part of the Book
- Tune In, Log On, and Drop Out
- 12. Network Scripting
- Python Internet Development Options
- Plumbing the Internet
- The Socket Layer
- Machine identifiers
- The Socket Layer
- The Protocol Layer
- Port number rules
- Clients and servers
- Protocol structures
- Pythons Internet Library Modules
- Socket Programming
- Socket Basics
- Server socket calls
- Transferring byte strings and objects
- Client socket calls
- Socket Basics
- Running Socket Programs Locally
- Running Socket Programs Remotely
- Socket pragmatics
- Spawning Clients in Parallel
- Preview: Denied client connections
- Talking to Reserved Ports
- Binding reserved port servers
- Handling Multiple Clients
- Forking Servers
- Running the forking server
- Other run modes: Local servers with Cygwin and remote clients
- Forked processes and sockets
- Exiting from children
- Killing the zombies: Dont fear the reaper!
- Preventing zombies with signal handlers on Linux
- Why multiprocessing doesnt help with socket server portability
- Forking Servers
- Threading Servers
- Standard Library Server Classes
- Multiplexing Servers with select
- A select-based echo server
- Running the select server
- Summary: Choosing a Server Scheme
- Making Sockets Look Like Files and Streams
- A Stream Redirection Utility
- Text-mode files and buffered output streams
- Stream requirements
- Line buffering
- Solutions
- Buffering in other contexts: Command pipes revisited
- Sockets versus command pipes
- A Stream Redirection Utility
- A Simple Python File Server
- Running the File Server and Clients
- Adding a User-Interface Frontend
- Using row frames and command lines
- Using grids and function calls
- Using a reusable form-layout class
- 13. Client-Side Scripting
- Socket to Me!
- FTP: Transferring Files over the Net
- Transferring Files with ftplib
- Using urllib to Download Files
- FTP get and put Utilities
- Download utility
- Upload utility
- Playing the Monty Python theme song
- Adding a User Interface
- Transferring Directories with ftplib
- Downloading Site Directories
- Uploading Site Directories
- Refactoring Uploads and Downloads for Reuse
- Refactoring with functions
- Refactoring with classes
- Transferring Directory Trees with ftplib
- Uploading Local Trees
- Deleting Remote Trees
- Downloading Remote Trees
- Processing Internet Email
- Unicode in Python 3.X and Email Tools
- POP: Fetching Email
- Mail Configuration Module
- POP Mail Reader Script
- Fetching Messages
- Fetching Email at the Interactive Prompt
- SMTP: Sending Email
- SMTP Mail Sender Script
- Sending Messages
- Verifying receipt
- Manipulating both From and To
- Sending Email at the Interactive Prompt
- email: Parsing and Composing Mail Content
- Message Objects
- Basic email Package Interfaces in Action
- Handling multipart messages
- Unicode, Internationalization, and the Python 3.1 email Package
- Parser decoding requirement
- Text payload encodings: Handling mixed type results
- Text payload encodings: Using header information to decode
- Message header encodings: email package support
- Message address header encodings and parsing, and header creation
- Workaround: Message text generation for binary attachment payloads is broken
- Workaround: Message composition for non-ASCII text parts is broken
- Summary: Solutions and workarounds
- A Console-Based Email Client
- Running the pymail Console Client
- The mailtools Utility Package
- Initialization File
- MailTool Class
- MailSender Class
- Unicode issues for attachments, save files, and headers
- MailFetcher Class
- General usage
- Unicode decoding for full mail text on fetches
- Inbox synchronization tools
- MailParser Class
- Unicode decoding for text part payloads and message headers
- Self-Test Script
- Running the self-test
- Updating the pymail Console Client
- Running the pymail2 console client
- NNTP: Accessing Newsgroups
- HTTP: Accessing Websites
- The urllib Package Revisited
- Other urllib Interfaces
- Invoking programs and escaping text
- Other urllib Interfaces
- Other Client-Side Scripting Options
- 14. The PyMailGUI Client
- Use the Source, Luke
- Source Code Modules and Size
- Code size
- Code Structure
- Source Code Modules and Size
- Why PyMailGUI?
- Running PyMailGUI
- Presentation Strategy
- Use the Source, Luke
- Major PyMailGUI Changes
- New in Version 2.1 and 2.0 (Third Edition)
- New in Version 3.0 (Fourth Edition)
- Version 3.0 Unicode support policies
- A PyMailGUI Demo
- Getting Started
- Loading Mail
- Threading Model
- Threading model implementation
- Load Server Interface
- Offline Processing with Save and Open
- Sending Email and Attachments
- Viewing Email and Attachments
- Email Replies and Forwards and Recipient Options
- Deleting Email
- POP Message Numbers and Synchronization
- Handling HTML Content in Email
- Mail Content Internationalization Support
- Alternative Configurations and Accounts
- Multiple Windows and Status Messages
- PyMailGUI Implementation
- PyMailGUI: The Main Module
- SharedNames: Program-Wide Globals
- ListWindows: Message List Windows
- ViewWindows: Message View Windows
- messagecache: Message Cache Manager
- popuputil: General-Purpose GUI Pop Ups
- wraplines: Line Split Tools
- html2text: Extracting Text from HTML (Prototype, Preview)
- mailconfig: User Configurations
- textConfig: Customizing Pop-Up PyEdit Windows
- PyMailGUIHelp: User Help Text and Display
- altconfigs: Configuring for Multiple Accounts
- Ideas for Improvement
- 15. Server-Side Scripting
- Oh, What a Tangled Web We Weave
- Whats a Server-Side CGI Script?
- The Script Behind the Curtain
- Writing CGI Scripts in Python
- Running Server-Side Examples
- Web Server Options
- Running a Local Web Server
- The Server-Side Examples Root Page
- Viewing Server-Side Examples and Output
- Climbing the CGI Learning Curve
- A First Web Page
- HTML basics
- Internet addresses (URLs)
- Using minimal URLs
- HTML file permission constraints
- A First Web Page
- A First CGI Script
- Installing CGI scripts
- Finding Python on remote servers
- Adding Pictures and Generating Tables
- Table tags
- Adding User Interaction
- Submission page
- More on form tags
- Response script
- Passing parameters in URLs
- Testing outside browsers with the module urllib.request
- Using Tables to Lay Out Forms
- Converting strings in CGI scripts
- Debugging CGI scripts
- Adding Common Input Devices
- Changing Input Layouts
- Keeping display and logic separate
- Passing Parameters in Hardcoded URLs
- Passing Parameters in Hidden Form Fields
- Saving State Information in CGI Scripts
- URL Query Parameters
- Hidden Form Input Fields
- HTTP Cookies
- Creating a cookie
- Receiving a cookie
- Using cookies in CGI scripts
- Handling cookies with the urllib.request module
- Server-Side Databases
- Extensions to the CGI Model
- Combining Techniques
- The Hello World Selector
- Checking for Missing and Invalid Inputs
- Refactoring Code for Maintainability
- Step 1: Sharing Objects Between PagesA New Input Form
- Step 2: A Reusable Form Mock-Up Utility
- Step 3: Putting It All TogetherA New Reply Script
- More on HTML and URL Escapes
- URL Escape Code Conventions
- Python HTML and URL Escape Tools
- Escaping HTML Code
- Escaping URLs
- Escaping URLs Embedded in HTML Code
- HTML and URL conflicts: &
- Avoiding conflicts
- Transferring Files to Clients and Servers
- Displaying Arbitrary Server Files on the Client
- Handling private files and errors
- Displaying Arbitrary Server Files on the Client
- Uploading Client Files to the Server
- Handling client path formats
- More Than One Way to Push Bits over the Net
- 16. The PyMailCGI Server
- Things to Do When Visiting Chicago
- The PyMailCGI Website
- Implementation Overview
- New in This Fourth Edition (Version 3.0)
- New in the Prior Edition (Version 2.0)
- Presentation Overview
- Running This Chapters Examples
- The Root Page
- Configuring PyMailCGI
- Sending Mail by SMTP
- The Message Composition Page
- The Send Mail Script
- Error Pages
- Common Look-and-Feel
- Using the Send Mail Script Outside a Browser
- Reading POP Email
- The POP Password Page
- The Mail Selection List Page
- Passing State Information in URL Link Parameters
- Security Protocols
- Reading mail with direct URLs
- The Message View Page
- Passing State Information in HTML Hidden Input Fields
- Escaping Mail Text and Passwords in HTML
- Processing Fetched Mail
- Reply and Forward
- Delete
- Deletions and POP Message Numbers
- Inbox synchronization error potential
- Alternative: Passing header text in hidden input fields (PyMailCGI_2.1)
- Alternative: Server-side files for headers
- Alternative: Delete on load
- Utility Modules
- External Components and Configuration
- POP Mail Interface
- POP Password Encryption
- Manual data encryption: rotor (defunct)
- Manual data encryption: PyCrypto
- HTTPS: Secure HTTP transmissions
- Secure cookies
- The secret.py module
- Rolling your own encryptor
- Common Utilities Module
- Web Scripting Trade-Offs
- PyMailCGI Versus PyMailGUI
- The Web Versus the Desktop
- Other Approaches
- V. Tools and Techniques
- 17. Databases and Persistence
- Give Me an Order of Persistence, but Hold the Pickles
- Persistence Options in Python
- DBM Files
- Using DBM Files
- DBM Details: Files, Portability, and Close
- Pickled Objects
- Using Object Pickling
- Pickling in Action
- Pickle Details: Protocols, Binary Modes, and _pickle
- 17. Databases and Persistence
- Shelve Files
- Using Shelves
- Storing Built-in Object Types in Shelves
- Storing Class Instances in Shelves
- Changing Classes of Objects Stored in Shelves
- Shelve Constraints
- Keys must be strings (and str)
- Objects are unique only within a key
- Updates must treat shelves as fetch-modify-store mappings
- Concurrent updates are not directly supported
- Underlying DBM format portability
- Pickled Class Constraints
- Other Shelve Limitations
- The ZODB Object-Oriented Database
- The Mostly Missing ZODB Tutorial
- SQL Database Interfaces
- SQL Interface Overview
- An SQL Database API Tutorial with SQLite
- Getting started
- Making databases and tables
- Adding records
- Running queries
- Running updates
- Building Record Dictionaries
- Using table descriptions
- Record dictionaries construction
- Automating with scripts and modules
- Tying the Pieces Together
- Loading Database Tables from Files
- Loading with SQL and Python
- Python versus SQL
- SQL Utility Scripts
- Table load scripts
- Table display script
- Using the scripts
- SQL Resources
- ORMs: Object Relational Mappers
- PyForm: A Persistent Object Viewer (External)
- 18. Data Structures
- Roses Are Red, Violets Are Blue; Lists Are Mutable, and So Is Set Foo
- Implementing Stacks
- Built-in Options
- A Stack Module
- A Stack Class
- Customization: Performance Monitors
- Optimization: Tuple Tree Stacks
- Optimization: In-Place List Modifications
- Timing the Improvements
- Results under Python 3.1
- More on performance analysis
- Implementing Sets
- Built-in Options
- Set Functions
- Supporting multiple operands
- Set Classes
- Optimization: Moving Sets to Dictionaries
- Timing the results under Python 3.1
- Adding Relational Algebra to Sets (External)
- Subclassing Built-in Types
- Binary Search Trees
- Built-in Options
- Implementing Binary Trees
- Trees with Both Keys and Values
- Graph Searching
- Implementing Graph Search
- Moving Graphs to Classes
- Permuting Sequences
- Reversing and Sorting Sequences
- Implementing Reversals
- Implementing Sorts
- Adding comparison functions
- Data Structures Versus Built-ins: The Conclusion
- PyTree: A Generic Tree Object Viewer
- 19. Text and Language
- See Jack Hack. Hack, Jack, Hack
- Strategies for Processing Text in Python
- String Method Utilities
- Templating with Replacements and Formats
- Parsing with Splits and Joins
- Summing Columns in a File
- Summing with zips and comprehensions
- Summing with dictionaries
- Parsing and Unparsing Rule Strings
- More on the holmes expert system shell
- Regular Expression Pattern Matching
- The re Module
- First Examples
- String Operations Versus Patterns
- Using the re Module
- Module functions
- Compiled pattern objects
- Match objects
- Regular expression patterns
- More Pattern Examples
- Scanning C Header Files for Patterns
- XML and HTML Parsing
- XML Parsing in Action
- Regular expression parsing
- SAX parsing
- DOM parsing
- ElementTree parsing
- Other XML topics
- XML Parsing in Action
- HTML Parsing in Action
- Handling HTML entity references (revisited)
- Extracting plain text from HTML (revisited)
- Advanced Language Tools
- Custom Language Parsers
- The Expression Grammar
- The Parsers Code
- Adding a Parse Tree Interpreter
- Parse Tree Structure
- Exploring Parse Trees with the PyTree GUI
- Parsers Versus Python
- PyCalc: A Calculator Program/Object
- A Simple Calculator GUI
- Building the GUI
- Running code strings
- Extending and attaching
- A Simple Calculator GUI
- PyCalcA Real Calculator GUI
- Running PyCalc
- Evaluating expressions with stacks
- PyCalc source code
- Using PyCalc as a component
- Adding new buttons in new components
- 20. Python/C Integration
- I Am Lost at C
- Extending and Embedding
- I Am Lost at C
- Extending Python in C: Overview
- A Simple C Extension Module
- The SWIG Integration Code Generator
- A Simple SWIG Example
- Wrapping C Environment Calls
- Adding Wrapper Classes to Flat Libraries
- Wrapping C Environment Calls with SWIG
- Wrapping C++ Classes with SWIG
- A Simple C++ Extension Class
- Wrapping the C++ Class with SWIG
- Using the C++ Class in Python
- Using the low-level extension module
- Subclassing the C++ class in Python
- Exploring the wrappers interactively
- Other Extending Tools
- Embedding Python in C: Overview
- The C Embedding API
- What Is Embedded Code?
- Basic Embedding Techniques
- Running Simple Code Strings
- Compiling and running
- Running Simple Code Strings
- Running Code Strings with Results and Namespaces
- Calling Python Objects
- Running Strings in Dictionaries
- Precompiling Strings to Bytecode
- Registering Callback Handler Objects
- Registration Implementation
- Using Python Classes in C
- Other Integration Topics
- VI. The End
- 21. Conclusion: Python and the Development Cycle
- Thats the End of the Book, Now Heres the Meaning of Life
- Somethings Wrong with the Way We Program Computers
- The Gilligan Factor
- Doing the Right Thing
- The Static Language Build Cycle
- Artificial Complexities
- One Language Does Not Fit All
- Enter Python
- But What About That Bottleneck?
- Python Provides Immediate Turnaround
- Python Is Executable Pseudocode
- Python Is OOP Done Right
- Python Fosters Hybrid Applications
- 21. Conclusion: Python and the Development Cycle
- On Sinking the Titanic
- So Whats Python?: The Sequel
- In the Final Analysis
- Index
- About the Author
- Colophon
- Copyright
O'Reilly Media - inne książki
-
The way developers design, build, and run software has changed significantly with the evolution of microservices and containers. These modern architectures offer new distributed primitives that require a different set of practices than many developers, tech leads, and architects are accustomed to...(211.65 zł najniższa cena z 30 dni)
220.15 zł
259.00 zł(-15%) -
Learn how to build end-to-end scalable machine learning solutions with Apache Spark. With this practical guide, author Adi Polak introduces data and ML practitioners to creative solutions that supersede today's traditional methods. You'll learn a more holistic approach that takes you beyond speci...(262.65 zł najniższa cena z 30 dni)
262.65 zł
309.00 zł(-15%) -
What is eBPF? With this revolutionary technology, you can write custom code that dynamically changes the way the kernel behaves. It's an extraordinary platform for building a whole new generation of security, observability, and networking tools.This practical book is ideal for developers, system ...(186.15 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%) -
Combing the web is simple, but how do you search for data at work? It's difficult and time-consuming, and can sometimes seem impossible. This book introduces a practical solution: the data catalog. Data analysts, data scientists, and data engineers will learn how to create true data discovery in ...(220.15 zł najniższa cena z 30 dni)
220.15 zł
259.00 zł(-15%) -
This updated edition of the Nutshell guide not only helps experienced Java programmers get the most out of versions through Java 17, it also serves as a learning path for new developers. Chock-full of examples that demonstrate how to take complete advantage of modern Java APIs and development bes...(220.15 zł najniższa cena z 30 dni)
220.15 zł
259.00 zł(-15%) -
Get started with Ray, the open source distributed computing framework that simplifies the process of scaling compute-intensive Python workloads. With this practical book, Python programmers, data engineers, and data scientists will learn how to leverage Ray locally and spin up compute clusters. Y...(220.15 zł najniższa cena z 30 dni)
220.15 zł
259.00 zł(-15%) -
Remove your doubts about AI and explore how this technology can be future-proofed using blockchain's smart contracts and tamper-evident ledgers. With this practical book, system architects, software engineers, and systems solution specialists will learn how enterprise blockchain provides permanen...(262.65 zł najniższa cena z 30 dni)
262.65 zł
309.00 zł(-15%) -
FinOps brings financial accountability to the variable spend model of cloud. Used by the majority of global enterprises, this management practice has grown from a fringe activity to the de facto discipline managing cloud spend. In this book, authors J.R. Storment and Mike Fuller outline the proce...(262.65 zł najniższa cena z 30 dni)
262.65 zł
309.00 zł(-15%) -
Edge AI is transforming the way computers interact with the real world, allowing IoT devices to make decisions using the 99% of sensor data that was previously discarded due to cost, bandwidth, or power limitations. With techniques like embedded machine learning, developers can capture human intu...(262.65 zł najniższa cena z 30 dni)
262.65 zł
309.00 zł(-15%) -
Why is it difficult for so many companies to get digital identity right? If you're still wrestling with even simple identity problems like modern website authentication, this practical book has the answers you need. Author Phil Windley provides conceptual frameworks to help you make sense of all ...(186.15 zł najniższa cena z 30 dni)
186.15 zł
219.00 zł(-15%)
Dzieki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
W przypadku usługi "Druk na żądanie" termin dostarczenia przesyłki może obejmować także czas potrzebny na dodruk (do 10 dni roboczych)
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka, którą chcesz zamówić pochodzi z końcówki nakładu. Oznacza to, że mogą się pojawić drobne defekty (otarcia, rysy, zagięcia).
Co powinieneś wiedzieć o usłudze "Końcówka nakładu":
- usługa obejmuje tylko książki oznaczone tagiem "Końcówka nakładu";
- wady o których mowa powyżej nie podlegają reklamacji;
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.


Oceny i opinie klientów: Programming Python. Powerful Object-Oriented Programming. 4th Edition Mark Lutz (0)
Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.