Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Ввод данных: функция input()



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

функция input возвращает текстовую строку. Если переменные должны быть целочисленными, то после считывания выполняется преобразование типов при помощи функции int, и записываются новые значения в переменные a и b.

Если при вводе надо делать запрос, то задается текстовый параметра запроса.

Примеры:

1)

A= input(‘ A=’)# формируется поле ввода A= BABAJprint(‘A=’+A)#напечатает – А=BABAJ print(‘A=’)A=input()# формируется поле ввода A=# BABYprint(‘ A=’, A)#напечатает с пробелом – А= BABY

2)

A= B= int( inpu()) # вводится одно значение в две переменные

Вывод данных: функция print()

Примеры

a = 1b = 2print(a,‘+’,b,‘=‘,a+b)# результат# 1 + 2 = 5 # при вводе этих чиселa= input()b=input()print(a,‘+’,b,‘=‘,a+b)# результат# 1 + 2 = 12 # при вводе этих чиселa= int( input())b=int(input())print(a,‘+’,b,‘=‘,a+b)# результат# 1 + 2 = 3

Выводимые значения разделяются пробелом. Но это можно изменить: разделять выводимые значения можно любым словом, с переходом на следующую строку или не разделять никак. Для этого нужно функции print передать специальный именованный параметр sep, равный строке, используемый в качестве разделителя (sep – separator). По умолчанию sep= “ “ и между значениями выводится пробел. Чтобы в качестве разделителя было двоеточия нужно передать параметр sep, равный строке ‘:’:

print(a, b, sep = ‘:’) # результат – 1:2

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

print(a, ‘+’, b, ‘=‘, a + b, sep = ‘’) # результат –1+2=3

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

print(a, b, sep = ‘\n’)

Символ обратного слеша в текстовых строках является указанием на обозначение специального символа, в зависимости от того, какой символ записан после того. Наиболее часто употребляется символ новой строки ‘\n’. А для того, чтобы вставить в строку сам символ обратного слеша, нужно повторить его два раза: ‘\\’.

Вторым именованным параметром функции print является end, определяющий симвро вывода после работы функции print. По умолчанию параметр end = ‘\n’, т.е. следующий вывод будет происходить с новой строки. Этот параметр также можно изменить.

Например:

1) print( a, b, sep = ‘ ,’, end = ‘’)  # 1,2 без перехода на новую строку.

2) print(1, 2, 3) ; print(4, 5, 6)

# 1 2 3

# 4 5 6

3) print(1, 2, 3, sep=', ', end='. ') ; print(4, 5, 6, sep='; ', end='. ')

# 1, 2, 3. 4; 5; 6.

4) print() # пропуск строки

5) print(1, 2, 3, sep='', end=' = ') ; print(3, 41, sep=' * ', end='.')

# 123 = 3*41.

Числа

Целочисленная арифметика

Для целых чисел определены операции +, -, //, * и **. Операция деления / для целых чисел возвращает вещественное число (значение типа float). Также функция возведения в степень возвращает значение типа float, если показатель степени – отрицательное или вещественное число.

Операция целочисленного деления, отбрасывающая дробную часть, обозначается // (она соответствует операции div в Паскале), возвращающая целую часть частного. Операция взятия остатка от деления – % (соответствует – mod в Паскале).

Действительные числа

Здесь будет рассматриваться тип float.

При вводе с клавиатуры действительного числа функцией input() необходимо преобразовывать к типу float:

Вещественные числа могут быть записаны с плавающей точкой чеерез мантиссу и порядок.

Например, 0.000001=0.1e-5, где 0.1 – мантисса, а е-5 – запись порядка -5.

Преобразование действительных чисел к целому производится с округлением в сторону нуля, то есть int(3.14) =3, int(-3.14) =-3.

Библиотека math

Для вычисления выражений, содержащих функции с действительными значениями, используется библиотека math, которая подключается следующим образом

import math

Ниже приведен список основных функций модуля math.

Функция Описание

                Округление

int(x)    – Округляет число в сторону нуля. Это стандартная функция, не требующая подключения модуля math.

round(x) – Округляет число до ближайшего целого.

round(x, n) – Округляет число x до n знаков после точки. Это стандартная функция.

floor(x)   – Округляет число вниз, при этом floor(1.6)=1, floor(-1.6)=-2

ceil(x)      – Округляет число вверх, при этом ceil(1.6)=2, ceil(-1.6)=-1

abs(x)      – Абсолютная величина. Это — стандартная функция.

                Корни, логарифмы

sqrt(x)     – Квадратный корень.

log(x)      – Натуральный логарифм. log(x, b) – логарифм по основанию b.

                Тригонометрия

sin(x)       – Синус угла, задаваемого в радианах

cos(x)      – Косинус угла, задаваемого в радианах

tan(x)      – Тангенс угла, задаваемого в радианах

asin(x)     – Арксинус, возвращает значение в радианах

acos(x)    – Арккосинус, возвращает значение в радианах

atan(x)    – Арктангенс, возвращает значение в радианах

atan2(y,x) – Полярный угол (в радианах) точки с координатами (x, y).

degrees(x) – Преобразует угол, заданный в радианах, в градусы.

radians(x) – Преобразует угол, заданный в градусах, в радианы.

Pi             – Константа π = 3.1415...

Ссылки на задачи доступны в меню слева. Эталонные решения теперь доступны на странице самой задачи.

Строки

Строка считывается стандартной функцией ввода input().

Строка состоит из последовательности символов. Количество символов (длину строки) можно определить при помощи функции len.

Любой объект в PYTHON c помощью функци str() можно перевести в строку.

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

Например 1.

print(«Он сказал 'привет'!») #напечатает – Он сказал 'привет'!

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

Можно подставить в шаблон строки элементы из кортежа или словаря. Знак процента «%» между строкой и кортежем, заменяет в строке символы «%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.

Если S=’язмыш’

Строка S я з м ы ш
Индекс 0 1 2 3 4
Индекс -5 -4 -3 -2 -1

Срез с двумя параметрами: S[a:b] возвращает подстроку из b – a символов, начиная с символа c индексом a, то есть до символа с индексом b, не включая его. Например, S[1:3] == 'зм', то же самое получится, если написать S[-4:-2]. Можно использовать как положительные, так и отрицательные индексы в одном срезе, например, S[1:-1] – это строка без первого и последнего символа (срез начинается с символа с индексом 1 и заканчиватеся индексом -1, не включая его).

Пример 2.

Для печати из n элементного массива подмассив с индексаами от а до b можно написать следующий фрагмент программы:

n = int(input())

a = [int(s) for s in range(n) ] # ввод массива a с индексами от 0 до n -1

b,c = map(int,r().split()) # ввод индекс ов массива a

print(' '.join(str(s) for s in a[b-1:c])) # перебор элементов массива с заданным

              # интервалом индексов и печать собранной последовательности.

Метод find, rfind находят расположение подстроки в тексте.

s.find(ss) – выдает позицию первого вхождения подстроки ss в строкеу s.

s.rfind(ss) – выдает позицию последнего вхождения подстроки ss в s.

Если эти методы с тремя параметрами, то s.find(ss,b,a) ищет подстроку в интервале от b до a.

Метод replace(old,new,k) k подстрок old в тексте заменяет на подстроку new. Если третий параметр не указан, то заменияет все вхождения заданной подстроки.

Метод count(ss) определяет, сколько раз заданная полстрока встречается в тексте.

Пример 3.

С=’ Язмыш’

print(C,С.rfind(‘зм’)) # напечатает – Язмыш 1

