Установка системы и среда программирования




Существуют три известных реализации среды исполнения для Python: CPython, Jython и Python.NET. Как можно догадаться из названия, первая среда реализована на языке C, вторая на языке Java, а последняя – на платформе.NET.

Для установка Питона в ОС Windows необходимо скачать установочный файл (например, Python-2.3.3.exe), запустить его на своем компьютере и ответить на все вопросы программы установки, завершая ответ нажатием кнопки «Next». Сначала необходимо указать куда интерпретатор должен быть установлен. По умолчанию он ставится в каталог C:\PythonXX, где XX – номер версии. На этом шаге достаточно нажать кнопку «Next». Далее программа спросит, нужно ли сохранять резервные копии заменяемых файлов. Если вы ставите Питон впервые, то отметьте вариант «No, do not make backups».

Следующий шаг – выбор устанавливаемых компонентов. Лучше включить установку всего, что предлагается (в том числе, документацию). Полный комплект занимает на жестком диске порядка 20 мегабайт. Наконец, нужно задать название группы для главного меню. Можно просто нажать «Next» Программа покажет сводную информацию о том, что и куда будет установлено. Еще раз нажмите «Next» и дожидайтесь окончания установки. Нажмите «Finish» для выхода из программы установки.

В ОС Windows программы, написанные на Питоне запускаются при помощи Проводника выбирается файл, содержащий программу. Питон при установке связывает расширение файла.py с интерпретатором Питона, поэтому при двойном щелчке на таком файле будет запущен Питон, который выполнит программу, записанную в файле. Если Ваша программа не имеет
графического интерфейса, то операционная система Windows откроет окно консоли. После завершения работы программы это окно будет сразу же закрыто, поэтому можено не успеть увидеть результат ее работы. Избежать этого можно, добавив в конце программы следующую строку:

raw_input("Press any key to exit")

Это заставит интерпретатор дождаться нажатия любой клавиши, прежде чем завершить программу. Если же вы задали другое расширение, то метод запуска двойным щелчком не сработает. В Windows программы на Питоне всегда должны иметь расширение.py или. pyw. Второй вариант отличается тем, что Питон запускается «молча», то есть без открытия окна консоли. Расширение.pyw рекомендуется давать программам, имеющими графический интерфейс, которые не нуждаются в окне консоли вообще.

Другой вариант – это открыть окно сеанса MS-DOS (или запустить FAR) и выполнить следующую команду:

C:\Examples> python my_program.py

Этой командой мы запускаем интерпретатор Питона и указываем ему, программу из какого файла он должен выполнить.

 

Среда разработки IDLE

https://pythonworld.ru/osnovy/pervaya-programma-sreda-razrabotki-idle.html

 

 

https://www.ibm.com/developerworks/ru/library/l-python_part_1/index.html

https://window.edu.ru/resource/825/76825/files/python_structured_programming.pdf


 

Описание языка PYTHON

Исходный код Python состоит из логических строк, каждая из которых в свою очередь состоит из физических строк. Для обозначения комментариев используется символ #. Комментарии и пустые строки интерпретатор игнорирует.

В Python нет символа, отвечающего за отделение выражений друг от друга в исходном коде, как, например, точка с запятой (;) в C++ или Java. Символ «;» позволяет разделить несколько инструкций, находящихся на одной физической строке.

Физические строки выписываются построчно. Если выражение слишком длинное, то две физических строки можно объединить в одну логическую. Для этого в конце первой строки ввести символ обратного слеша (\), и тогда следующую строку интерпретатор будет трактовать как продолжение первой. При этом далее в строке за символом «\» ничего писать нельзя. Для выделения блоков кода используются отступы. Логические строки с одинаковым размером отступа формируют блок, и заканчивается блок при появлении логической строка с отступом меньшего размера. Поэтому первая строка в сценарии Python не должна иметь отступа.

Имеется стандартный набор операторов и ключевых слов. Используются стандартные правила задания идентификаторов переменных, методов и классов – имя должно начинаться с подчеркивания или латинского символа любого регистра и не может содержать символов @, $, %. Также не может использоваться в качестве идентификатора только один символ подчеркивания.

Типы данных, используемые в Python:

· Целые и вещественные типы данных;

· Комплексный тип данных с вещественной и мнимой частью (пример такого числа – 1.5J или 2j, где J представляет собой квадратный корень из -1);

· Строки, заключаемые в одинарные, двойные или тройные кавычки, не изменяющие свое значение после создания;

· Логический тип данных bool c двумя вариантами значения – True и False. В качестве значений логических переменных стоит использовать 1 (True) или 0 (False).

Строки

