Главная страница

Файлы в python, вводвывод Файлы в Python


Скачать 1.54 Mb.
НазваниеФайлы в python, вводвывод Файлы в Python
Дата28.02.2022
Размер1.54 Mb.
Формат файлаdocx
Имя файлаuser_file_5c3486fdcd011.docx
ТипДокументы
#376349

Файлы в python, ввод-вывод

Файлы в Python

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

В Python существует два типа файлов:

  1. Текстовые

  2. Бинарные

Текстовые файлы

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

Текст может храниться в двух форматах: (.txt) — простой текст и (.rtf) — «формат обогащенного текста».

Бинарные файлы

В бинарных файлах данные отображаются в закодированной форме (с использованием только нулей (0) и единиц (1) вместо простых символов). В большинстве случаев это просто последовательности битов.

Они хранятся в формате .bin.
Любую операцию с файлом можно разбить на три крупных этапа:

Открытие файла

Выполнение операции (запись, чтение)

Закрытие файла

Открытие файла

Метод open()

В Python есть встроенная функция open(). С ее помощью можно открыть любой файл на компьютере. Технически Python создает на его основе объект.

Синтаксис следующий:

f = open(file_name, access_mode)

Где,

file_name = имя открываемого файла

access_mode = режим открытия файла. Он может быть: для чтения, записи и т. д. По умолчанию используется режим чтения (r), если другое не указано. Далее полный список режимов открытия файла

Закрытие файла

Метод close()

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

Существуют следующие способы:

Способ №1

Проще всего после открытия файла закрыть его, используя метод close().

f = open('example.txt','r')

# работа с файлом

f.close()

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

Режим

Описание

r

Только для чтения.

w

Только для записи. Создаст новый файл, если не найдет с указанным именем.

rb

Только для чтения (бинарный).

wb

Только для записи (бинарный). Создаст новый файл, если не найдет с указанным именем.

r+

Для чтения и записи.

rb+

Для чтения и записи (бинарный).

w+

Для чтения и записи. Создаст новый файл для записи, если не найдет с указанным именем.

wb+

Для чтения и записи (бинарный). Создаст новый файл для записи, если не найдет с указанным именем.

a appened

Откроет для добавления нового содержимого. Создаст новый файл для записи, если не найдет с указанным именем.

a+

Откроет для добавления нового содержимого. Создаст новый файл для чтения записи, если не найдет с указанным именем.

ab

Откроет для добавления нового содержимого (бинарный). Создаст новый файл для записи, если не найдет с указанным именем.

ab+

Откроет для добавления нового содержимого (бинарный). Создаст новый файл для чтения записи, если не найдет с указанным именем.


Чтение и запись файлов в Python

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

Функция read()

Функция read() используется для чтения содержимого файла после открытия его в режиме чтения (r).

Пример: file.read(size)

Где,

file = объект файла

size = количество символов, которые нужно прочитать. Если не указать, то файл прочитается целиком.

>>> f = open('example.txt','r')

>>> f.read(7) # чтение 7 символов из example.txt

'This is '

Интерпретатор прочитал 7 символов файла и если снова использовать функцию read(), то чтение начнется с 8-го символа.

>>> f.read(7) # чтение следующих 7 символов

' a text'

Функция readline()

Функция readline() используется для построчного чтения содержимого файла. Она используется для крупных файлов. С ее помощью можно получать доступ к любой строке в любой момент.

Функция write()

Функцияwrite()используется для записи в файлы Python, открытые в режиме записи.

Если пытаться открыть файл, которого не существует, в этом режиме, тогда будет создан новый.

Переименование файлов в Python

Функция rename()

Функция rename() используется для переименовывания файлов в Python. Для ее использования сперва нужно импортировать модуль os.

Синтаксис следующий.

&20 Программирование алгоритмов ветвления

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

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

Структура If (если) в переводе с англ.слово означает если. ОБЪЯСНЕНИЕ понятным языком можно так: если логическое выражение возвращает истину, то выражение выполняется; если логическое выражение возвращает ложь, то выражение не выполняется.

Структура If логическое выражение является заголовком условного оператора.

Линейные программы

Основные математические операторы в python:

+ — сложение

- — вычитание

* — умножение

/ — деление