print(C.replace(‘зм’,’лг’) # напечатает – Ялгыш

С=’алмашлыклар’

print(C,С.count(‘a’),С.count(‘л’,3,10)) #напечатает – алмашлыклар 3 1

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

Пример 4.

jazu='Аида, камил, РАВИЛ'

print(jazu)                 # напечатает – Аида, камил, РАВИЛ

print(jazu.title())        # напечатает – Аида, Камил, Равил

print(jazu.upper())    # напечатает – АИДА, КАМИЛ, РАВИЛ

print(jazu.lower())     # напечатает – аида, камил, равил

Если в текстовой пременной в начале и в конце присутствуют ненужные пробелы, то можно вызывать методы удаления ненужных пробелов.

Пример 5.

j azu=' Аида, Камил, Равил '

Jazu=jazu.strip()       # значение – Jazu='Аида, Камил, Равил'

Jazu=jazu.lstrip()      # значение – J azu='Аида, Камил, Равил '

Jazu=jazu.rstrip()     # значение – Jazu=' Аида, Камил, Равил'

Строки в языке Python невозможно изменить. Попытка изменить символ в определенной позиции или подстроку вызовет ошибку:

Примеры 6:

a='123'

print(a,1, 2, sep='=', end = '\n')

a[0]='0'

print(1, 2)

выдаст сообщение

Traceback (most recent call last):

File "C:/Users/1/PycharmProjects/untitled2/22.py", line 3, in <module>

a[0]='0'

TypeError: 'str' object does not support item assignment

Правильная запись программы

a='12345678'

print( a) # Напечатает – 12345678

# a[3]='_' - не допустим

a=a[:3]+'_'+a[4:] №

print( a) # Напечатает – 123_5678

Специальные символы

Специальные символы – комбинациия знаков, обозначающих непечатны или служебные символы, которые не воможно вставить обычным способом. Рассмотрим некоторые спец. Символы внутри строки:

· \n – перевод строки,

· \r – возврат каретки,

· \t – знак табуляции ,

· \v – вертикальная табуляция ,

· \a – звонок ,

· \b – забой ,

· \f – перевод формата ,

· \o – нулевой символ, не являющийся концом строки ,

· \” – кавычка ,

· \’ – апостроф ,

· \N – восьмеричное значение N ,

· \xN – шестнадцетеричное значение N ,

· \\ – обратный слэш ,

·\uxxxx – 16-битный символ Unicode , u’Hello World !’ – строка кодировки Unicode

· \nxxxxxxx – 32-битный символ Unicode ,

Если после слэша не стоит, который вместе со слэшем интерпретируется как спецсимвол, то слэш сохраняется в составе строки

Форматирование строк

Метод форматирование позволяет соединить строку с любым типом даных. Он имеет следующий синтаксис:

<Строка> = <Cтрока специального формата>.format(*args,**kwargs)

 В параметре <Cтрока специального формата>. Внутри символов фигурных скобок { и } указываются спецификаторы, имеющие следующий синтакксис:

{[<Поле>][<!Функция>][:<Формат>]]

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

Пример 1:

“{0} –> {1} <– {2}”.format(‘ЛИЛИЯ’,1994,’ДИНАРА’)

# получится “ЛИЛИЯ –> 1994 <– ДИНАРА”

Пример 2:

“{ata} –> {son} –> {onik}”.format(ata=‘РАВИЛ’, son=‘КАМИЛ’, onik=’АЯЗ’)

# получится “РАВИЛ –> КАМИЛ –> АЯЗ”

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

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

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

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

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

Примеры 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

По-другому, текст может быть заключен в утроенные кавычки: """ или ’’’. Концы строк не нужно “прятать” при использовании утроенных кавычек, но они будут включены в текст.

Отметим еще некоторые воможности связанные со строками.

Строка – последовательность символов с произвольным доступом, Любой символ строки можно получить по его индексу. Первый символ имеет индекс 0. Символ – строка единичной длины. Подстрока может быть определена с помощью среза — двух индексов, разделенных двоеточием.

word=’ мисал ’

print(word[4]) # напечатает – л

print( word[1:2] ) # напечатает – ис

print( word[2:4] ) # напечатает – сал

Индексы среза имеют значения по умолчанию:

· Опущенный первый индекс считается равным 0, опущенный второй индекс дает длину строки.

Пример 2.

b=[1,2,3,4,5,6,7]

a=b[:5] # a=[1,2,3,4,5]

c=b[5:] # c=[6,7];

· Если верхняя граница меньше нижней, то возвращается пустая строка;

· Отрицательные индексы в срезах выходящие за пределы обрабатываются равными нулю. Лучший способ запомнить, как определяются индексы в срезе — считать их указывающими между символами, с номером 0 на левой границе первого символа. А правая граница последнего символа имеет индекс равный длине строки.

Например 3.

b=[1,2,3,4,5,6,7]

a=b[:-2] # a=[1,2,3,4,5]

c = b [-2:] # c =[6,7];

a = b =[1,2,3,4,5,6,7]

Например 4. Добавить новый элемент в список.

VAZ = [' Жигули ', ' Лада ', ' Нива ']

print ( VAZ )             # напечатает – (' Жигули ', ' Лада ', ' Нива ')

VAZ.append('Калина') # добавка элемента 'Калина'

print(VAZ)             # напечатает – ('Жигули', 'Лада', 'Нива', ‘Калина’)

Например 5. Ввод 10-ти цифр в список.

cifr = []

for i in range(i): cifr.append(i) # cifr=(0,1,2,3,4,5,6,7,8,9)

В шаблон строки можно подставить элементы из кортежа или словаря. Знак процента «%» между строкой и кортежем, заменяет в строке символы «%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.

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

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]

Пример 6.

На подоконнике стояло три цветочка, слева на право: герань, крокус и фиалка (GCF). Каждое утро Алсу меняла местами стоящий справа цветок с центральным. А вечером меняла местами левый и центральный цветок. Требуется определить порядок цветов ночью по прошествии K дней.

Решение 1:

C=’GCF’

N=int(input())

for i in range(N) :

C[0],C[1],C[2]=C[2],C[0],C[1]

Print(C)

Решение 2 :

N=int(input())

if N%3 ==0 : print(’GCF’)

elif N%3==1 : print(’FGC’)

else print(‘CFG’)

Решение 3, используя тернарный условный оператор :

N=int(input())

print(’GCF’ if N%3 ==0 else ’FGC’ if N%3==1 else ‘CFG’)

Решение 4, используя картежи :

Print((’GCF’,’FGC’,‘CFG’)[ int(input())%3])

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

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

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

Вот несколько примеров использования функции range, которые объясняют роль ее параметров.

A=list(range(10)) # A=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

A=list(range(2,10)) # A=[2, 3, 4, 5, 6, 7, 8, 9]

A=list(range(1,10,2)) # A=[1, 3, 5, 7, 9]

A=list(range(10,2,-2)) # A=[10, 8, 6, 4]

Пример вычисления выражения.

A= input(‘Первый аргумент=’) # Ввод первого аргумента выражеиия

B= input(‘Второй аргумент=’) # Ввод второгго аргумента

С = input(‘Операция =’)

If C==’+’ : print(int(A)+int(B))

elif C==’-‘ : print(int(A)-int(B))

elif C==’*‘ : print(int(A)*int(B))

elif C==’/‘ :

if B==’0’ : print(‘Деление на 0’)

else : print(int(A)/int(B))

Именованные переменные

Каждая переменная должна иметь уникальное имя, состоящее из латинсикх букв, цифр и знаков подчеркивания. Имена, начинающиеся с символа подчеркивания, не импортируются из модуля с помощью инструкции from module import * , а имена, начинающиеся с символа подчеркивания и завершающиеся этим символом, имеют особый смысл. Также в качестве имени нельзя использовать ключевые слова.

False None True and  as       assert   break class   continue

def  del    elif else   except finally  for  from   global

if    import in is      lambda nonlocal not or       pass

raise return try while with    yield

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

Например 1:

X=10         # Тип int

Y=1.7        # Тип float

X=’123’    # Тип строка

Y= True       # Тип логический

Для определения типа данных используется функция type() .

Для проверки типа данных используется функция isinstance(<перем>,<тип>) .

Например 2:

X=’ Язу’

print( type( X)) # напечатает – str

X=int(input())

print(type(X)) # напечатает – int

Переменную можно удалить с помощью инструкции

del <переменная1> [,<переменная2>… , <переменнаяN>]

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

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

Пример 1:

N= input()

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

input()

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

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

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

Если при вводе данных требуется запрос на ввод данных, то используется функция raw_input(приглашение), которая выводит на экран приглашение и ожидает ввода пользователя, возвращая то, что ввел пользователь в виде своего значения.

x = int(raw_input ("Введи число :"))

Для вывода используется команда print, которая выводит на печать все свои аргументы в удобочитаемом виде.

Ввод/вывод массива.

print (‘ Количество элементов :')

n = input ()

print ( 'вводите элементы :')

x =[]

for x in range(n): x .append(input())

print( 'массив :')

for x in x : print ( x )

print( 'обратно :')

for x in reversed( x ):print ( x )

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

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

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

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(), который преобразует выводимое значение в строковую и выводит.

Пример 2:

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

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

Пример 3:

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 с переходом на новую строку


Операторы

В языке Python концом инструкции может являться конец строки или «;» Если в одной строке написано несколько инструкций (операторов), то они разделяются символом «;». Если же только одна инструкция, то можно опускать и инструкцию будет завершать конец строки.

Пример ы 1:

a=10 ;b=12c=a+b a=10; b=12; c=a+b

Если же инструкция не умещается в одну строку, то можно перейти на следующую строку следующим образом

1) в конце строки ставится символ “\”,

2) выражение берется скобки и может продолжаться в другой строке.

Примеры:

A=b+c–d* \ c–g A=(b+c–d* c–g) A=[ b, c, d,   f, g ]

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

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

while <логическое выражение > : <оператор > while <лог. выражение> : <оператор>

Например 2;

№1 s n №2 s n вывод
s = n = 0while s < 43: s += 12 n += 3print(n)# напечатает 48 0 12 24 36 48 0 3 6 9 12 s = n = 0while s < 43: s += 12 n += 3 print( n) 0 12 24 36 48 0 3 6 9 12   3 6 9 12

Оператор 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 "Второй элемент – 2"

elif rangelist [1] == 3:

print "Второй элемент – 3"

else:

print "Незнайка"

while rangelist[1] == 1:

pass

Задача 1. Для заданного числа n посчитать сумму чисел от 1 до n.

Можно предложить 3 варианта решения.

Вариант 1. Вариант 2. Вариант 3.
n=int(input())) s=0 if n>i : for i in range(1,n+1) : s+=i else : for i in range(1,n-1,-1) : s+=i print(s) n=int(input())if n>0 : s=n*(n+1) // 2else : s=(2-n)*(n+1) // 2print(s) n=int(input())s=(n*n+abs(n)) // 2print(s if n>0 else 1-s)

Задача 2. Для подсчета числа отрицательных элементов массива можно применить следующую программу;

Вариант 1 Вариант 2 Вариант 3
N=int(input())K=0for i in range(N) : x=int(input()) if x<0 : K+=1print( K) K=0for i in range(int(input())) : if int(input())<0 :   K+=1print(K) K=0for i in range(int(input())) : K+= int(input())<0print(K)

3) Ввод последовательности из элементов и подсчет среднего значения.

Вариант 1 Вариант 2
a = []N = 2016 S=0for i in range(0, N): a.append(int(input())) S+=a[i]print( S / N) N = 2016 print(sum(map(int,input().split())) / N)

Бок-схемы

Например

x=int(input()) y=int(input()) if x>y : z=x else : y=z; print(z)
X,Y
X>Y
z:=x
y:=z
Z

 

 

+

Задание №1. Для следующих блок-схем написать программsы

x:=b
z:=d
u:=x-b
a>b
x:=a
a:=b
b:=x
a)

 

 

x:=b
z:=d
u:=x-b
a>b
b)+

 

 

c)   +
a:=a+b b:=a-b a:=a-b
d)

 

a:=a xor b b:=a xor b a:=a xor b

A<n
A:=n
A<n
A:=A+1
e)                       —

f) +

A<n
a:=1 b:=0
g)

 

h)                       —
A<n
a:=n b:=-1
i) +

 

Задание №2. Для следующих блок-схем написать программы

O1
O2 O3
O4
Y
a)   +

O1
O2 O3
O4
Y
b) +

Y
O1 O2
O3 O4
c) +

Y1
O1
O2
Y2
d) +

 

 

                               +

Y1
O1
Y2
O3
O2
Y1
O1
Y2
O3
O2
e) +

 

                              +

f)   +                                  +

Функции

При объявлении функции используется ключевое слово «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

f= lambda x: x + 1

print f (1) # напечатает 2

Рекурсивные функции записываются следующим образом:

def F(n):

if n > 0:

G(n - 1)

def G(n):

print('*')

if n > 1:

F(n - 2)

N= int(input())

print( F( n))

Значение чисел Фибоначчи можно оформить через рекурсивную функцию

def F(n):

if n < 2: return 1

else : return F(n - 1)+F(n-2)

n=int(input())

print(F(n))

Значение чисел Фибоначчи можно оформить через рекурсивную функцию

def F(n):

if n < 2: return 1

else : return F(n - 1)* n

n=int(input())

print( F( n))

Функции, возвращающие пустое значение, называют процедурами. В некоторых языках объявления функций и процедур синтаксически различаются. В Python процедуры имеют практически такой же синтаксис как и функции, но не возвращают никаких значений.

Пример 1: Числа фиббоначчи

def F( n):

a =0

b=1

while a<n:

print(a,end=’ ‘)

a, b= b, a+ b

F(50)

Результат:

0 1 1 2 3 5 8 13 21 34

Пример 2: Наибольший общий делитель

def NOD(a,b): while a*b>0: if a>b : a%=b else : b%=a print(150,42) Результат:6

Функции, возвращающие пустое значение, называют процедурами. В некоторых языках объявления функций и процедур синтаксически различаются.

В Python процедуры имеют практически такой же синтаксис, как и функции, но не возвращают никаких значений.

def ИМЯ_ПРОЦЕДУРЫ(СПИСОК_ПАРАМЕТРОВ) :

ДЕЙСТВИЕ 1

ДЕЙСТВИЕ 2

ДЕЙСТВИЕ N

Пример 3. Написать процедуру, выводящей последовательность чисел Фибоначчи до значения N:

Пример 3 : Вычислить аргумент, где функция F(x)= | |x–3| + |x+3| | – 10 принимает минимальное значение.

def f(n) a=0 b=1 while a<n: print(a,end=’ ‘) a,b=b,a+bf(50) Результат:0 1 1 2 3 5 8 13 21 34

Пример 4. Вычислить аргумент, где функция F(x)= | |x–3| + |x+3| | – 10 принимает минимальное значение.

def F(x) : return abs(abs(x – 8) +          abs(x + 8) - 9) -10a = M = -20 b = 20 R = F(a) for t in range(a, b+1) : if F(t) < R :    M = t    R = F(t) print(M) Результат:-8

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

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

n = 5

m = 7

def f():

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

def f1():

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

# вызвана из функции. В этом случае создается одноименная переменная

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

print (n)

n = 3

def f2():

global n

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

n = 3



Подключение библиотек

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

Примеры модулей

random – псевдослучайные числа с различными распределениями

whrandom – генератор псевдослучайных чисел

bisect – поддержание последовательностей в сортированном состоянии

array – эффективные массивы чисел

UserString – интерфейсный класс для создания строковых объектов

os – основные службы операционной системы

 

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

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

randomint = random.randint (1, 100)

print Randomint # 64

 

Модуль math математические функции для работы с вещественными числами.

cos( x) – Возвращает косинус x.

log(x) – Возвращает натуральный логарифм x.

pow(x, y) – Возвращает x**y.

sqrt(x) – Возвращает квадратный корень из x.

sin( x) – Возвращает синус x.

Модуль также определяет две константы:

pi – Число пи.

e – Число e.

 

Служебные модули

 

sys – Доступ к характерным для системы параметрам и функциям.

atexit – Регистрирует функции и выполняет их при окончании работы программы.

types – Имена для всех встроенных типов.

operator – Операторы языка Python в виде функций.

traceback – Модуль для работы с объектами traceback.

imp – Доступ к операциям, производимым инструкцией import.

pprint – Представление и вывод данных в более привлекательном виде.

repr – Альтернативная реализация функции repr() с ограничением размера.

Модуль Sys предоставляет доступ к переменным, используемым или поддерживаемым интерпретатором, и функциям, которые интенсивно взаимодействуют с интерпретатором. Модуль sys всегда доступен.

Несколько примеров:

Argv — Список аргументов, переданных в командной строке программе на языке Python

Exit([exit_code]) — Прерывает выполнение программы.

Maxint — Наибольшее целое число, которое может быть представлено в рамках типа int.

Modules — Словарь, отображающий имена импортированных модулей в объекты-модули.


Поделиться:



Последнее изменение этой страницы: 2019-03-21; Просмотров: 853; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.345 с.)
Главная | Случайная страница | Обратная связь