Wing ide 101 руководство

Download Wing 101:

Windows Installer

32-bit and 64-bit

SHA1: 00c8dee74ac2f8b23b4123381983bd3b755b467d

Windows Zip File

32-bit and 64-bit

SHA1: a5d093226370d72f686a9b2d819325ed1103e224

Supported OSes

Supported Python Versions

Change Log

Quickstart HTML    US Letter    A4   
Tutorial HTML    US Letter    A4   
Manual HTML    US Letter    A4   
How-Tos HTML    US Letter    A4   

Wing 101 — Version 9.1.1 — Released 2023-05-18

Wing 101 is a very simple free Python IDE designed for teaching beginning
programmers. It omits most features found in Wing Pro. Compare Products

If you are new to programming, check out the book
Python Programming Fundamentals
and accompanying screen casts, which use Wing IDE 101 to teach programming with Python.

Wing 101 is free to use for any purpose and does not require a license to run.

Tutorial

Quick Start Guide

What’s New

Also Available:
 
Installers
 

Other OSes:
 
Windows
 
MacOS
 
Linux
 

Other Versions:
 
9.0.2
 
8.3.3
 
8.2.0
 
8.1.3
 
7.2.9
 
6.1.5
 
5.1.12
 
4.1.14
 
3.2.13
 
all versions

Other Products:
 
Wing Pro
 
Wing Personal
 
— 
Compare Product Features

Wing Pro Reference Manual

Index of All Documentation
»

Wing Pro Screenshot

This manual documents the entire feature set of Wing Pro, which is a
Python IDE designed for professional developers.

It covers installation, customization, setting up a project, package management,
editing, code warnings, refactoring, comparing files and directories, navigating source
code, using the integrated Python shell, executing operating system commands,
unit testing, debugging, version control, source code analysis, remote development,
and extending the IDE with user-defined scripts and plugins.

Trouble-shooting information is also included, for installation and usage
problems, as well as a complete reference for Wing Pro’s preferences, command
set, and available key bindings.

If you are looking for a gentler introduction to Wing’s feature set, try
the Tutorial in Wing’s Help menu. A more concise overview of Wing’s
features is also available in the Quick Start Guide.

Our How-Tos explain how to use Wing with
specific Python frameworks for web and GUI development, 2D and 3D modeling,
rendering, and compositing applications, matplotlib, Raspberry Pi, and other
Python-based libraries and tools.

A collection of Wing Tips, available on our website and
by weekly email subscription, provides additional tips and tricks for using Wing
productively.

Wing Personal and Wing 101 are free versions of Wing that omit many of the
features documented here. In those Python IDEs, the

Wing Manual

in the

Help

menu is an appropriately abridged version of this manual.
Compare Products


Wingware, the feather logo, Wing Python IDE, Wing Pro, Wing Personal, Wing 101,
Wing IDE, Wing IDE 101, Wing IDE Personal, Wing IDE Professional, Wing IDE Pro,
Wing Debugger, and «The Intelligent Development Environment for Python»
are trademarks or registered trademarks of Wingware in the United States and
other countries.

Disclaimers: The information contained in this document is subject to change
without notice. Wingware shall not be liable for technical or editorial errors
or omissions contained in this document; nor for incidental or consequential
damages resulting from furnishing, performance, or use of this material.

Hardware and software products mentioned herein are named for identification
purposes only and may be trademarks of their respective owners.

Copyright (c) 1999-2023 by Wingware. All rights reserved.

Wingware
P.O. Box 400527
Cambridge, MA  02140-0006
United States of America

Section Contents

Introduction

   
1.0.
Product Levels

   
1.1.
Licenses

   
1.2.
Supported Platforms

   
1.3.
Supported Python versions

   
1.4.
Technical Support

   
1.5.
Prerequisites for Installation

   
1.6.
Installing Wing

   
1.7.
Running Wing

   
1.8.
Installing Your License

   
1.9.
Settings Directory

   
1.10.
Upgrading

      
1.10.0.
Migrating From Older Versions

      
1.10.1.
Fixing a Failed Upgrade

   
1.11.
Installation Details and Options

      
1.11.0.
Linux Installation Notes

      
1.11.1.
Remote Display on Linux

      
1.11.2.
Source Code Installation

   
1.12.
Backing Up and Sharing Settings

   
1.13.
Removing Wing

   
1.14.
Command Line Usage

Customization

   
2.0.
High Level Configuration Options

   
2.1.
User Interface Options

      
2.1.0.
Display Style and Colors

      
2.1.1.
Windowing Policies

      
2.1.2.
User Interface Layout

      
2.1.3.
Text Font and Size

   
2.2.
Keyboard Personalities

      
2.2.0.
Key Bindings

      
2.2.1.
Key Maps

      
2.2.2.
Key Names

   
2.3.
Preferences

      
2.3.0.
Preferences File Layers

      
2.3.1.
Preferences File Format

   
2.4.
Custom Syntax Coloring

   
2.5.
Perspectives

   
2.6.
File Filters

Project Manager

   
3.0.
Creating a Project

      
3.0.0.
Creating Python Environments

      
3.0.1.
About Project Configuration

   
3.1.
Moving Projects

   
3.2.
Display Options

   
3.3.
Opening Files

   
3.4.
File Operations

   
3.5.
Creating, Renaming, and Deleting Files

   
3.6.
Project Properties

      
3.6.0.
Environment Variable Expansion

   
3.7.
File Properties

   
3.8.
Sharing Projects

   
3.9.
Launch Configurations

Package Manager

   
4.0.
Package Management Operations

   
4.1.
Package Manager Options

   
4.2.
Package Management with pipenv

   
4.3.
Package Management with conda

   
4.4.
Package Management Security

Source Code Editor

   
5.0.
Opening, Creating, and Closing Files

   
5.1.
File Status and Read-Only Files

   
5.2.
Transient, Sticky, and Locked Editors

   
5.3.
Editor Context Menu

   
5.4.
Navigating Source

   
5.5.
Source Assistant

   
5.6.
Folding

   
5.7.
Bookmarks

   
5.8.
Syntax Coloring

   
5.9.
Selecting Text

      
5.9.0.
Multiple Selections

   
5.10.
Copy/Paste

   
5.11.
Auto-completion

      
5.11.0.
Turbo Completion Mode for Python

      
5.11.1.
Auto-completion Icons

      
5.11.2.
How Auto-completion Works

   
5.12.
Auto-Editing

   
5.13.
Auto-Reformatting

      
5.13.0.
PEP 8 Reformatting Options

      
5.13.1.
Black Formatting Options

      
5.13.2.
YAPF Formatting Options

      
5.13.3.
Other Reformatters

   
5.14.
Code Snippets

      
5.14.0.
Snippet Syntax

      
5.14.1.
Snippets Directory Layout

   
5.15.
Indentation

      
5.15.0.
How Indent Style is Determined

      
5.15.1.
Indent Guides, Policies, and Warnings

      
5.15.2.
Auto-Indent

      
5.15.3.
The Tab Key

      
5.15.4.
Adjusting Indentation

      
5.15.5.
Indentation Tool

   
5.16.
Keyboard Macros

   
5.17.
Auto-Reloading Changed Files

   
5.18.
Auto-Save

   
5.19.
File Sets

   
5.20.
Other Editor Features

Search and Replace

   
6.0.
Toolbar Quick Search

   
6.1.
Keyboard-Driven Search and Replace

   
6.2.
Search Tool

   
6.3.
Search in Files Tool

   
6.4.
Find Points of Use

   
6.5.
Wildcard Search Syntax

Code Warnings and Quality Inspection

   
7.0.
Code Warnings Tool

   
7.1.
Warnings on the Editor

   
7.2.
Warnings Types

   
7.3.
Advanced Configuration

   
7.4.
External Code Quality Checkers

Refactoring

   
8.0.
Rename Symbol

   
8.1.
Move Symbol

   
8.2.
Delete Symbol

   
8.3.
Extract Function / Method

   
8.4.
Introduce Variable

   
8.5.
Add Import Statement

   
8.6.
Rename Current Module

   
8.7.
Symbol to *

   
8.8.
Imports Tool

Difference and Merge

Source Code Browser

   
10.0.
Display Choices

   
10.1.
Symbol Types

   
10.2.
Display Filters

   
10.3.
Sorting the Display

   
10.4.
Navigating the Views

Integrated Python Shell

   
11.0.
Python Shell Environment

   
11.1.
Active Ranges in the Python Shell

   
11.2.
Debugging Code in the Python Shell

   
11.3.
Python Shell Options

OS Commands Tool

   
12.0.
OS Command Properties

   
12.1.
Sharing Projects with OS Commands

Unit Testing

   
13.0.
Project Test Files

   
13.1.
Running and Debugging Tests

   
13.2.
Code Coverage

      
13.2.0.
Coverage Configuration

      
13.2.1.
Code Coverage Environments

      
13.2.2.
Coverage Data Files

      
13.2.3.
How Code Coverage Works

   
13.3.
Running unittest Tests from the Command Line

Debugger

   
14.0.
Debugger Quick Start

   
14.1.
Debug Environment

   
14.2.
Named Entry Points

   
14.3.
Specifying Main Entry Point

   
14.4.
Setting Breakpoints

   
14.5.
Starting Debug

   
14.6.
Debugger Status

   
14.7.
Flow Control

   
14.8.
Viewing the Stack

   
14.9.
Viewing Debug Data

      
14.9.0.
Stack Data Tool

         
14.9.0.0.
Array, Data Frame, and Textual Data Views

         
14.9.0.1.
Stack Data Options Menu

         
14.9.0.2.
Stack Data Context Menu

         
14.9.0.3.
Filtering Value Display

         
14.9.0.4.
Advanced Data Display

      
14.9.1.
Viewing Data on the Editor

      
14.9.2.
Watching Values

      
14.9.3.
Evaluating Expressions

      
14.9.4.
Problems Handling Values

   
14.10.
Debug Process I/O

      
14.10.0.
External I/O Consoles

      
14.10.1.
Debug Process I/O Multiplexing

   
14.11.
Interactive Debug Console

      
14.11.0.
Managing Program State

      
14.11.1.
Debugging Code Recursively

      
14.11.2.
Debug Console Options

      
14.11.3.
Debug Console Limitations

   
14.12.
Multi-Process Debugging

      
14.12.0.
Debugging Child Processes

      
14.12.1.
Process Control

   
14.13.
Debugging Multi-threaded Code

   
14.14.
Managing Exceptions

   
14.15.
Running Without Debug

Advanced Debugging Topics

   
15.0.
Debugging Externally Launched Code

      
15.0.0.
Debugging Externally Launched Remote Code

      
15.0.1.
Externally Launched Process Behavior

      
15.0.2.
Debugging Embedded Python Code

      
15.0.3.
Configuring wingdbstub

      
15.0.4.
Starting Debug Automatically Using sitecustomize

      
15.0.5.
Debugger API

   
15.1.
Manually Configured Remote Debugging

      
15.1.0.
Manually Configuring SSH Tunneling

      
15.1.1.
File Location Maps

         
15.1.1.0.
Manually Configured File Location Maps

         
15.1.1.1.
Manually Configured File Location Map Examples

      
15.1.2.
Manually Configured Remote Debugging Example

      
15.1.3.
Manually Installing the Debugger

   
15.2.
Using wingdb to Initiate Debug

   
15.3.
Attaching and Detaching

   
15.4.
Debugging C/C++ and Python Together

      
15.4.0.
Debugging Extension Modules on Linux/Unix

   
15.5.
Debugging Non-Python Mainloops

   
15.6.
Debugging Linux Code with XGrab* Calls

   
15.7.
Debugger Limitations

Integrated Version Control

   
16.0.
Setting Up Version Control in Wing

   
16.1.
Version Control Tools

   
16.2.
Common Version Control Operations

   
16.3.
CVS

   
16.4.
Git

   
16.5.
Mercurial

   
16.6.
Perforce

   
16.7.
Subversion

Source Code Analysis

   
17.0.
How Analysis Works

   
17.1.
Helping Wing Analyze Code

      
17.1.0.
Setting the Correct Python Environment

      
17.1.1.
Using Live Runtime State

      
17.1.2.
Adding Type Hints

      
17.1.3.
Defining Interface Files

      
17.1.4.
Helping Wing Analyze Cython Code

   
17.2.
Analysis Disk Cache

Working with Containers and Clusters

   
18.0.
Individual Containers

   
18.1.
Working with Clusters

   
18.2.
Containers Tool

Remote Development

   
19.0.
Setting up SSH for Remote Development

   
19.1.
Configuring Remote Hosts

   
19.2.
Setting up Remote Projects

   
19.3.
Remote Development Features

   
19.4.
Remote Agent User Settings

   
19.5.
Specifying Environment for the Remote Python

   
19.6.
Manually Installing the Remote Agent

   
19.7.
SSH Setup Details

      
19.7.0.
Working With OpenSSH

      
19.7.1.
Working With PuTTY

      
19.7.2.
Working With Wing’s Built-In SSH Implementation

      
19.7.3.
Enabling Windows 10 OpenSSH Client

Scripting and Extending Wing

   
20.0.
Scripting Example Tutorial

   
20.1.
Overview of the Scripting Framework

   
20.2.
Scripting API

   
20.3.
Script Syntax

      
20.3.0.
Script Attributes

      
20.3.1.
Adding Scripts to the GUI

      
20.3.2.
Argument Collection

      
20.3.3.
Importing Other Modules

      
20.3.4.
Internationalization and Localization

      
20.3.5.
Plugin Extensions

   
20.4.
Debugging Extension Scripts

   
20.5.
Advanced Scripting

   
20.6.
API Reference

      
20.6.0.
API Reference — Utilities

      
20.6.1.
API Reference — Application

      
20.6.2.
API Reference — Editor

      
20.6.3.
API Reference — Project

      
20.6.4.
API Reference — Debugger

      
20.6.5.
API Reference — Search

      
20.6.6.
API Reference — Analysis

IDE Plugins

   
21.0.
Container Plugins

   
21.1.
Cluster Plugins

Trouble-shooting Guide

   
22.0.
Trouble-shooting Failure to Start

   
22.1.
Speeding up Wing

   
22.2.
Trouble-shooting Failure to Debug

      
22.2.0.
Failure to Start Debug

      
22.2.1.
Failure to Stop on Breakpoints or Show Source Code

      
22.2.2.
Failure to Stop on Exceptions

      
22.2.3.
Extra Debugger Exceptions

   
22.3.
Trouble-shooting Other Known Problems

   
22.4.
Obtaining Diagnostic Output

Preferences Reference

Command Reference

   
24.0.
Top-level Commands

   
24.1.
Project Manager Commands

   
24.2.
Editor Commands

   
24.3.
Search Manager Commands

   
24.4.
Refactoring Commands

   
24.5.
Unit Testing Commands

   
24.6.
Version Control Commands

   
24.7.
Debugger Commands

   
24.8.
Script-provided Add-on Commands

Key Binding Reference

   
25.0.
Wing Personality

   
25.1.
Emacs Personality

   
25.2.
VI/VIM Personality

   
25.3.
Visual Studio Personality

   
25.4.
macOS Personality

   
25.5.
Eclipse Personality

   
25.6.
Brief Personality

License Information

   
26.0.
Wing Pro Software License

   
26.1.
Open Source License Information

   
26.2.
Privacy Policy

Начало работы в Python 3 и Wing IDE 101

О версиях Python

Сейчас существуют две основных ветки (версии) развития языка Python
(питон): Python 2 и Python 3. Версия 2 официально считается устаревшей
(поддержка версии 2 заканчивается в 2020 году), версия 3
— более новой и современной. Мы будем изучать именно версию 3. Версия 2
существенно отличается от версии 3, мы не будем обсуждать эти отличия.

В пределах как версии 2, так и версии 3 есть «подверсии», например,
последняя версия из третьей ветки сейчас (2020 г.) — версия 3.8.2 (не считая тех
версий, которые находятся еще в разработке). В принципе, для наших занятий можно
использовать более-менее любую версию питона из третьей ветки, лучше как
минимум 3.3, но если нет особенных причин, то устанавливайте последнюю
доступную вам версию.

Установка Python

Python — это свободное кросс-платформенное программное обеспечение,
поэтому его можно легко скачать с официального сайта, можно свободно
распространять, и можно установить на все современные операционные
системы.

Чтобы установить Python под Windows, скачайте программу установки со
странички курса или с официального сайта (http://python.org, через
пункт Downloads; убедитесь, что вы скачиваете питон третьей версии для
Windows). Установите Python с помощью этой программы, ничего сложного в
установщике нет. Полезно установить питон куда-нибудь в корень диска,
типа в C:Python3, а не в тот путь, который предлагается
установщиком по умолчанию. Для этого при установке надо выбрать пункт
типа Customize install и на одном из следующих экранов указать
конкретный путь.

Если вы работаете в другой операционной системе, то разберитесь, как
установить питон, самостоятельно. В Linux, например, питон есть в
репозиториях всех ведущих дистрибутивов, пакет обычно называется
python3 (а просто python — это питон второй версии).

Установка Wing IDE

Сам по себе питон — это только интерпретатор кода. Он запускает ваши программы,
но не содержит удобного редактора. Поэтому для написания программ
я советую вам использовать среду разработки (по сути, продвинутый редактор)
Wing IDE.

Wing IDE — это, к сожалению, не свободное ПО, но у него существует
официально бесплатная версия для образовательных целей, называется Wing
IDE 101. Она доступна как для Windows, так и для Linux и macOS.

Все программы для установки можно скачать с официального сайта Wing IDE
(http://wingware.com/, через пункт Download — Wing IDE 101);
установщик под Windows также можно скачать со странички курса.
Обратите внимание, что вам нужна именно версия 101, а не какая-нибудь другая!
Установите Wing IDE с помощью этого установщика, ничего сложного в нем
нет.

Wing IDE — это просто среда разработки (IDE) для Python, т.е. удобный
редактор программ, позволяющий легко запускать программы с помощью
питона (именно поэтому надо отдельно устанавливать сам Python — Wing IDE
его не включает в себя). В принципе, вы можете использовать и
какую-нибудь другую среду разработки, но тогда разбирайтесь с ней сами.
В частности, сам Python включает простенькую среду разработки Python
IDLE, ее описание вы можете встретить во многих книжках по Python, но
она слишком простая и потому не очень удобная. Так же есть популярная среда
PyCharm, но на мой вкус она слишком сложная.

Проверка установки

Запустите Wing IDE. Появится следующее окошко:

0_quick_start/wing_ide_0.png

Во-первых, убедитесь, что в правом нижнем углу, на панели, озаглавленной
Python Shell, появился текст, похожий на приведенный на рисунке; в
частности, там должна быть указана версия питона, которую вы
устанавливали. Убедитесь, что это версия 3 (на рисунке это версия
3.5.2). Если это не так, то попробуйте через меню Edit — Configure
Python указать путь к питону вручную (см. рисунок ниже) — в
пункте Python Executable надо указать что-нибудь типа
C:Python3python.exe, если вы установили питон в каталог
C:Python3, возможно, также в список Python Path надо добавить
C:Python3. Возможно, вам придется поэкспериментировать, чтобы найти
правильные настройки. Если у вас на компьютере установлены обе версии
питона (и 2, и 3), то, возможно, Wing IDE по умолчанию «подцепит» версию
2, тогда тоже вручную укажите, что вам надо работать с версией 3.

0_quick_start/wing_ide_config.png

Если у вас не получается, напишите мне [1], указав, куда вы установили
питон, и прислав скриншоты основного окна Wing IDE и диалога Edit —
Configure Python.

Первая программа

В основном меню Wing IDE выберите пункт File — New. Появится окно для
редактирования текста программы. В этом окне наберите следующий текст:

(Здесь " — это символ кавычек.)

Должно получиться так:

0_quick_start/wing_ide_1.png

Убедитесь, что опечаток нет. Сохраните программу: нажмите Ctrl-S или
выберите пункт меню File — Save As. Wing IDE предложит выбрать имя файла
для сохранения, для первой программы можно выбрать любое имя.

Note

Обратите внимание, что Wing IDE раскрашивает вашу программу.
Это делается для того, чтобы ее было удобнее читать; на самом деле
для питона цвет не важен, он сделан только для того, чтобы вам было
удобнее читать. Аналогично, в этом тексте код тоже раскрашен,
причем раскраска может быть немного другой (это просто обусловлено
системой, которую я использую для написания текста). Но еще раз:
цвета только для удобства чтения, никакой больше нагрузки они не несут,
в частности, Wing может раскрашивать не так, как вы видите в этом тексте,
это не страшно.

После этого запустите программу, нажав на кнопку с зеленым
треугольничком—стрелочкой на панели инструментов над текстом программы.
Результат выполнения программы появляется в правой нижней части экрана,
в панели «Python Shell» А именно, там вы можете увидеть один из двух
возможных результатов, показанных на двух рисунках ниже.

Если там появилась надпись «Test 4»:

0_quick_start/wing_ide_2.png

значит, все хорошо, программа успешно выполнилась.

Если же там появился длинный текст со словами «Traceback» (в начале) и
«Error» (в конце):

0_quick_start/wing_ide_3.png

значит, в вашей программе есть ошибки. Подробнее про
ошибки ниже (раздел :ref:`sec:ce`), а пока, если вы увидели ошибку,
то просто внимательно проверьте, не ошиблись ли вы где-нибудь в наборе
программы.

Добейтесь того, чтобы ваша программа отработала успешно (внимательно
проверив, не допустили ли вы ошибок), и посмотрите, что же именно
пишется в этом окошке «Python Shell». Там, во-первых, виден заголовок
питона (включающий номер версии), дальше строка >>> [evaluate tmp.py]
(вместо tmp.py здесь будет имя файла, куда вы сохранили программу).
Эта строка была выведена в тот момент, когда Wing IDE начал запускать
вашу программу. И, наконец, есть строка Test 4, которую и
напечатала наша программа. Почему она напечатала именно это, обсудим
чуть ниже.

Позапускайте программу (зеленой стрелочкой) ещё несколько раз и
посмотрите на результаты. Вы увидите что, Wing IDE каждый раз печатает
строку evaluate... перед запуском программы, потом программа
печатает свою строку. Вывод программы перемешивается с выводом Wing IDE
— ничего страшного, это нормально.

Можно также запускать программу нажатием на кнопку с картинкой типа
красного жучка. Это немного другой режим запуска, более удобный для
поиска ошибок. Попробуйте позапускать и так, и так, посмотрите на
отличия (основное отличие пока — при запуске через «красного жучка»
вывод предыдущих программ затирается).

Ошибки в программе

В вашей программе могут быть серьёзные ошибки —
такие, что питон «не понимает», что вы от него хотите (а могут быть и не
столь серьёзные — программа отработает как бы нормально, но выдаст
неверный результат). В случае таких серьезных ошибок питон выдаст
сообщение, похожее на сообщение, показанное на рисунке выше. Оно обычно
начинается со слова Traceback, а ближе к концу в нем есть слово Error.

С ошибками удобнее разбираться, запуская программу в режиме «красного
жучка». В таком случае Wing IDE подсвечивает строку около ошибки
красным, а подробную информацию пишет в особом окошке справа.

Пока для вас важным будет то, какую строку Wing IDE подсветила красным —
примерно в том месте и ошибка. Важен также текст («сообщение об
ошибке»), обычно содержащий слово «Error» (в примере на рисунке
Syntax Error ...), там же рядом указан и номер строки с
ошибкой (line 1). Поначалу сообщения об ошибке сложно понимать,
но со временем вы выучите наиболее часто встречающиеся и будете сразу
понимать, что не так.

А пока посмотрите внимательно на строчку с ошибкой (при запуске через жучка
питон подсвечивает ее красным, при запуске через стрелочку — только пишет номер строки),
и на строчки рядом — и попробуйте
понять, что там не так. В примере на рисунке я забыл вторую цифру 2 (в
результате чего питону стало непонятно, на что надо умножать). (В
примере на рисунке я запускал программу через зеленую стрелочку, а не
через «красного жучка», поэтому там нет подсвеченной красным строки.)

Имейте в виду, что питон не телепат и не может точно определить, где вы
допустили ошибку. Он подсвечивает красным ту строку, где текст программы
впервые разошёлся с правилами языка. Поэтому бывает, что на самом деле
ваша ошибка чуть выше, чем подсвеченная строка (а иногда — и намного
выше). Но тем не менее место, которое выделил питон, обычно бывает
полезно при поиске ошибки.

Попробуйте в своей программе поделать разные ошибки и посмотрите, как на
них отреагирует питон.

Как работает эта программа

Давайте разберём, как эта программа работает. Напомню её текст:

Вообще, любая программа — это, в первую очередь, последовательность
команд, которые программист даёт компьютеру, а компьютер будет
последовательно их выполнять.

В нашей программе одна команда — print("Test", 2*2). Команда
print обозначает «вывести на экран» (английское слово «print»
обозначает «печатать»). В скобках после слова print указываются, как
говорят, аргументы команды. Они разделяются запятыми, в данном случае
у команды два аргумента: первый — "Test", и второй — 2*2.

Если аргументом команды print является некоторая строка, заключённая
в кавычки (символы "), то команда print выводит эту строку на
экран как есть (без кавычек). Поэтому первым делом наша команда выводит
на экран текст Test.

Вторым аргументом команды print в нашем примере является
арифметическое выражение 2*2. Если аргументом команды (любой
команды, не обязательно именно print, просто других мы пока не
знаем) является арифметические выражение, то компьютер сначала вычислит
его, а потом передаст команде. Поэтому в данном случае сначала компьютер
вычислит 2cdot 2, получит 4, а потом передаст результат команде
print, которая выведет его на экран.

Команда print разделяет выводимые элементы пробелами, поэтому между
Test и 4 выведен пробел.

В итоге получается, что наша программа выводит Test 4.

Использование питона как калькулятора

Таким образом можно использовать питон как калькулятор. Например, если
надо посчитать значение выражения 7+3cdot(8-2), то можно
написать команду print(7+3*(8-2)), после чего запустить программу —
и на экран будет выведен результат. Обратите внимание, что скобки
учтутся корректно и порядок действий будет правильный. Две скобки в
конце команды — это одна является частью выражения, а вторая заканчивает
список аргументов команды print.

В выражениях можно использовать следующие операторы:

  • + и - — сложение и вычитание (в том числе то, что называется
    унарный минус для записи отрицательных чисел: чтобы написать
    2cdot(-4), надо написать 2*(-4));
  • * — умножение;
  • / — деление («честное», например, 5/2=2.5);
  • // (это два символа / подряд) — неполное частное (см. ниже);
  • % ­— остаток (см. ниже).
  • Скобки (только круглые) работают для группировки операций, можно
    использовать вложенные скобки, например, 2*(3-(4+6)).

Чуть подробнее про деления. Есть три оператора, связанных с делением:
один оператор для честного деления (/), и два оператора для деления с остатком
(// и %). Вспомните младшие классы и деление с остатком: 16 разделить
на 3 будет 5 («неполное частное») и в остатке 1. Вот // вычисляет
неполное частное, а % — остаток. Пишется так: 16 // 3 и
16 % 3, как будто // и % — это символ операции, а-ля плюс
или звёздочка. (Пробелы вокруг // и % не обязательны, но на
питоне так принято.) (При работе с отрицательными числами результат
может показаться вам неожиданным, но это мы обсудим потом.)

Кроме того, есть так называемые функции:

  • Запись abs(-3) обозначает взятие числа по модулю: |{-}3|.
    Обратите внимание: пишется сначала имя функции (в данном случае
    abs), а потом в скобках — от чего взять эту функцию (от чего
    взять модуль в данном случае). То, что в скобках, аналогично командам
    называется аргументом функции.

  • Аналогично, запись sqrt(4) обозначает взятие квадратного корня
    (если не знаете, что это такое, то пока пропустите этот пункт), но,
    поскольку эта операция бывает нужна несколько реже, то чтобы ее
    использовать, в начале программы надо написать магическую строку
    from math import *. Программа получается, например, такая:

    from math import *
    print(sqrt(4))

Все эти операции можно комбинировать. Например, команда
print( (20 * 3) + sqrt( 2 + abs(5 - 7) ) ) выведет на экран значение
выражения 20cdot 3 + sqrt{2+|5-7|}. Пробелы в команде
поставлены, чтобы проще было читать; вообще, в питоне пробелы можно
ставить в любом разумном месте (внутри названий команд и чисел нельзя,
но около скобок, знаков препинания и прочих символов можно), но
рекомендуется ставить их как минимум вокруг знаков действий.

В одной программе можно вычислять несколько выражений. Например,
программа

print(2 * 2, 2 + 2)
print(3 * 3)

вычисляет три выражения. Первая команда print выводит на экран две
четвёрки, разделённых пробелом. Вторая команда просто выводит одно число
9. Оно будет выведено на отдельной строке, т.к. каждая команда print
выводит одну строку. Обратите еще раз внимание, что аргументы команды
разделяются запятыми.

Можно также, как мы видели раньше, смешивать текст (в кавычках) и выражения:

print("Дважды два равно", 2 * 2, ".")

Простейший ввод и вывод. Переменные

Но не очень интересно писать программы, которые всегда выводят одно и то
же. Хочется, чтобы программа что-нибудь запрашивала у пользователя, и
работала с учётом того, что пользователь ввёл. Давайте, например,
напишем программу, которая будет спрашивать у пользователя два числа и
выводить на экран их сумму.

Но для этого нам придётся научиться ещё одной важной вещи. Когда
пользователь вводит два числа, программе надо их как-то запомнить, чтобы
потом сложить между собой и результат вывести на экран. Для этого у
компьютера есть память (оперативная память). Программа может
использовать эту память и положить туда числа, введённые пользователем.
А потом посмотреть, что там лежит, сложить эти два числа, и вывести на
экран.

Во многих языках, чтобы использовать память, надо особо попросить
компьютер об этом. В питоне другой подход: питон достаточно умен, чтобы
самому догадаться, что вам нужна память. Давайте напишем следующую
программу:

a = input()
print("Вы ввели ", a, "!")

Прежде чем мы разберем, что обозначают все эти команды, наберите эту
программу и попробуйте ее запустить. Сначала запустите «зеленой
стрелочкой». В окошке Python Shell появится надпись
[evaluate ...], после чего будет моргать курсор, а наверху
этого окошка будет надпись «Waiting for keyboard input», что обозначает
«Ожидаем ввод с клавиатуры». Введите что-нибудь в этом окошке и нажмите
Enter. Вы тут же увидите, что то, что вы ввели, вывелось еще одной
строчкой на экран, с дополнительными словами («Вы ввели»), с дополнительными
пробелами и восклицательным знаком. Именно это и делает программа: она выводит на экран то, что
вы ей вводите, добавив еще текст.

Если вы запустите программу «красным жучком», то все будет аналогично,
только текст вам надо будет вводить в пустом окошке «Debug I/O», которое
появится на месте окошка «Python Shell».

Теперь разберем, как эта программа работает.

Команда input() обозначает «подожди, пока пользователь введет
что-нибудь с клавиатуры, и запомни то, что он ввел». Но просто так
попросить «запомнить» довольно бессмысленно, нам ведь потом надо будет
как-то сказать компьютеру, чтобы он вспомнил то, что он запомнил.
Поэтому мы пишем a = input(). Это обозначает «запомни то, что ввел
пользователь, в памяти, и дальше это место в памяти мы будем называть
буквой a». Соответственно, команда print(a) обозначает
«посмотри, что лежит в памяти, называемой буквой a, и выведи это на
экран», а команда print("Вы ввели ", a, "!") обозначает «выведи сначала
фразу Вы ввели, потом то, что лежит в a, потом восклицательный знак,
и раздели это все пробелами».

Обратите внимание, что a написано без кавычек.
Если бы мы написали print("Вы ввели ", "a", "!"), то питон бы
вывел просто букву a (ну и весь остальной текст), он не понял бы,
что надо вывести то, что лежит в памяти a.

Вот такие «места в памяти» называются переменные. Т.е. говорят:
«переменная a». Говорят: в первой строке мы считали, что ввел
пользователь с клавиатуры, и записали это в переменную a, а во
второй строке мы прочитали, что записано в переменной a, и вывели
это на экран.

В программе можно заводить несколько переменных. Простейший вариант
может выглядеть так:

a = input()
b = input()
print(b, a)

Эта программа считывает две строки, которые вводит пользователь, и
выводит их, причем сначала вторую, а потом первую.

Но мы хотели написать программу, которая выводит сумму двух чисел.
Простой подход тут не сработает:

a = input()
b = input()
print(a + b)

сделает вовсе не то, что вы могли ожидать: питон пока считает, что в
a и b могут лежать какие угодно строки, и не понимает, что вы
имели в виду числа.

Чтобы объяснить, что вы имеете в виду числа, надо написать так:

a = int(input())
b = int(input())
print(a + b)

Мы используем новую команду (точнее, функцию) — int. Она обозначает:
возьми то, что получилось у команды input() (т.е. ту строку, которую
вводит пользователь), и преврати это в число. Пока это не надо до конца
осознавать, просто запомните, что, чтобы считать одно число, надо
написать ... = int(input()), где на место многоточия надо подставить
имя той переменной, куда надо записать результат.

Запустите эту программу. В окошке ввода наберите какое-нибудь число,
нажмите Enter, наберите второе число и еще раз нажмите Enter. Вы
увидете, что программа вывела их сумму.

Если вы этой программе попытаетесь ввести два числа на одной строке
(т.е. введете «2 пробел 3 Enter»), то программа выдаст ошибку. Еще бы:
вы пропросили строку «2 3» превратить в число (в одно!) и
записать в переменную a, но ведь это не есть верная запись одного
числа.

Чтобы вводить числа через пробел, надо использовать другую конструкцию:

a, b = map(int, input().split())

Это пока магия, ее придется запомнить наизусть. Потом вы поймете, что
здесь что значит. Обратите внимание, что после слова int тут нет
скобок, а вот после input и split есть.

Так можно вводить сколько угодно чисел; например, чтобы считать четыре
числа, вводимые в одной строке, надо написать

a, b, c, d = map(int, input().split())

Переменные не обязательно называть a и b, можно использовать
более-менее любые строки из английских букв и цифр (есть некоторые исключения,
но пока это не так важно); например, можно было назвать переменные
first и second, или x1 и x2 и т.п. Конечно, переменных можно делать столько,
сколько вам понадобится; вообще, переменные — это основная вещь, с
которой работают программы.

Ещё несколько замечаний по нашей программе. Во-первых, программа не
вывела на экран никаких «приглашений» типа «Введите a и b». Питон ничего
за вас делать не будет; если вы хотите, чтобы программа вывела это на
экран, то так и сделайте: print("Введите a и b"). Но мы не будем
выводить такие приглашения в наших программах, мы будем считать, что
пользователь сам знает, что от него требуется. В задачах, которые вы
будете решать, будет чётко написано, что надо вывести на экран — и
ничего лишнего выводиться не должно.

Присваивания

Пока мы умеем записывать в переменные только то, что пользователь ввел с
клавиатуры. На самом деле, намного чаще приходится записывать в
переменные значения, которые программа сама вычисляет. Для этого есть
специальная команда, которая называется присваивание (и на самом деле
мы ее уже видели):

обозначает «в переменную a записать 10».

Справа от знака «равно» можно писать любые выражения (например,
a = 10 + abs(5 - 9)). Более того, там же можно использовать другие
переменные, в которые уже что-то записано. Например, программа

a = 20
b = a + 10
print(b)

выведет на экран 30, потому что сначала в a записывается 20, потом
компьютер смотрит, что записано в a, прибавляет 10, и результат
записывает в b, потом смотрит, что записано в b, и выводит на
экран.

Если в переменной уже было что-то записано, то после присваивания старое
значение затирается:

в результате в a лежит 30, а про 20 все забыли.

Особый интересный вариант — справа можно упоминать ту же переменную,
которая стоит слева — тогда будет использоваться ее предыдущее значение:

обозначает «в a запиши 20. Потом посмотри, что записано в a,
прибавь к этому 10 и то, что получится, запиши обратно в a». В
итоге в a будет записано 30.

Та команда a = input(), которую мы раньше видели, на самом деле тоже
является присваиванием: она говорит: «прочитай то, что пользователь ввел
с клавиатуры, и запиши это в a».

Слева от знака «равно» можно указывать несколько переменных через
запятую. Тогда справа тоже должно быть несколько значений через запятую
(или специальные функции типа уже упоминавшейся map, но их мы
подробнее пока обсуждать не будем):

обозначает «в a записать 10, а в b — 20».

Запись a = 10 читается «переменной a присвоить 10», или кратко «a присвоить 10».
Не надо говорить «a равно 10», т.к. «равно» — это не глагол, и не понятно,
какое действие совершается. Более того, если запись a = a + 1
прочитать с «равно», то получается «a равно a плюс один», что
никак не похоже на команду, а скорее на уравнение, которое не имеет
решений. Поэтому говорите «присвоить», а не «равно».

Есть еще ряд полезных команд, которые совмещают арифметическое действие
и присваивание. Например, запись a += 10 обозначает a = a + 10
(«увеличить a на 10»). Аналогично можно поступать с остальными
арифметическими действиями: a /= 5 обозначает a = a / 5,
a %= 5 обозначает a = a % 5, и т.п.

Комментарии

(Эта информация вам прямо сейчас не нужна, но будет полезна при чтении дальнейших разделов.)

В программе можно оставлять так называемые комментарии. А именно, если где-то в программе
встречается символ «решетка» (#), то этот символ и все, что идет за ним до конца строки,
полностью игнорируется питоном. Таким образом можно в программе оставлять пометки для себя,
или для других программистов, которые будут читать вашу программу. Например

a = int(input())  # считали число

Здесь запись # считали число полностью игнорируется питоном, как будто этих символов нет вообще,
а запись a = int(input()) работает как и должна.

В частности, решетка может стоять в начале строки, тогда вся эта строка будет игнорироваться:

# для начала, считаем число
a = int(input())

Питону совершенно не важно, где и как вы оставляете комментарии, вы их оставляете только для себя,
или для других людей, которые будут читать вашу программу. В простейших программах комментарии не нужны,
и вам поначалу они не понадобятся, но я буду их использовать в дальнейших разделах этого курса,
чтобы пояснять фрагменты кода.

Язык программирования как конструктор

Выше я рассказал ряд самых основных конструкций языка питон. Теперь ваша
задача будет из этих конструкций, как из конструктора, собирать
программы. Относитесь к этому именно как к конструктору: все
программирование — это сборка больших программ из таких отдельных
команд.

Примеры решения задач

Приведу несколько примеров задач, аналогичных тем, которые встречаются на олимпиадах
и в моем курсе.

.. task::
    Вася купил :math:`N` булочек, а Машана :math:`K` булочек больше.
    Сколько всего булочек купили ребята?

    **Входные данные**: На первой строке входных данных вводится одно число :math:`N`, на второйодно число :math:`K`.

    **Входные данные**: Выведите одно числоответ на задачу.

    **Пример**:

    Входные данные::

        4
        2

    Выходные данные::

        10
    |
    |
    |

Ну, во-первых, надо считать данные. Два числа вводятся на двух отдельных строчках, поэтому
они считываются так:

n = int(input())
k = int(input())

Дальше надо понять, по какой формуле вычисляется ответ. В этой задаче несложно догадаться, что ответ равен 2cdot N + K.
Так и выводим:

Полная программа получается такая:

n = int(input())
k = int(input())
print(2 * n + k)

Можно было поступить и по-другому: можно было, считав данные, сначала отдельно посчитать, сколько булочек купила Маша:

после чего вывести ответ как сумму n и m:

n = int(input())
k = int(input())
m = n + k
print(n + m)

Еще один альтернативный вариант — сохранить ответ в переменную, и только потом ее выводить, например, так:

n = int(input())
k = int(input())
ans = 2 * n + k
print(ans)

Все эти варианты правильные, и несложно придумать еще ряд правильных вариантов.

.. task::
    С начала суток прошло :math:`N` минут. Определите, сколько часов и минут будут показывать электронные часы в этот момент.
    Гарантируется, что :math:`N` меньше 1440, т.е. что прошло меньше полных суток.

    **Входные данные**: Вводится целое число :math:`N`.

    **Входные данные**: Выведите ответ на задачу.

    **Пример**:

    Входные данные::

        150

    Выходные данные::

        2 30
    |
    |
    |

Тут, опять-таки, надо придумать, какой математической формулой решается задача.
Если с ходу не очевидно, то подумайте: как бы вы сами решали задачу для конкретного ввода?
Вот прошло с начала суток, например, 150 минут — как понять, сколько это часов и сколько минут?

Если немного подумать, то становится понятно, что надо N разделить с остатком на 60 (количество минут в часе),
после чего неполное частное будет как раз количеством часов, а остаток — количеством минут.
Соответственно пишем программу:

n = int(input())
print(n // 60, n % 60)

Также, как и в прошлой задаче, можно было ответы сохранить в переменные при желании.

.. task::
    Маше надо купить :math:`A` больших бусин, :math:`B` средних и :math:`C` маленьких.
    Одна большая бусина стоит :math:`X` рублей, средняя — :math:`Y` рублей, маленькая — :math:`Z` рублей.
    Сколько всего рублей придется потратить Маше?

    **Входные данные**: На первой строке вводятся три числа :math:`A`, :math:`B` и :math:`C`.
    На второй строке вводятся три числа :math:`X`, :math:`Y` и :math:`Z`.

    **Входные данные**: Выведите одно числосколько рублей придется потратить Маше.

    **Пример**:

    Входные данные::

        3 2 1
        6 5 4

    Выходные данные::

        32
    |
    |
    |

Очевидно, что ответ на задачу равен Acdot X + Bcdot Y + Ccdot Z.
Осталось аккуратно ввести и вывести данные. Тут задаются две строки по три числа,
поэтому вводить данные надо два раза через map(int(...:

a, b, c = map(int, input().split())
x, y, z = map(int, input().split())
print(a * x + b * y + c * z)
.. task::
   Машина едет со скоростью :math:`N` километров в час. Выведите эту информацию по-английский
   по образцу: «The speed is :math:`N` kmph.», подставив вместо :math:`N` введенное число (см. пример).

    **Входные данные**: Вводится одно число :math:`N`.

    **Входные данные**: Выведите строку.

    **Пример**:

    Входные данные::

        55

    Выходные данные:

    .. code-block:: text

        The speed is 55 kmph.
    |
    |
    |

Считывание числа, думаю, уже не должно представлять проблем, а вот для вывода надо вспомнить,
что можно выводить не только числа, но и строки:

n = int(input())
print("The speed is", n, "kmph.")

Что дальше?

(Естественно, это раздел только для учеников моего курса.)

Во-первых, если вы еще этого не сделали, прочитайте на страничке курса
все тексты в «шапке» курса, особенно раздел «Работа с сайтом…», после
чего начинайте решать «Задачи на арифметические операторы». И двигайтесь
дальше.

Внимание! Не надо прямо сейчас читать следующие разделы этого текста,
не надо нажимать кнопку «Next» ниже. Дальше идет теория для следующих тем,
поэтому сначала прорешайте задачи на арифметические операции на сайте,
потом уже переходите к следующим темам (по ссылкам на сайте).

И по любым вопросам пишите мне.

[1] Конечно, предложения «написать мне» относятся только к ученикам моего курса.

Кроссплатформенная среда разработки для языка Python. Более функциональная, чем IDLE, не столь сложная, как PyCharm.

Выпускается в следующию вариантах:

  • Wing 101 — для начинающих и обучения программированию. Бесплатная.
  • Wing Personal — для домашнего использования. Также бесплатная, может быть использована и в школах.
  • Wing Pro — профессиональная платная версия.

Сравнение возможностей различных вариантов Wing IDE

Внимание! Устаревшие версии Wing IDE могут не поддерживать новые версии языка Python! Например, Wing IDE 9 поддерживает версии Python от 3.3 до 3.11 (включительно), но не будет поддерживать будущую версию 3.12. Wing IDE 8 поддерживает Python до версии 3.10 (включительно) и не поддерживает Python 3.11. Wing IDE 7 поддерживает Python до версии 3.9 (включительно) и не поддерживает Python 3.10 и более новый. Поэтому рекомендуется выбирать последнюю версию Wing IDE. Если вы обновили Python на более новую версию (например, обновили Python с версии 3.10 до версии 3.11), проверьте, что версия Wing IDE поддерживает новую версию Python. При необходимости обновите версию Wing IDE. Это не относится к обновлению релиза, то есть третьего числа в номере версии, например, к обновлению версии Python с 3.10.8 до 3.10.9.

Установка в МОС

Установка производится из rpm-пакета, который нужно скачать со страницы http://wingware.com/

Для скачивания среды Wing 101 откройте страницы http://wingware.com/downloads/wing-101

Для скачивания среды Wing Personal откройте страницу http://wingware.com/downloads/wing-personal

На этих страницах нажмите на кнопку справа «RPM Package 64-bit». Если вы открываете сайт не в системе Linux и таких кнопок нет, выберите внизу страницы «Other OSes: Linux».

Прямые ссылки на скачивание версии 9.0.2 в виде RPM-пакета (последняя версия на январь 2023):

Wing 101: https://wingware.com/pub/wing-101/9.0.2.0/wing-101-9-9.0.2-0.x86_64.rpm

Wing Personal: https://wingware.com/pub/wing-personal/9.0.2.0/wing-personal9-9.0.2-0.x86_64.rpm

Установить пакеты нужно при помощи команды apt-get install <имя-файла-с-пакетом> с правами администратора. Например, для установки версии 9.0.2 нужно выполнить такие команды, запустив их в том же каталоге, в котором сохранены скачанные файлы:

Для установки Wing 101:

# apt-get install wing-101-9-9.0.2-0.x86_64.rpm

Для установки Wing Personal:

# apt-get install wing-personal9-9.0.2-0.x86_64.rpm

Или если вы скачали rpm-пакеты, то установить все скачанные rpm-пакеты, которые лежат в текущем каталоге, можно при помощи маски файла:

# apt-get install *.rpm

Скачивание и установку можно сделать одной командой.

Для скачивания и установки Wing 101 версии 9.0.2:

# wget https://wingware.com/pub/wing-101/9.0.2.0/wing-101-9-9.0.2-0.x86_64.rpm && apt-get install wing-101-9-9.0.2-0.x86_64.rpm

Для скачивания и установки Wing Personal версии 9.0.2:

# wget https://wingware.com/pub/wing-personal/9.0.2.0/wing-personal9-9.0.2-0.x86_64.rpm && apt-get install wing-personal9-9.0.2-0.x86_64.rpm

В оболочке КДЕ МОС ярлыки для запуска приложений будут находиться в меню «Разработка — Другие». Если хочется перенести ярлыки в меню «Разработка — IDE», то необходимо отредактировать desktop-файлы, в которых хранится информация о запуске среды. Это необходимо сделать из консоли под пользователем root. Например, если для редактирования использовать редактор nano, то запустите редактор для правки следующих файлов:

# nano /usr/share/kf5/applications/wing-101-9.desktop
# nano /usr/share/kf5/applications/wing-personal9.desktop

В редакторе nano найдите строку Categories=Python;Development; и допишите в конец «IDE», то есть должно получиться Categories=Python;Development;IDE . Эти файлы после редактирования можно скопировать на все компьютеры.

Установка в Windows

Перед установкой Wing IDE сначала необходимо установить Python.

Скачать последнюю версию Wing 101 можно со страницы http://wingware.com/downloads/wing-101/. Если вы открываете эту страницу не в Windows, то найдите текст «Other OSes» и нажмите на «Windows». Нажмите на кнопку «Windows installer».

Скачать последнюю версию Wing Personal можно со страницы http://wingware.com/downloads/wing-personal/.

Прямые ссылки на скачивание версии 9.0.2 для Windows (последняя версия на январь 2023):

Wing 101: https://wingware.com/pub/wing-101/9.0.2.0/wing-101-9.0.2.0.exe

Wing Personal: https://wingware.com/pub/wing-personal/9.0.2.0/wing-personal-9.0.2.0.exe

Запустите программу установки с правами администратора, установка затруднений не представляет.

При первом запуске Wing IDE спросит разрешение на изменение настроек Firewall для доступа к удалённой отладке, для локальной разработки эта настройка не важна (можно разрешить, можно запретить).

Проверка работы среды Wing IDE

Запустите среду. В правой нижней части экрана будет панель «Оболочка Питон» (Python shell). В этой панели запускается оболочка языка Python, там должна быть информация о версии интерпретатора Python.

Среда Wing 101, панель «Python shell»

Если оболочка Python не запустилась, то возможные причины для этого следующие:

  • Интерпретатор Python не был установлен. Установите его.
  • Интерпретатор Python в системе Windows был установлен не в C:Program Files, а в профиль пользователя. Повторите установку, проверив, что установка производится для всех пользователей в каталог C:Program files.
  • Интерпретатор Python в системе Windows был установлен, но не был добавлен в переменную PATH. Повторите установку, выбрав на первом экране опцию «Добавить python.exe в PATH».
  • Используется новая версия Python, которая не поддерживается данной версией Wing IDE. Используйте последнюю версию среды Wing IDE.

Затем создайте новую программу через меню «Файл — Новый» (File — New) или нажатием на Ctrl+N. Вставьте следующий текст программы.

Сохраните файл, при сохранении укажите расширение .py для файла. Запустите программу, нажав на зелёную стрелку на панели инструментов вверху. В среде Wing 101 результат запуска появится в панели «Оболочка Python» (Python shell).

Wing 101, запуск простой программы

В среде Wing Personal программа запускается в панели «I/O Отладки» (Debug I/O). Там же запускается программа и в режиме отладки в среде Wing 101.

Среда Wing Personal, панель Debug I/O

Wing Pro Tutorial

Index of All Documentation
»

Wing Pro Screenshot

This tutorial introduces Wing Pro by taking you through its feature set with
a small coding example.
For a faster introduction, see the Quick Start Guide.

This copy of the tutorial is for Wing Pro. We strongly recommend using the

Tutorial

in Wing’s

Help

menu because it contains links into the IDE’s functionality and it
omits features not available when running Wing Personal or Wing 101. Compare Products

If you are new to programming, you may want to check out the book Python Programming
Fundamentals and accompanying screen casts, which use
Wing 101 to teach programming with Python.

Our How-Tos show how to use Wing with 3rd party web development
frameworks, GUI toolkits, scientific data visualization tools, Python-based modeling,
rendering & compositing systems, and other Python frameworks and toolkits.
A collection of Wing Tips, available on our website and
by weekly email subscription, provides additional tips and tricks for using Wing
productively.

Section Contents

Понравилась статья? Поделить с друзьями:
  • Сирдалуд инструкция по применению цена отзывы аналоги кому прописывают таблетки
  • Под руководством сына
  • Каким должен быть руководство
  • Дрожжи для вина гервин инструкция по применению
  • Амоксициллин 500 мг инструкция по применению цена инъекции