Строки в Python определяются кавычками «"» или апострофами «'». Внутри кавычек могут присутствовать апострофы или наоборот. Например, строка «Он сказал 'привет'!» будет выведена на экран как

Он сказал 'привет'!

Если нужно использовать строку из несколько строчек, то эту строку надо начинать и заканчивать тремя двойными кавычками «"""».

Вы можете подставить в шаблон строки элементы из кортежа или словаря. Знак процента «%» между строкой и кортежем, заменяет в строке символы «%s» на элемент кортежа. Словари позволяют вставлять в строку элемент под заданным индексом. Для этого надо использовать в строке конструкцию «%(индекс)s». В этом случае вместо «%(индекс)s» будет подставлено значение словаря под заданным индексом.

Print "Name: %s \n Number: %s \n String: %s" % (my class.name, 3, 3 * "_")

Name: Poromenos

Number: 3

String: ___

strString = """Этот текст расположен

на нескольких строках"""

print "This %(verb)s a %(noun)s." % {"noun": "test", "verb":"is"}

This is a test.

 

Структуры данных

Python имеет следующие структуры данных:

· Списки (lists). Списки – похожи на одномерные массивы (многомерный массив можно создавать как список включающий список);

· Кортежи (tuples). Кортеж – неизменяемый список;

· Словари (dictionaries). Словарь – тоже список с индексами любого типа, а не только числового. "Массивы" могут содержать данные любого типа, т.е. в массиве могут находиться числовые, строковые и другие типы данных. Массивы начинаются с индекса 0, а последний элемент можно получить по индексу -1. Переменным можно присваивать функции и использовать их соответственно.

Примеры:

spisok = [1, ["другой", "список"], ("a", "в")] #Состав: число, список и кортеж

spisok = ["первый", 2, 3. 14] #Состав списка: строка, целое и дробное число

spisok [0] = "снова первый" #Изменяем 1-й (0-й) элемент списка

spisok [2] = 3.14 #Изменяем последний элемент листа

slovar = {"Key 1": "San 1", 2: 3, "pi": 3.14}#Словарь, с разными индексами

slovar ["pi"] = 3.15 #Изменяем элемент словаря под индексом "pi".

tuplau = (1, 2, 3) #Задаем кортеж

oznlk = len #Объявление синонима функции

print oznlk (spisok) # печатает 3

 

Можно использовать часть массива, задавая первый и последний индекс через «:». Если нет первого элемента, то отсчет начинается с начала массива, а если нет последнего, то массив считывается до последнего элемента. Отрицательные значения определяют положение элемента с конца. Например:

 

spisok = ["Elem 1", 2, 3.14]

print spisok [:] #Выводятся все элементы массива ['Elem 1', 2, 3.14]

print spisok [0: 2] #Выводятся 0-й и 1-й элемент массива. [' Elem 1', 2]

print spisok [-3:-1] #Выводятся элементы от 0-го (-3) до 2-го (-1) ['Elem 1',2]

print spisok [1:] #Выводятся элементы от 1-ого, до последнего [2, 3.14]

 


 

Простые конструкции

Основные формы синтаксических конструкций:

1. Python не содержит операторных скобок (begin..end как в pascal или {..} как в Си), вместо этого блоки определяются отступами: пробелами или табуляцией (нужно выполнять только в одной из форм);

2. Вход в блок из операторов осуществляется двоеточием;

3. Однострочные начинаются со знака «#»;

4. Многострочные комментарии начинаются и заканчиваются тремя кавычками «"""»;

5. При присвоении значения переменной используется знак «=»;

6. Знак сравнения значений – «==»;

7. Для добавления значения переменной используется оператор «+=»;

8. Для уменьшения – «-=». Эта операция может взаимодействовать с большинством типов, в том числе со строками.

Примеры:

a = 1 # а присваивается значение 1

a += 2 # значение а увеличивается на 2

a -= 3 # значение а уменьшается на 3

"""Пример многострочного комментария

Строки комментария игнорируются"""

s = "Доброе " # в переменную s записывается строка текста "Доброе "

s += " утро." # в переменную s добавляется строка текста "утро"

print s # напечатается текст “Доброе утро.”

# Следующая строка меняет значения переменных местами.

a, s = s, a

 


3.3. Потоковый ввод-вывод и
работа с текстовыми файлами

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

Пример:

N=input()

В случае необходимости пропуска строки текстов можно написать

input()

Если необходимо ввести значения группы переменных, разделенных пробелами, необходимо использовать split()

a,b,c=input().split() # можно написать input().split(‘ ‘)

Если значения разделены символом «,», нужно написать split(‘,‘)

 

