Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
0d02f53
test commit
pmal6 Jan 14, 2022
5b92bf0
1-е задание, переменный, input
pmal6 Jan 14, 2022
ee0d86e
2-е задание на преобразование ввода в секундах в часы : минуты : секунды
pmal6 Jan 14, 2022
bcc7552
3-е задание урок 1 : сумма с + сс + сс
pmal6 Jan 17, 2022
b13e4d7
4-е задание 1-го урока, определение макс цифры целого положительного …
pmal6 Jan 17, 2022
c9b3ebb
5-е задание, 1-ый урок
pmal6 Jan 18, 2022
6dd2171
6-е задание 1 го урока
pmal6 Jan 18, 2022
ab92dc2
Урок 2 Задание 1, тип каждого элемента списка
pmal6 Jan 19, 2022
eab3945
2-е задание 2-го урока поменять елементы списка : 1<->2, 3<->4 и т.д.
pmal6 Jan 19, 2022
4263718
3-е задание урок 2
pmal6 Jan 20, 2022
92657ee
4-ое задание УРОК 2
pmal6 Jan 20, 2022
efa931d
5-e задание урок 2 : встроенные типы и операции с ними
pmal6 Jan 20, 2022
f94df5e
5 и 6 задания урок 2
pmal6 Jan 21, 2022
7953eab
1-ое задание 3-го урока
pmal6 Jan 24, 2022
252b610
2-е задание урок 3 :функции
pmal6 Jan 24, 2022
842a3e0
3-е задание урок 3
pmal6 Jan 24, 2022
d88ab0b
4-е задание урок 3
pmal6 Jan 24, 2022
f047799
5-ое задание, урок 3
pmal6 Jan 24, 2022
8b935f1
6-е задание 3го урока
pmal6 Jan 25, 2022
235e2b8
1-ое задание урок 4
pmal6 Jan 27, 2022
0de3ae8
2-е задание урок 4
pmal6 Jan 27, 2022
0e2fd08
3-е задание урок 4
pmal6 Jan 27, 2022
647b213
4-ое задание урок 4
pmal6 Jan 28, 2022
2d44670
5-е задание урок 4
pmal6 Jan 28, 2022
ff3ee32
6-е задание урок 4 : итераторы count и cycle
pmal6 Jan 28, 2022
b57462e
7-е задание урок 4 : вычислить факториал числа 33
pmal6 Jan 28, 2022
15c817b
1-ое задание урок 5
pmal6 Jan 31, 2022
9546d30
2-е задание урок 5 + файл тестовый dberr.txt
pmal6 Jan 31, 2022
4645a28
2-е задание урок 5 вариант2
pmal6 Jan 31, 2022
2082352
3-е задание урок 5 и файл
pmal6 Jan 31, 2022
1a64010
4-е задание урок 5 file4.txt и file4_1.txt
pmal6 Feb 1, 2022
3763dbd
5-е задание урок 5
pmal6 Feb 1, 2022
c515013
6-е задание урок 5
pmal6 Feb 1, 2022
3c25ac3
1-е задание урок 8
pmal6 Feb 8, 2022
c1db670
2-е задание урок 8
pmal6 Feb 8, 2022
05e25ec
3-е задание урок 8
pmal6 Feb 8, 2022
cc5fe82
4-е задание урок 8
pmal6 Feb 8, 2022
e71781e
5-е задание урок 8
pmal6 Feb 8, 2022
5cb57fa
6-е задание урок 8
pmal6 Feb 8, 2022
8df6a91
7-е задание урок 8
pmal6 Feb 8, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions 1-lesson3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# 1-е задание урок 3
# Реализовать функцию, принимающую два числа (позиционные аргументы) и выполняющую их деление.
# Числа запрашивать у пользователя, предусмотреть обработку ситуации деления на ноль

def div2num(a, b):
try: # обработка ошибок ввода try - except
if b == 0: return print("Ошибка деления на ноль!") # обработка ошибки деления на ноль
return a/b # возвращаем значение деления а на б
except Exception:
return print('Ошибка !')


print(div2num(7.7, 5.8))
print(div2num(55, 0))
print(div2num(99.5, 7778))
print(div2num('g', 88))
14 changes: 14 additions & 0 deletions 1_lesson4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# 1. Реализовать скрипт, в котором должна быть предусмотрена функция
# расчёта заработной платы сотрудника. Используйте в нём формулу:
# (выработка в часах*ставка в час) + премия. Во время выполнения
# расчёта для конкретных значений необходимо запускать скрипт с параметрами.

from sys import argv

script_name, productivity, rate_per_hour, bonus = argv
# Используем пример из методички, три параметра productivity, rate_per_hour, bonus
print("Имя скрипта: ", script_name)
print("Параметр 1: ", productivity)
print("Параметр 2: ", rate_per_hour)
print("Параметр 3: ", bonus)
print('Заработная плата : ', int(productivity) * int(rate_per_hour) + int(bonus))
20 changes: 20 additions & 0 deletions 1_list_script_lesson2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Урок 2 задание 1
# Создаем список и заполняем его элементами различных типов данных
# Проверяем типы данных с помощью функции type()


my_list = ['One', 12, 'Two', 4.7, 'Application of ', {'Jan': 1, 'Feb': 2, 'Mar': 3, 'Apr': 4}]

print(my_list)

# нумеруем каждый элемент в списке. Возвращаем кортеж из пар: (индекс, элемент)
print("Нумеруем список",list(enumerate(my_list)))
# делаем срез
print(my_list[3:7])

# в цикле while проверяем тип каждого элемента списка

i = 0
while i < len(my_list):
print(type(my_list[i]))
i += 1
42 changes: 42 additions & 0 deletions 1_variables.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Печать целого числа

i = 234.567

print(int(i))
print(float(i))
print(3 + 8)

# Стринговая переменная

str = "Hi, there"

print(str)

# Булевая переменная
bool = False
print(not(bool))

# ИЗМЕНЯЕМАЯ коллекция объектов
list = ["Hi", 44.6, 332, "there"]
print(list[2])

# Кортеж - НЕизменяемая коллекция объектов
tuple = ("Hi world", 3.14, 8889)

print(tuple[0])

# Словарь - неизменяемая коллекция объектов с доступом по ключу

dict = {"a1": 223, "a2": 45, "name": "anton", "age": 33}

print(dict["a2"], dict["age"])

# Использовние input - всегда вывод строковый

str = input("Как ваше имя: ")
print(str)

# Использовние input для целых чисел

s = input("Введите целое число: ")
print(int(s))
20 changes: 20 additions & 0 deletions 2_lesson3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# 2-е задание урок 3
# Выполнить функцию, которая принимает несколько параметров, описывающих данные пользователя:
# имя, фамилия, год рождения, город проживания, email, телефон. Функция должна принимать параметры
# как именованные аргументы. Осуществить вывод данных о пользователе одной строкой.


def user_data(**kwargs): # Функция может принимать неопределённое число именованных параметров
# переменная **kwargs хранит словарь
return f"Name: {kwargs['nme']}, Surname: {kwargs['snme']}, Year_Birth:{kwargs['ybirth']}," \
f" City_of_res:{kwargs['cityres']}," \
f" Email:{kwargs['eml']}, Phone:{kwargs['teln']}"


print(user_data(nme="Ivan", snme="Ivanov", ybirth= ' 1987', cityres= "Orel", eml= "plmnb@yandex.ru",
teln= "+79874566789"))





17 changes: 17 additions & 0 deletions 2_lesson4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Представлен список чисел. Необходимо вывести элементы исходного
# списка, значения которых больше предыдущего элемента.
# Подсказка: элементы, удовлетворяющие условию, оформить в виде списка.
# Для его формирования используйте генератор.
# Пример исходного списка: [300, 2, 12, 44, 1, 1, 4, 10, 7, 1, 78, 123, 55].
# Результат: [12, 44, 4, 10, 78, 123].

a_list = [23,5,56,88,26,4,11,5,77,81,41,66,44,89] # начальный произвольный список чисел
print(f'Это начальный список чисел : {a_list}')

result_list = [a_list[i] for i in range(1, len(a_list)) if a_list[i] > a_list[i-1]]
# формируем результирующий список из имеющегося. Перебираем все элементы, но включаем в финишный
# список элемент списка только в том случае когда следующий элемент больше предыдущего
print(f' Результат: {result_list}')



15 changes: 15 additions & 0 deletions 2_seconds.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Задание 2, ввод в секундах и вывод в часах минутах и секундах
# проверка на неправильный ввод символов НЕ выполняется
ss = float(input("Введите время в секундах используя точку для десятичных значений : "))
# вычисление часов
h = 0
h = ss//3600
# вычисление минут
m = 0
m = (ss%3600)//60
# вычисление секунд
s = 0
s = (ss%3600)%60

print(" Это равно - ",int(h),"hr:",int(m),"min:",int(s),"sec")

20 changes: 20 additions & 0 deletions 3_lesson3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# 3-е задание урок 3
# Реализовать функцию my_func(), которая принимает три позиционных аргумента и возвращает сумму
# наибольших двух аргументов.

def my_func(x, y, z): # название функции с позиционными параметрами
try:
f_list = [x, y, z] # список параметров
f_list.sort() # функция сортировки
f_list.reverse() # от большего к меньшему
return sum(f_list[:2]) # используем стандартную функцию суммы первых двух элементов списка
except Exception:
return print("Ошибка ввода, введите число пожалуйста !")

print(my_func(45, 145, 67))
print(my_func("w", 20, 10))





9 changes: 9 additions & 0 deletions 3_lesson4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Для чисел в пределах от 20 до 240 найти числа, кратные 20 или 21.
# Решите задание в одну строку.
# Подсказка: используйте функцию range() и генератор.

# Оставляем в списке только те числа от 20 до 240 которые нацело деляться на 20 или 21

res = [el for el in range(20, 241) if el % 20 == 0 or el % 21 ==0]

print(f' Результат : {res}')
15 changes: 15 additions & 0 deletions 3_sum_of_numbers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#
# Вводим число через input , получаем строковую переменную, формируем строку s+s, затем s+s+s
# и складываем числа преобразую строки s ,s+s и s+s+s в целые числа
# выполняем проверку ввода через try - exception

try:
z = input('Введите целое число от 0 до 9 :')
zz = z + z
zzz = z + z + z

sum = int(z) + int(zz) + int(zzz)
print('Сумма равна :', sum)

except Exception:
print('Вы ввели неверный символ, введите целое число от 0 до 9')
22 changes: 22 additions & 0 deletions 4_largest_digit_in_the_number.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Через input получаем строковую переменную, преобразуем в лист и проверяем на наличие 9, 8 и т.д. до 1
# проверка ввода через try: - exception
try:

str_n = input('Введите целое положительное число : ')

max = 0
i = 0
# Цикл прохода по цифрам числа
while i < len(str_n):
y = 9
# Цикл определения каждой цифры и назначение максимальной
while y >= 0:
if y == int(str_n[i]) and max < y:
max = y
y -= 1
i += 1
print('Самая большая цифра числа :', max)


except Exception:
print('Ошибочный ввод данных !')
44 changes: 44 additions & 0 deletions 4_lesson3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# 4-е задание урок 3
# Программа принимает действительное положительное число x и целое отрицательное число y.
# Выполните возведение числа x в степень y. Задание реализуйте в виде функции my_func(x, y).
# При решении задания нужно обойтись без встроенной функции возведения числа в степень.
# Подсказка: попробуйте решить задачу двумя способами. Первый — возведение в степень с помощью оператора **.
# Второй — более сложная реализация без оператора **, предусматривающая использование цикла.


def my_func(x: float, y: int) -> float:
if y > 0:
return
elif y == 0:
return
elif x <= 0:
return
else:
reslt = 1 # цикл пока y не станет равным нулю будем 1/x умножать саму на себя
while y < 0:
reslt *= 1/x
y += 1
return reslt

#
result = 34 ** (-4 )
print(result)
result = my_func(34, -4)
print(result)

















26 changes: 26 additions & 0 deletions 4_lesson4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Представлен список чисел. Определите элементы списка, не имеющие повторений.
# Сформируйте итоговый массив чисел, соответствующих требованию.
# Элементы выведите в порядке их следования в исходном списке.
# Для выполнения задания обязательно используйте генератор.
# Пример исходного списка: [2, 2, 2, 7, 23, 1, 44, 44, 3, 2, 10, 7, 4, 11].
# Результат: [23, 1, 3, 10, 4, 11]

from random import randint # импортируем из модуля random функцию randint
# в функции randint() значения и нижней, и верхней границы
# входят в диапазон

start_list = [randint(0,10) for i in range(20)] # генерируем 20 случайных числа в диапазоне от
# 0 до 10
print(f' Начальный список: {start_list}') # печатаем этот список

result = [ element for element in start_list if start_list.count(element) == 1] # с помощью
# генератора определяем какие элементы списка
# повторяются только один раз .
# Метод список.count(el)
# Возвращает количество элементов списка со значением el
# Таким образом в результирующий список попадут только
# те элементы которые встречаются один раз !
print(f' В списке не повторяются числа: {result}')



37 changes: 37 additions & 0 deletions 5_lesson3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# 5-е задание урок 3
# Программа запрашивает у пользователя строку чисел, разделённых пробелом.
# При нажатии Enter должна выводиться сумма чисел. Пользователь может продолжить ввод чисел,
# разделённых пробелом и снова нажать Enter. Сумма вновь введённых чисел будет добавляться к уже
# подсчитанной сумме.
# Но если вместо числа вводится специальный символ, выполнение программы завершается.
# Если специальный символ введён после нескольких чисел, то вначале нужно добавить сумму этих чисел
# к полученной ранее сумме и после этого завершить программу.

def sum_string(input_str): # получаем строку
input_list = input_str.split() # превращаем строку в список разделенный пробелами
result_sum = 0 # внутрення переменная, начальное значение равно нулю
for el in input_list: # цикл для всех элементов списка
if el: # если элемент есть и равен N
try:
if el == 'N':
return result_sum, False # возвращаем значение переменной result_sum и False - признак N символа
else:
result_sum += int(el) # если нет то складываем значение элемента с предыдущим
except ValueError:
continue
return result_sum, True # если все успешно возвращаем result_sum и True - признак успеха
# Дальше идет код который использует нашу функцию sum_string()
continue_flag = True # заявляем булевую переменную
result = 0 # начальное значение переменной result
while continue_flag: # пока continue_flag имеет значение True - работает цикл
input_str = input(f'Введите числа через пробел. Для прерывания работы введите N :') # получаем через input
# значение переменной input_str
current_sum, continue_flag = sum_string(input_str) # через функцию sum_string() присваиваем значение
# переменныим current_sum и continue_flag
result += current_sum # переменная result на каждом шаге цикла получает сумму
# значения current_sum c предыдущим ее значением
print(f'Промежуточная сумма', result)
print(f'Результирующая сумма :', result) # Как только вводиться символ N цикл заканчивается так
# как continue_flag имеет значение False


22 changes: 22 additions & 0 deletions 5_lessson4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Реализовать формирование списка, используя функцию range() и возможности
# генератора. В список должны войти чётные числа от 100 до 1000
# (включая границы). Нужно получить результат вычисления произведения
# всех элементов списка.
# Подсказка: использовать функцию reduce().

from functools import reduce

start_list = [element for element in range(100, 1001, 2)] # генерим список от 100 до 1000 с шагом 2
print(f' Начальный список : {start_list}')

res = reduce(lambda x, y: x*y, start_list) # Здесь reduce работает следующим обазом : анонимная функция
# выдает первое число а второе это произведение первого
# и последующего. Reduce берет первый элемент списка * на
# второй и дальше умножает на третий : 100х102х104х106
# и так далее

print(f'Результат : {res}')




30 changes: 30 additions & 0 deletions 5_profit.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Запрашиваем через инпут выручку и издержки . Вычисляем прибыль/убыток.
# r - выручка, с - косты, p - прибыль, w - число работников
# проверка ввода через try -except

try:






r = int(input('Введите выручку компании : '))
print(r)
c = int(input('Введите издержки : '))
print(c)

# Вычисляем прибыль

p = r - c
print(p)
if p > 0:

print(f'Рентабельность равна {p / r * 100:.2f}%')
w = int(input('Введите количество работников в компании : '))
print(f'Прибыль на работника равна : {p / w:.2f}')
else:
print('Компания убыточна')

except Exception:
print('Ошибочный ввод данных !')
Loading