% —взятие остатка от деления

** — возведение в степень

После логического выражения на языке программирования Python нужно поставить двоеточие “:”.





Алгоритм

Любой алгоритм составляется в расчете на конкретного исполнителя с учетом его возможностей. Исполнитель — субъект, способный исполнять некоторый набор команд. Совокупность команд, которые исполнитель может понять и выполнить, называется системой команд исполнителя.

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

Свойства алгоритма:

- Дискретность - алгоритм должен быть представлен как последовательноcть отдельных законченных действий - команд.

Определенность - каждое действие алгоритма должно быть четким и однозначным.

Результативность - алгоритм должен приводить к решению задачи за определенное число шагов.

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

Способы представления алгоритмов

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

  • словесный(запись на естественном языке); При словесном способезаписи алгоритм задается в произвольном изложении на естественном языке.

  • графический(запись с использованием графических символов); При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков и стрелок, соединяющих эти блоки. В блок-схеме каждому типу действий соответствует геометрическая фигура, представленная в виде блочного символа. Блочные символы соединяются линиями переходов, определяющими очередность выполнения действий.

  • программный (тексты на языках программирования). Программный способ записи алгоритма – это запись алгоритма на языке программирования.


Линейный алгоритм - это алгоритм, в котором все операции выполняются последовательно одна за другой.

Пример линейного алгоритма в словесной форме

Алгоритм приготовления теста

1. взять 200 г маргарина, пол стакана воды, 3 стакана муки

2. растопить маргарин

3. влить воду

4. всыпать муку

5. перемешать, чтобы не было комков

6. положить в холод на 30 минут

Исходные данные: 200 г маргарина, пол стакана воды, 3 стакана муки

Результат: тесто

РАЗВЕТВЛЯЮЩИЕСЯ АЛГОРИТМЫ

Линейные алгоритмы встречаются в этой жизни очень редко. Часто возникает условие, которое надо либо выполнять, либо нет. Порядок выполнения действий будет зависеть от выполнения некоторого условия. Алгоритмы с такой структурой называются разветвляющимися.

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

ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ

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

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

  

Ряд встроенных функций в Python позволяют работать с числами. В частности, функции int() float() позволяют привести значение к типу целое и вещественное.

Модуль math – один из наиважнейших в Python. Этот модуль предоставляет обширный функционал для работы с числами.

Примеры:

math.fabs(X) - модуль X.

math.factorial(X) - факториал числа X.

math.fmod(X, Y) - остаток от деления X на Y.

math.exp(X) - eX.

math.sqrt(X) - квадратный корень из X.

math.pi - pi = 3,1415926...

math.cos(X) - косинус X (X указывается в радианах).

math.sin(X) - синус X (X указывается в радианах).

math.tan(X) - тангенс X (X указывается в радианах). и т.п

Линейные программы

Основные математические операторы в python:

+ — сложение

- — вычитание

* — умножение

/ — деление

% —взятие остатка от деления

** — возведение в степень





















Линейные задачи по программированию для начинающих.

Ищенко Руслана Викторовна,

МАОУ «СОШ №102»

учитель информатики

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

Данный материал может быть использован как на уроках информатики в 9классе, так и на элективных курсах.
Линейные программы

Основные математические операторы в python:

+ — сложение

- — вычитание

* — умножение

/ — деление

% —взятие остатка от деления

** — возведение в степень

Ряд встроенных функций в Python позволяют работать с числами. В частности, функции int() float() позволяют привести значение к типу целое и вещественное.

Модуль math – один из наиважнейших в Python. Этот модуль предоставляет обширный функционал для работы с числами.

Примеры:

math.fabs(X) - модуль X.

math.factorial(X) - факториал числа X.

math.fmod(X, Y) - остаток от деления X на Y.

math.exp(X) - eX.

math.sqrt(X) - квадратный корень из X.

math.pi - pi = 3,1415926...

math.cos(X) - косинус X (X указывается в радианах).

math.sin(X) - синус X (X указывается в радианах).

math.tan(X) - тангенс X (X указывается в радианах). и т.п
Задание№1

Даны два целых числа х и у. Вычислить их сумму, разность, произведение и частное.
Программа:

# Нахождение суммы, разности и произведения двух вещественных чисел

a = float(input("Введите первое число:"))

b = float(input("Введите второе число:"))

sum = a + b

razn = a - b

proiz = a * b

cas = a / b

print('Сумма =', sum)

print('Разность =', razn)

print('Произведение =', proiz)

print('Частное =', cas)
Задание№2

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

# Вычисления длины окружности, если известен радиус.

pi=3.14159

r = float(input("Введите радиус окружности: "))

l = 2*pi*r

print('Длина окружности =', f'{l:0.3}')
Задание№3

Составить программу нахождения остатка деления целочисленного числа k на n
Программа

# Нахождения остатка от деления целочисленного числа k на n

k = float(input("Введите число k: "))

n = float(input("Введите число n: "))

ostatok = k % n

print('Остаток от деления',ostatok)
Задание№4

Найдите значения вычисления выражений z=sin(x+*(y/2))
Программа

# Значения вычисления выражений z и y

import math

pi = 3.14

x = float(input("Введите число х: "))

y = math.sqrt(x)

z = math.sin(x + pi*y / 2)

print("Значение выражения у = ",y)

print("Значение выражения z = ",f"{z:0.2}")
Представление числа

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

Для определения числа в двоичной системе перед его значением ставится 0 и префикс b:

1

x = 0b101 # 101 в двоичной системе равно 5

Для определения числа в восьмеричной системе перед его значением ставится 0 и префикс o:

1

a = 0o11 # 11 в восьмеричной системе равно 9

Для определения числа в шестнадцатеричной системе перед его значением ставится 0 и префикс x:

1

y = 0x0a # a в шестнадцатеричной системе равно 10

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

1

2

3

4

x = 0b101 # 5

y = 0x0a # 10

z = x + y # 15

print("{0} in binary {0:08b}   in hex {0:02x} in octal {0:02o}".format(z))

Для вывода числа в различных системах исчисления используются функция format, которая вызывается у строки. В эту строку передаются различные форматы.

Для двоичной системы "{0:08b}", где число 8 указывает, сколько знаков должно быть в записи числа. Если знаков указано больше, чем требуется для числа, то ненужные позиции заполняются нулями.

Для шестнадцатеричной системы применяется формат "{0:02x}". И здесь все аналогично - запись числа состоит из двух знаков, если один знак не нужен, то вместо него вставляется ноль. А для записи в восьмеричной системе используется формат "{0:02o}".
Задание для самостоятельной работы.

  1. Если первый ученик за 1ч может собрать М ведер яблок,2-й – К ведер, 3-й L ведер, то сколько ведер яблок они соберут за t часов?

  2. Для изготовления одного чайника нужно Р – граммов, одной тарелки –С граммов, одной чашки – К граммов сырья. Сколько сырья требуется для изготовления А штук чайников, 0.5А штук тарелок и 0.2А штук чашек?

  3. В трех сосудах содержится вода. В первом сосуде V1 л воды температуры t1, во втором – V2 л температуры t2, в третьем – V3 л температуры t3. Воду слили в один сосуд. Составить программу для определения объема V и температуры T воды в этом сосуде (расчет температуры можно вести по упрощенной формуле: T = (t1+t2+t3)/3.

  4. Определите количество теплоты необходимое для нагревания жидкости массой m, обладающей теплоемкостью c от температуры t1 до температуры t2

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

  6. Три сопротивления R1, R2, R3 соединены параллельно. Найти сопротивление соединения R0.

  7. Определите площадь трапеции высотой H, с основаниями a и b.

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

  9. Запрашивайте у пользователя размер наследства, которое Вы бы хотели получить (в долларах), и сумму денег, которую вы собираетесь тратить в месяц. Выведите на экран время (в годах), на которые хватит этого наследства.

  10. Вычислить радиус RB вписанной и радиус RO описанной около треугольника окружности, если заданы стороны треугольника А, В, С.

, где S – площадь, P – полупериметр треугольника.
Линейные алгоритмы (2 часть)

Задание№1.

Запишите с использованием промежуточных величин алгоритм вычисления выражения:






Программа

# Вычислить значение вычисления выражения y через промежуточные величины

import math

a = float(input("Введите число a: "))

b = a * a

z = b + 4

y = b/3+z/6+math.sqrt(z)/4+math.sqrt(z*z*z)/4

print("Значение выражения у = ",f"{y:0.3}")
Задание №2.

Вычислить значение функции

y = |3x — 45|.
Программа

# Вычислить значение вычисления выражения y

import math

x = float(input("Введите число x: "))

y = math.fabs(3*x-45)

print("Значение выражения у = ",f"{y:0.3}")
Задание №3.

Вычислить значение функции

y = cos(x) + sin(x)
Программа

# Вычислить значение вычисления выражения y

import math

x = float(input("Введите число x: "))

y = math.cos(x) + math.sin(x)

print("Значение выражения у = ",f"{y:0.4}")


Задание №4.
a)Вычислить значение вычисления выражения xy
Программа

# Вычислить значение вычисления выражения

import math

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

y = int(input("Введите степень числа y: "))

y = math.pow(x, y)

print("Значение выражения у = ",y )

b)Вычислить значение функции y = x5+ x4+ x3+ x2+ x.

Программа

import math

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

y = math.pow(x, 5)+ math.pow(x, 4)+ math.pow(x, 3)+ math.pow(x, 2) + x

print("Значение выражения у = ",y )
Задание для самостоятельной работы.

Составить программу для определения следующих выражений










Линейные задачи. Решение задач (часть 3)

Задание№1.

Вывести уравнение прямой, проходящей через заданные точки.

Уравнение прямой на координатной плоскости имеет следующий вид: y = kx + b. Если известны координаты двух точек, лежащих на этой прямой, то можно, решая систему уравнений, определить значения коэффициентов k и b. Таким образом выводится уравнение конкретной прямой, например, у = 3x - 1.

Решаем систему уравнений:

| y1 = kx1 + b

| y2 = kx2 + b

b = y2 - kx2

y1 = kx1 + y2 - kx2

k = (y1 - y2) / (x1 - x2)
Программа

print("Координаты точки A(x1;y1):")

x1 = float(input("\tx1 = "))

y1 = float(input("\ty1 = "))

print("Координаты точки B(x2;y2):")

x2 = float(input("\tx2 = "))

y2 = float(input("\ty2 = "))

print("Уравнение прямой, проходящей через эти точки:")

k = (y1 - y2) / (x1 - x2)

b = y2 - k*x2

print(" y = %.2f*x + %.2f" % (k, b)) или print("y =",k,"*x +",b)
Задание№2 "Заем"

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

Месячная выплата по займу вычисляется по такой загадочной формуле:

m = (s * p * (1 + p)n) / (12 * ((1 + p)n – 1)).

Достаточно знать, что в этой формуле:

m - размер месячной выплаты;

s - сумма займа (кредита);

p - процент банка, выраженный в долях единицы (т. е. если 20%, то будет 0.2).

n - количество лет, на которые берется займ.

Программа

zaem = input("Сколько хотите взять денег: ")

zaem = int(zaem)

proz = input("Под какой процент вам их дают: ")

proz = int(proz)

years = input("Насколько лет берете: ")

years = float(years)

proz = proz / 100

month_pay = (zaem * proz * (1 + proz)**years) / (12 * ((1 + proz)**years - 1))

print("Ваш месячный платеж составит: %.2f" % month_pay)

summa = month_pay * years * 12

print("За весь период вы заплатите: %.2f" % summa)

print("Это составит %.2f%% от первоначальной суммы" % ((summa/zaem ) * 100))
Задание№3 Обмен значений переменных

Обмен значений двух переменных - это "действие", в результате которого одна переменная принимает значение, равное второй переменной, а вторая - первой.

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

buf = a

a = b

b = buf

В Python обмен значений переменных можно выполнить вообще в одну строчку:

a = 10

b = 20

a,b = b,a

При выполнении a,b = b,a интерпретатор Python сначала получает значения связанные с переменными b и a (правая часть) и помещает их в кортеж, в данном случае получится (10, 20). После этого он связывает каждый элемент кортежа в определенной позиции с переменной в той же позиции, но в кортеже слева (a,b).

a = 14

b = 18

c = 16

a,b,c = c,a,b

>>> a,b,c

(16, 14, 18)

Программа

a = input("Введите число первое ")

b = input("Введите число второе ")

a,b = b,a

print (a,b)
Задание№4.

Вычислить продолжительность года на планетах.

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

Продолжительность года вычисляется по формуле:

2 * радиус_орбиты * пи / орбитальная_скорость.

Программа

import math

planet1 = input("Планета №1: ")

r1 = float(input("Радиус ее орбиты (млн. км): "))

v1 = float(input("Ее орбитальная скорость (км/с): "))

r1 = r1 * 1000000 # переводим миллионы км в просто км

year1 = 2 * math.pi * r1 / v1

year1 = year1 / (60 * 60 * 24) # переводим секунды в дни

planet2 = input("Планета №2: ")

r2 = float(input("Радиус ее орбиты (млн. км): "))

v2 = float(input("Ее орбитальная скорость (км/с): "))

r2 = r2 * 1000000

year2 = 2 * math.pi * r2 / v2

year2 = year2 / (60 * 60 * 24)

print("Длина года в днях на планете %s: %2.f" % (planet1, year1))

print("Длина года в днях на планете %s: %2.f" % (planet2, year2))

print("Длина года на %s больше, чем на %s? %s" % (planet1, planet2, year1 > year2))
Пример входных данных:

Планета №1: Земля

Радиус ее орбиты (млн. км): 150

Ее орбитальная скорость (км/с): 30

Планета №2: Венера

Радиус ее орбиты (млн. км): 108

Ее орбитальная скорость (км/с): 35

Длина года в днях на планете Земля: 364

Длина года в днях на планете Венера: 224

Длина года на Земля больше, чем на Венера? True
Самостоятельная работа. Линейные. (часть 4)

Задача №1.

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

Задача №2.

Имеется садовый участок, имеющий форму прямоугольника со сторонами А метров и В метров. Составьте алгоритм и программу, которая определит сколько досок надо купить, чтобы поставить сплошной забор. Ширина одной доски 10 см.

Задача №3.

В магазине продается костюмная ткань. Ее цена В руб. за квадратный метр. Составьте алгоритм и программу, которая подсчитает и выведет на экран стоимость куска этой ткани длиной Х метров и шириной 80 см.

Задача №4.

Хозяин хочет оклеить обоями длинную стену в своем доме. Длина этой стены равна А метров, а высота - В метров. Рулон обоев имеет длину 12 метров и ширину K см. Составьте алгоритм и программу, которая определит стоимость обоев для всей стены, если цена одного рулона К руб.

Задача №5.

Фруктовый магазин продает яблоки по А руб. за кг., груши по В руб. за кг., апельсины по С руб. за кг. В первые два дня недели продано: понедельник – Х кг. яблок, Y кг. груш, Z кг. апельсинов; вторник – X кг. яблок, Y кг. груш, Z кг. Апельсинов (X, Y, Z — принимают разные значения в понедельник и во вторник). Напишите программу, которая будет вычислять, на какую сумму продал магазин фруктов в каждый из этих дней и за оба дня вместе.

Задача №6.

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

Задача №7

Вычислить длину окружности и площадь круга одного и того же заданного радиуса R.

Задача №8

Вычислить расстояние между двумя точками с данными координатами на плоскости (х1, у1) и (х2, у2).

Задача №9

Дана длина ребра куба. Найти площадь грани, площадь полной поверхности и объем этого куба.

Задача №10

Три сопротивления R1, R2, R3 соединены параллельно. Найти сопротивление всей цепи.

Задача №11

Найти сумму членов арифметической прогрессии, если известны ее первый член, разность и число членов прогрессии.

Задача №12

Найти площадь равнобедренной трапеции с основаниями, а и b и углом α при большем основании а.

Задача №13

Вычислить площадь и периметр правильного N-угольника, описанного около окружности радиуса R (рассмотреть N — целого типа, R — вещественного типа).

Задача №14

Дано натуральное число Т — длительность прошедшего времени в секундах. Вывести данное значение длительности в часах (НН), минутах (ММ) и секундах (SS) в следующей форме: НН ч ММ мин SS с.
Литература

  1. Решение задач по программированию http://taskcode.ru/linear

  2. Лаборатория линуксоида https://younglinux.info/

  3. Уроки по языку программирования Python https://devpractice.ru/python-lessons/


написать администратору сайта