Задача с большими числами. Записано два неотрицательных целых числа, не превышающих 10100, по одному в каждой строке. Нужно вывести одно целое число — сумму чисел А и В, без лидирующих нулей.

Можно написать два варианта решения этой задачи

1) аналогично методам решения, предлагаемым на языке Паскаль для малых чисел[1]

A=int(input())

B=int(input())

print(A+B)

2) с использованием потоковых функций.

print(int(input ())+int(input ()))

или

r=input # обозначение input через имя r

print(int(r())+int(r()))

 

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

Пример:

print(N) # выводит значение в текстовой форме.

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

Пример:

print(N, a[N]) – выводит через пробел индекс и значение элемента массива.

В случае необходимости пропуска строки текстов можно написать

input()

Если необходимо ввести значения группы переменных, разделенных пробелами, необходимо использовать split()

a,b,c=input().split() # можно написать input().split(‘ ‘)

Если значения разделены символом «,», нужно написать split(‘,‘)

 

Для работы с текстовыми файлами

inp = open('input.txt', 'r') – открытие файла inp из 'input.txt'

out = open('output.txt', 'w') – открытие файла out из 'output.txt'

T = int(inp.readline()) – ввод целого числа в переменную Т

out.write(ans + "\n") – вывод значения переменной ans с переходом на новую строку

 

Условные конструкции

По аналогии с языками программирования Паскаль, С++ можно использовать конструкции похожие на условный оператор.

Для вычисления c=max(a,b) можно применить следующие фрагменты программ:

if a>b then c:=a else c:=b; // – на языке Pascal

if (a>b) c=a; else c=b; // – на языке С++

Данная конструкция на языке Python может быть записана следующим образом:

if a>b: c=a

else: c=b

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

с= (a if a>b else b)

 

Задача. Во входной строке записаны три натуральных числа через пробел. Каждое из чисел не превышает 10100. Нужно вывести максимальное целое число.

По аналогии с языком Паскаль было бы следующее решение[2]:

