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


Каждая переменная должна иметь уникальное имя, состоящее из латинских букв, цифр и знаков подчеркивания, не начинаающееся с цфры. Имена, начинающиеся с символа подчеркивания, не импортируются из модуля с помощью инструкции 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=12 c=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 = 0 while s < 43: s += 12 n += 3 print(n) # напечатает 48 s = n = 0 while s < 43: s += 12 n += 3 print(n)  

Оператор 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) // 2 else : s=(2-n)*(n+1) // 2 print(s) n=int(input()) s=(n*n+abs(n)) // 2 print(s if n>0 else 1-s)

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

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

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

Вариант 1 Вариант 2
a = [] N = 2016 S=0 for 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) L t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAAP7xZMQA AADcAAAADwAAAGRycy9kb3ducmV2LnhtbESPQWvCQBCF74X+h2UKvekmtmiJrtIKAfEian7AkJ0m wd3ZkF01/nvnUOhthvfmvW9Wm9E7daMhdoEN5NMMFHEdbMeNgepcTr5AxYRs0QUmAw+KsFm/vqyw sOHOR7qdUqMkhGOBBtqU+kLrWLfkMU5DTyzabxg8JlmHRtsB7xLunZ5l2Vx77FgaWuxp21J9OV29 gc/4yKv9ofyJH1W+WNQzty+dM+b9bfxegko0pn/z3/XOCn4u+PKMTKDXTwAAAP//AwBQSwECLQAU AAYACAAAACEA8PeKu/0AAADiAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnht bFBLAQItABQABgAIAAAAIQAx3V9h0gAAAI8BAAALAAAAAAAAAAAAAAAAAC4BAABfcmVscy8ucmVs c1BLAQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAQAAAAAAAAAAAAAAAAACkCAABkcnMvc2hhcGV4 bWwueG1sUEsBAi0AFAAGAAgAAAAhAAD+8WTEAAAA3AAAAA8AAAAAAAAAAAAAAAAAmAIAAGRycy9k b3ducmV2LnhtbFBLBQYAAAAABAAEAPUAAACJAwAAAAA= ">
X,Y
L t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEA4NwUT8EA AADcAAAADwAAAGRycy9kb3ducmV2LnhtbERPzWrCQBC+C77DMgVvukkPRaKriFAQ68XoA4zZMZs2 Oxt3t0l8+26h0Nt8fL+z3o62FT350DhWkC8yEMSV0w3XCq6X9/kSRIjIGlvHpOBJAbab6WSNhXYD n6kvYy1SCIcCFZgYu0LKUBmyGBauI07c3XmLMUFfS+1xSOG2la9Z9iYtNpwaDHa0N1R9ld9Wweet M8Np+bhnZeV7eTz5w+P8odTsZdytQEQa47/4z33QaX6ew+8z6QK5+QEAAP//AwBQSwECLQAUAAYA CAAAACEA8PeKu/0AAADiAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnhtbFBL AQItABQABgAIAAAAIQAx3V9h0gAAAI8BAAALAAAAAAAAAAAAAAAAAC4BAABfcmVscy8ucmVsc1BL AQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAQAAAAAAAAAAAAAAAAACkCAABkcnMvc2hhcGV4bWwu eG1sUEsBAi0AFAAGAAgAAAAhAODcFE/BAAAA3AAAAA8AAAAAAAAAAAAAAAAAmAIAAGRycy9kb3du cmV2LnhtbFBLBQYAAAAABAAEAPUAAACGAwAAAAA= ">
X>Y
z:=x
y:=z
L t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAwBiScb8A AADcAAAADwAAAGRycy9kb3ducmV2LnhtbERP32vCMBB+H/g/hBv4tqaKG1KNMoqC4NOc+Hw0t7as uZQkje1/b4TB3u7j+3nb/Wg6Ecn51rKCRZaDIK6sbrlWcP0+vq1B+ICssbNMCibysN/NXrZYaHvn L4qXUIsUwr5ABU0IfSGlrxoy6DPbEyfuxzqDIUFXS+3wnsJNJ5d5/iENtpwaGuypbKj6vQxGQVnW OBk+nIchRvdOt6mK3Co1fx0/NyACjeFf/Oc+6TR/sYLnM+kCuXsAAAD//wMAUEsBAi0AFAAGAAgA AAAhAPD3irv9AAAA4gEAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54bWxQSwEC LQAUAAYACAAAACEAMd1fYdIAAACPAQAACwAAAAAAAAAAAAAAAAAuAQAAX3JlbHMvLnJlbHNQSwEC LQAUAAYACAAAACEAMy8FnkEAAAA5AAAAEAAAAAAAAAAAAAAAAAApAgAAZHJzL3NoYXBleG1sLnht bFBLAQItABQABgAIAAAAIQDAGJJxvwAAANwAAAAPAAAAAAAAAAAAAAAAAJgCAABkcnMvZG93bnJl di54bWxQSwUGAAAAAAQABAD1AAAAhAMAAAAA ">
Z

 

 

+

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

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

L t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEA+LeKAcMA AADbAAAADwAAAGRycy9kb3ducmV2LnhtbESPUWvCMBSF34X9h3CFvWnqGE46o4zBQKYvVn/Atbk2 3ZqbmmRt/fdGEPZ4OOd8h7NcD7YRHflQO1Ywm2YgiEuna64UHA9fkwWIEJE1No5JwZUCrFdPoyXm 2vW8p66IlUgQDjkqMDG2uZShNGQxTF1LnLyz8xZjkr6S2mOf4LaRL1k2lxZrTgsGW/o0VP4Wf1bB z6k1/W5xOWdF6Tv5vfOby36r1PN4+HgHEWmI/+FHe6MVvL3C/Uv6AXJ1AwAA//8DAFBLAQItABQA BgAIAAAAIQDw94q7/QAAAOIBAAATAAAAAAAAAAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1s UEsBAi0AFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAAAAAAAAAAAAAAAALgEAAF9yZWxzLy5yZWxz UEsBAi0AFAAGAAgAAAAhADMvBZ5BAAAAOQAAABAAAAAAAAAAAAAAAAAAKQIAAGRycy9zaGFwZXht bC54bWxQSwECLQAUAAYACAAAACEA+LeKAcMAAADbAAAADwAAAAAAAAAAAAAAAACYAgAAZHJzL2Rv d25yZXYueG1sUEsFBgAAAAAEAAQA9QAAAIgDAAAAAA== ">
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

Пример 1. Задано число элементов последовательности n и n значений этой последовательности. Написать программу печатающию минимальное значений из этой последовательности, с числом единиц равной 3.

Решение:

print(min(filter(lambda x: x % 10 == 3, [int(input()) for i in range(int(input()))])))

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

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 процедуры имеют практически такой же синтаксис как и функции, но не возвращают никаких значений.

Пример 2: Числа Фибоначчи

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

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

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

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

Решение

b=1

c=a=0

n=int(input())

while n>0 :

c, a, b =b+a, b, c

n-=1

print(a)

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

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

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

def F(x) : return abs(abs(x – 8) + abs(x + 8) - 9) -10 a = 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


Дата добавления: 2022-04-12; просмотров: 138;


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

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.035 сек.