Быстрый старт с Python в Visual Studio (Quickstart with Python in Visual Studio)

Автор: | 23.06.2019

Tags:  Python Visual Studio Quickstart

Введение
Инсталляция Python в  Visual Studio
Приложение «Hello, Visual Studio!»
Основы Python
GUI-приложения
Связывание Python и C/C++
Полезные ссылки

Введение

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

Python относится к наиболее востребованным и популярным языкам программирования. Достоинства языка:

  • широкое назначение;
  • кроссплатформенность;
  • простота.

Python не предназначен для чего-то конкретного, это язык общего назначения: подходит для web-проектов, для desktop- и серверных приложений и даже ИИ. Он содержит множество библиотек для машинного обучения, автоматизации процессов, анализа и визуализации данных.

Python реализован под всеми распространенными операционными системами и на множестве архитектур – Windows, Linux, MacOS, даже на мини-компьютерах Arduino. Система зависимостей хорошо продумана, и разворачивание приложений на другой машине происходит легко и без сюрпризов.

Python достаточно прост, сравните количество и понятность строк кода:

“Java” справляется в 5 строк, используем множество скобок.

“C” работает похоже, хоть строк и немного меньше:

Python использует одну понятную строку:

Python поддерживает любой стиль программирования.   Изначально, это был объектно-ориентированный язык, но со временем он стал поддерживать и парадигму функционального программирования. Обычно за изучение Python берутся те программисты, у которых уже имеется опыт работы с языками C++ или Java, а также функциональным языком (например Lisp).

Профессиональным программистам Python также необходимы знания:

  • веб-фреймворка Django;
  •  Java,  и C/C++;
  • JavaScript, REST, CSS, HTML, Web Sockets, AJAX, Canvas;
  •  систем управления базами данных.

Python — интерпретируемый язык. В этом его главный недостаток.  Программы, написанные на Python, работают медленнее, чем созданные на компиллируемых языках (C, C++). Но медленный код можно переписать на C или C++ и связать его с Python.

Выполнение Python кода осуществляется в подходящем окружении, таком как Visual Studio и веб-серверы.

Инсталляция Python в Visual Studio

Приложение «Hello, Visual Studio!»

Подробнее об особенностях отладки и управления Python  см. шаги 4-6 из  Учебник. Работа с Python в Visual Studio   (Tutorial: Work with Python in Visual Studio).

Основы Python

См.   Основы языка программирования Python за 10 минут

GUI-приложения

Python поддерживает большое количество библиотек для создания GUI-приложений: Tkinter, PyQt, PyGTK  и др.

Tkinter, в отличие от других библиотек — стандартный модуль Python. Он прост и по быстрому дает навык работы с GUI. Основные принципы работы с другими библиотеками не сильно отличаются:

  • всякий GUI-инструмент имеет некоторый набор графических компонентов (виджетов — widget) и средства для компоновки таких виджетов в окне приложения, а каждый из компонентов имеет свой специфический набор событий, которые он может генерировать;
  • для каждого потенциально возможного (обрабатываемого) события назначается функция обратного вызова (callback функция), которая будет вызываться при наступлении этого события (обработчик события);
  • при возникновении событий, для которых не были назначены обработчики, они будут игнорироваться;
  • создаётся бесконечный цикл опроса (ожидания) событий (главный цикл), порождаемых действиями пользователя (ввод с клавиатуры, перемещение указателя или нажатие кнопки мыши и т.д.);
  • на каждом «витке» главного цикла приложения анализируются наступившие (со времени предыдущего «витка») события, и для каждого такого события вызывается его обработчик, если ожидающих событий несколько, то они обрабатываются в порядке очереди;

Курс «Tkinter. Программирование GUI на Python» кратко и доступно знакомит с особенностями создания графического интерфейса пользователя средствами пакета tkinter. В разделе  Что такое Tkinter приводится описание простого приложения «Преобразователь текста».

Код программы «Преобразователь текста».

from tkinter import *
 
class Block:
    def __init__(self, master):
        self.e = Entry(master, width=20)
        self.b = Button(master, text="Преобразовать")
        self.l = Label(master, bg='black', fg='white', width=20)
        self.e.pack()
        self.b.pack()
        self.l.pack()
    def setFunc(self, func):
        self.b['command'] = eval('self.' + func) 
    def strToSortlist(self):
        s = self.e.get()
        s = s.split()
        s.sort()
        self.l['text'] = ' '.join(s)
    def strReverse(self):
        s = self.e.get()
        s = s.split()
        s.reverse()
        self.l['text'] = ' '.join(s)
 
root = Tk()
 
first_block = Block(root)
first_block.setFunc('strToSortlist')
 
second_block = Block(root)
second_block.setFunc('strReverse')
 
root.mainloop()

В статье Введение в Tkinter   приводится описание  приложения «Текстовый редактор».

Код программы «Текстовый редактор».

from tkinter import *
from tkinter import filedialog

def Quit(ev):
 global root
 root.destroy()
 
def LoadFile(ev): 
 fn = filedialog.Open(root, filetypes = [('*.txt files', '.txt')]).show()
 if fn == '':
  return
 textbox.delete('1.0', 'end') 
 textbox.insert('1.0', open(fn, 'rt').read())
 
def SaveFile(ev):
 fn = filedialog.SaveAs(root, filetypes = [('*.txt files', '.txt')]).show()
 if fn == '':
  return
 if not fn.endswith(".txt"):
  fn+=".txt"
 open(fn, 'wt').write(textbox.get('1.0', 'end'))

root = Tk()

panelFrame = Frame(root, height = 60, bg = 'gray')
textFrame = Frame(root, height = 340, width = 600)

panelFrame.pack(side = 'top', fill = 'x')
textFrame.pack(side = 'bottom', fill = 'both', expand = 1)

textbox = Text(textFrame, font='Arial 14', wrap='word')
scrollbar = Scrollbar(textFrame)

scrollbar['command'] = textbox.yview
textbox['yscrollcommand'] = scrollbar.set

textbox.pack(side = 'left', fill = 'both', expand = 1)
scrollbar.pack(side = 'right', fill = 'y')

loadBtn = Button(panelFrame, text = 'Load')
saveBtn = Button(panelFrame, text = 'Save')
quitBtn = Button(panelFrame, text = 'Quit')

loadBtn.bind("<Button-1>", LoadFile)
saveBtn.bind("<Button-1>", SaveFile)
quitBtn.bind("<Button-1>", Quit)

loadBtn.place(x = 10, y = 10, width = 40, height = 40)
saveBtn.place(x = 60, y = 10, width = 40, height = 40)
quitBtn.place(x = 110, y = 10, width = 40, height = 40)

root.mainloop()

Связывание Python и C/C++

См. Создание расширения C++ для Python    (Create a C++ extension for Python)

Полезные ссылки:

 

Автор: Николай Свирневский