x,y,z=map(int,input().split()

if x>=y and y>=z: print(x)

elif y>=z: print(y)

else: print(z)

 

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

x,y,z=map(int,input().split()

print(x if x>=y and y>=z else y if y>=z else z)

 

Используя потоковые функции, можно написать следующую программу:

print(max(map(int,input().split())))

Операторы

Операторы while, if, for – операторы перемещения.

Оператор for сравнивает переменную и списка. Чтобы получить список цифр до числа <san> — используйте функцию range(<san>).

Примеры операторов

rangelist = range (10) # Получаем список из десяти цифр (от 0 до 9)

print rangelist # Печатает эти значения

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

for number in rangelist: # number увеличиваясь входит в список...

if number in (3, 4, 7, 9): # Если number входит в кортеж (3, 4, 7, 9)...

break # Операция «break» обеспечивает выход из цикла

else: # необязательно. Условие выполняется, если цикл не был прерван

continue # «continue» продолжает цикл. Хотя здесь это не требуется

pass # Ничего не делать

if rangelist [1] == 2:

print "The second item (lists are 0-based) is 2"

elif rangelist [1] == 3:

print "The second item (lists are 0-based) is 3"

else:

print "Dunno"

while rangelist[1] == 1:

pass


Функции

При объявлении функции используется ключевое слово «def». Аргументы функции задаются в скобках. Можно задавать необязательные аргументы, присваивая им значение по умолчанию. Функции могут возвращать кортежи, в таком случае надо писать возвращаемые значения через запятую.

Ключевое слово «lambda » служит для объявления элементарных функций.

def f (ar1, ar2 = 100, ar3 = "test"):

# ar2 и ar3 - необязательные аргументы, принимают значение, объявленное

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

return arg3, arg2, arg1

“”” Функция вызывается со значением 1-го аргумента – "Ar 1", 2-го – по умолчанию, и 3-го - "Named ar". “””

r1, r2, r3 = f ("Ar 1", ar3 = "Named ar")

# r1, r2 и r3 принимают значения "Named ar", 100, "Ar 1" соответственно

print r1, r2, r3 # Named ar 100 Ar 1

 

# Следующая запись эквивалентна def f(x): return x + 1

fvar = lambda x: x + 1

print fvar (1) # 2


Глобальные переменные

Глобальные переменные объявляются вне функций и могут читаться без каких-либо объявлений. Если необходимо изменить значение глобальной переменной из функции, то необходимо в начале функции ключевым словом «global» объявить эту переменную, иначе Python объявит ее локальной в этой функции.

 

n = 5

m =7

def f():

print(n) # Выводит 5

 

def f1():

# Это вызывает исключение, поскольку глобальная а переменная не была

# вызвана из функции. Python в этом случае создает одноименную

# переменную внутри этой функции и доступную только для операторов

# этой функции.

print (n)

n = 3

def yetanotherfunc():

global n

# И только из этой функции значение переменной изменяется.

n = 3


Компьютерная графика


 

Классы

Python ограничен в множественном наследовании в классах. Внутренние переменные и внутренние методы классов начинаются с двух знаков нижнего подчеркивания «__» (например «__myprivatevar»). Можно присвоить значение переменной класса извне. Пример:

 

class Myclass:

common = 10

def __init__(self):

self. myvariable = 3

def myfunction (self, arg1, arg2):

return self. myvariable

# Здесь объявили класс Myclass. Функция __init__ вызывается автоматически при инициализации классов.

classinstance = Myclass ()

# Инициализирован класс и переменная myvariable принимает значение 3 как заявлено в методе инициализации

classinstance.myfunction(1, 2)

#Метод myfunction класса Myclass возвращает значение переменной myvariable

3

# Переменная common объявлена во всех классах

classinstance2 = Myclass ()

classinstance.common # 10

classinstance2.common # 10

# Поэтому, если изменить ее значение в классе Myclass изменятся

# и ее значения в объектах, инициализированных классом Myclass

Myclass.common = 30

classinstance.common # 30

classinstance2.common # 30

# А здесь не изменяется переменная класса. Вместо этого объявляется

# в объекте и присваивается ей новое значение

classinstance.common = 10

classinstance.common # 10

classinstance2.common # 30

Myclass.common = 50

# Теперь изменение переменной класса не коснется переменных объектов

# этого класса

classinstance.common # 10

classinstance2.common # 50

# Следующий класс является наследником класса Myclass, наследуя его

# свойства и методы, к тому же класс может наследоваться из нескольких

# классов, в этом случае запись такая: class Otherclass(Myclass1, Myclass2,

# MyclassN)

class Otherclass (Myclass):

def __init__(self, arg1):

self.myvariable = 3

print arg1

classinstance = Otherclass("hello")

hello

classinstance.myfunction(1, 2) # 3

# Этот класс не имеет совйтсва test, но мы можем

# объявить такую переменную для объекта. Причем

# эта переменная будет членом только classinstance.

classinstance. test = 10 # classinstance.test – 10

 

Исключения в Python имеют структуру try - except [ except ionname]:

def somefunction():

try:

10 / 0 # Деление на ноль вызывает ошибку

Except ZeroDivisionError:

# Но программа не "Выполняет недопустимую операцию"

# А обрабатывает блок соответствующий ошибке «ZeroDivisionError»

Print "Oops, invalid."

fnexcept ()

Oops, invalid.


Литература

 


 

Приложения

-------------------------------------------------

Задача C4-0-1.

Решение на языке Python 3.

Автор: Константин Поляков, 2013

E-mail: kpolyakov@mail.ru

Web: kpolyakov.spb.ru

-------------------------------------------------

В первой строке сообщается количество учащихся N, каждая из следующих N строк имеет формат:

<Фамилия> <Инициалы> <номер школы>

где <Фамилия> – строка, состоящая не более чем из 20 символов,

<Инициалы> – строка, состоящая из 4-х символов (буква, точка, буква,

точка), <номер школы> – не более чем двузначный номер. <Фамилия> и

<Инициалы>, а также <Инициалы> и <номер школы> разделены одним пробелом. Пример входной строки:

Иванов П.С. 57

Требуется написать как можно более эффективную программу, которая будет выводить на экран информацию, из какой школы было меньше всего участников (таких школ может быть несколько). При этом необходимо вывести информацию только по школам, пославшим хотя бы одного участника. Следует учитывать, что N>=1000.

"""

import sys

save_stdin = sys.stdin

sys.stdin = open("in/0-1.in")

N = int(input())

schCount = {}

for i in range(N):

fam, io, school = input().split()

schCount[school] = schCount.get(school, 0) + 1

minCount = min(schCount.values())

schMin = [x[0] for x in list(schCount.items()) if x[1] == minCount]

for x in sorted(schMin):

print(x)

sys.stdin = save_stdin

 


 

Импорт

Внешние библиотеки можно подключить процедурой «import [libname]», где [libname] – название подключаемой библиотеки. Можно использовать команду «from [libname] import [funcname]», Чтобы использовать функцию [funcname] из библиотеки [libname]

 

Import random #Импортируем библиотеку «random»

From time import clock #И заодно функцию «clock» из библиотеки «time»

 

randomint = random.randint (1, 100)

print Randomint # 64

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: