Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lesson6 #890

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
20 changes: 19 additions & 1 deletion lesson01/home_work/hw01_easy.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

__author__ = 'Ваши Ф.И.О.'
__author__ = 'Горяев Никита Андреевич'

# Задача-1: Дано произвольное целое число (число заранее неизвестно).
# Вывести поочередно цифры исходного числа (порядок вывода цифр неважен).
Expand All @@ -9,6 +9,11 @@

# код пишем тут...

number_units = input('Введите число ')
i = 0
while i < len(number_units):
print(number_units[i])
i += 1

# Задача-2: Исходные значения двух переменных запросить у пользователя.
# Поменять значения переменных местами. Вывести новые значения на экран.
Expand All @@ -18,7 +23,20 @@
# Не нужно решать задачу так:
# print("a = ", b, "b = ", a) - это неправильное решение!

unit1 = input("Введите первое число")
unit2 = input("Введите второе число")
fake = unit1
unit1 = unit2
unit2 = fake
print(unit1,"теперь равен", unit2)
print(unit2,"теперь равен", unit1)

# Задача-3: Запросите у пользователя его возраст.
# Если ему есть 18 лет, выведите: "Доступ разрешен",
# иначе "Извините, пользование данным ресурсом только с 18 лет"

age = int(input("Введите ваш возраст"))
if age >= 18:
print("Доступ разрешен")
else:
print("Извините, пользование данным ресурсом только с 18 лет")
34 changes: 33 additions & 1 deletion lesson01/home_work/hw01_normal.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

__author__ = 'Ваши Ф.И.О.'
__author__ = 'Горяев Никита Андреевич'

# Задача-1: Дано произвольное целое число, вывести самую большую цифру этого числа.
# Например, дается x = 58375.
Expand All @@ -10,6 +10,16 @@
# * постарайтесь решить задачу с применением арифметики и цикла while;
# * при желании и понимании решите задачу с применением цикла for.

#!/usr/bin/env python3

user_number = int(input("Введите число"))
compare_number = -1
while user_number > 10:
division_number = user_number % 10
user_number //= 10
if division_number > compare_number:
compare_number = division_number
print("Наибольшая цифра -",compare_number)

# Задача-2: Исходные значения двух переменных запросить у пользователя.
# Поменять значения переменных местами. Вывести новые значения на экран.
Expand All @@ -18,10 +28,32 @@
# * постарайтесь сделать решение через действия над числами;
# * при желании и понимании воспользуйтесь синтаксисом кортежей Python.

unit1 = input("Введите первое число")
unit2 = input("Введите второе число")
unit1,unit2 = unit2,unit1
print("Первое число теперь",unit1)
print("Второе число теперь",unit2)

# Задача-3: Напишите программу, вычисляющую корни квадратного уравнения вида
# ax² + bx + c = 0.
# Коэффициенты уравнения вводятся пользователем.
# Для вычисления квадратного корня воспользуйтесь функцией sqrt() модуля math:
# import math
# math.sqrt(4) - вычисляет корень числа 4

import math
print("Введите значения квадратного уравнения")
a = int(input("a="))
b = int(input("b="))
c = int(input("c="))
d = b*b - 4*a*c
if d < 0:
print("Корней нет")
if d == 0:
x_first = (- b - math.sqrt(d)) / (2 * a)
print("Уравнение имеет один корень равный",x_first)
if d > 0:
x_first = (- b - math.sqrt(d)) / (2 * a)
x_second = (- b + math.sqrt(d)) / (2 * a)
print("Первый корень равен",x_first)
print("Второй корень равен",x_second)
24 changes: 22 additions & 2 deletions lesson02/home_work/hw02_easy.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# Задача-1:
# Дан список фруктов.
# Напишите программу, выводящую фрукты в виде нумерованного списка,
# выровненного по правой стороне.

# # выровненного по правой стороне.
# Пример:
# Дано: ["яблоко", "банан", "киви", "арбуз"]
# Вывод:
Expand All @@ -13,13 +12,34 @@

# Подсказка: воспользоваться методом .format()

fruit_pack = ['яблоко', 'банан', 'киви', 'арбуз']
for i in range(0, len(fruit_pack)):
print(str(i + 1) + '.' + '{:>7}'.format(fruit_pack[i]))




# Задача-2:
# Даны два произвольные списка.
# Удалите из первого списка элементы, присутствующие во втором списке.

first_pack = ['1', '2', '3', '4', '5', '6', '7']
second_pack = ['1', '3', '6']
for item in second_pack:
if item in first_pack:
first_pack.remove(item)


# Задача-3:
# Дан произвольный список из целых чисел.
# Получите НОВЫЙ список из элементов исходного, выполнив следующие условия:
# если элемент кратен двум, то разделить его на 4, если не кратен, то умножить на два.
full_pack = ['1', '2', '3', '4', '5', '6', '7', '12']
empty_pack = []
for i in range(0, len(full_pack)):
check_number = int(full_pack[i])
if check_number % 2 == 0:
empty_pack.append(check_number/4)
else :
empty_pack.append(check_number*2)
print(empty_pack)
47 changes: 47 additions & 0 deletions lesson02/home_work/hw02_normal.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,68 @@
# если такой корень вообще можно извлечь
# Пример: Дано: [2, -5, 8, 9, -25, 25, 4] Результат: [3, 5, 2]

import math
my_pack = [2, -5, 8, 9, -25, 25, 4, ]
empty_pack = []
for item in my_pack:
if item > 0 and math.sqrt(item) % 1 == 0:
empty_pack.append(int(math.sqrt(item)))
print(empty_pack)


# Задача-2: Дана дата в формате dd.mm.yyyy, например: 02.11.2013.
# Ваша задача вывести дату в текстовом виде, например: второе ноября 2013 года.
# Склонением пренебречь (2000 года, 2010 года)

user_date = input('Введите дату:')
date_check = user_date.split('.')
dic_days = {
'01': 'первое', '02': 'второе', '03': 'третье', '04': 'четвёртое', '05': 'пятое',
'06': 'шестое', '07': 'седьмое', '08': 'восьмое', '09': 'девятое', '10': 'десятое',
'11': 'одиннадцатое', '12': 'двенадцатое', '13': 'тринадцатое', '14': 'четырнадцатое', '15': 'пятнадцатое',
'16': 'шестнадцатое', '17': 'семнадцатое', '18': 'восемнадцатое', '19': 'девятнадцатое', '20': 'двадцатое',
'21': 'двадцать первое', '22': 'двадцать второе', '23': 'двадцать третье', '24': 'двадцать четвёртое',
'25': 'двадцать пятое', '26': 'двадцать шестое', '27': 'двадцать седьмое', '28': 'двадцать восьмое',
'29': 'двадцать девятое', '30': 'тридцатое', '31': 'тридцать первое'
}

dic_months = {
'01': 'января', '02': 'феврал', '03': 'марта', '04': 'апреля', '05': 'мая', '06': 'июня',
'07': 'июля', '08': 'августа', '09': 'сентября', '10': 'октября', '11': 'ноября', '12': 'декабря',
}

for key in dic_days:
if date_check[0] == key:
date_check[0] = dic_days[key]

for key in dic_months:
if date_check[1] == key:
date_check[1] = dic_months[key]

print(date_check[0] + ' ' + date_check[1] + ' ' + date_check[2] + ' ' "года")

# Задача-3: Напишите алгоритм, заполняющий список произвольными целыми числами
# в диапазоне от -100 до 100. В списке должно быть n - элементов.
# Подсказка:
# для получения случайного числа используйте функцию randint() модуля random

import random
empty_pack = []
pack_range = int(input('Введите желаемое количество элементов списка'))
for i in range(pack_range):
empty_pack.append(random.randint(-100, 100))
print(empty_pack)

# Задача-4: Дан список, заполненный произвольными целыми числами.
# Получите новый список, элементами которого будут:
# а) неповторяющиеся элементы исходного списка:
# например, lst = [1, 2, 4, 5, 6, 2, 5, 2], нужно получить lst2 = [1, 2, 4, 5, 6]
# б) элементы исходного списка, которые не имеют повторений:
# например, lst = [1 , 2, 4, 5, 6, 2, 5, 2], нужно получить lst2 = [1, 4, 6]

my_pack = [1, 2, 4, 5, 6, 2, 5, 2]
perfect_pack = []
for item in my_pack:
if my_pack.count(item) == 1:
perfect_pack.append(item)
print(perfect_pack)
17 changes: 12 additions & 5 deletions lesson03/home_work/hw03_easy.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@
# Для решения задачи не используйте встроенные функции и функции из модуля math.

def my_round(number, ndigits):
pass
number = number * (10 ** ndigits) + 0.41
number = number // 1
return number / (10 ** ndigits)



print(my_round(2.1234567, 5))
Expand All @@ -18,11 +21,15 @@ def my_round(number, ndigits):
# Решение реализовать в виде функции.
# Билет считается счастливым, если сумма его первых и последних цифр равны.
# !!!P.S.: функция не должна НИЧЕГО print'ить

def lucky_ticket(ticket_number):
pass


ticket_number = str(ticket_number)
x = list(map(int, ticket_number))
if sum(x[:len(x)//2])==sum(x[len(x)//2:]):
res = ('lucky')
else:
res = ('unlucky')
return res
print(lucky_ticket(123006))
print(lucky_ticket(12321))
print(lucky_ticket(436751))

42 changes: 40 additions & 2 deletions lesson03/home_work/hw03_normal.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,63 @@
# Первыми элементами ряда считать цифры 1 1

def fibonacci(n, m):
fibb1 = fibb2 = 1
fibb_par = []
fibb_par.append(fibb1)
for fibb in range(2, m):
fibb1, fibb2 = fibb2, fibb1 + fibb2
if fibb >= n:
fibb_par.append(fibb1)
fibb_par.append(fibb2)
print(fibb_par)
pass

fibonacci(1, 10)
# Задача-2:
# Напишите функцию, сортирующую принимаемый список по возрастанию.
# Для сортировки используйте любой алгоритм (например пузырьковый).
# Для решения данной задачи нельзя использовать встроенную функцию и метод sort()


def sort_to_max(origin_list):
pass
rep = 1
while rep < len(origin_list):
for i in range(len(origin_list)-rep):
if origin_list[i] > origin_list[i+1]:
origin_list[i],origin_list[i+1] = origin_list[i+1],origin_list[i]
rep = rep + 1
print(origin_list)

return origin_list

sort_to_max([2, 10, -12, 2.5, 20, -11, 4, 4, 0])

# Задача-3:
# Напишите собственную реализацию стандартной функции filter.
# Разумеется, внутри нельзя использовать саму функцию filter.
def func(x):
return res_func
def filter_clone(res_func, par2):
result_list = []
for i in range(len(par2)):
if func(x) == true:
result_list.append(res_func)
return result_list



# Задача-4:
# Даны четыре точки А1(х1, у1), А2(x2 ,у2), А3(x3 , у3), А4(х4, у4).
# Определить, будут ли они вершинами параллелограмма.

def check_parall(x1, y1, x2, y2, x3, y3, x4, y4):
side1 = y2 - y1
side2 = x3 - x2
side3 = y3 - y4
side4 = x4 - x1
if side1 == side3 and side2 == side4:
print('Oh, its a parallelogram')
else:
print('Thats not a parallelogram')
pass

check_parall(1, 1, 1, 4, 4, 4, 4, 1)
14 changes: 12 additions & 2 deletions lesson04/home_work/hw04_easy.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,24 @@
# Получить новый список, элементы которого будут
# квадратами элементов исходного списка
# [1, 2, 4, 0] --> [1, 4, 16, 0]

basic_list = [1, 2, 4, 0]
quads_list = [i**2 for i in basic_list]
print(quads_list)
# Задание-2:
# Даны два списка фруктов.
# Получить список фруктов, присутствующих в обоих исходных списках.

fruit_pack1 = ['Апельсин', 'Мандарин', 'Яблоко', 'Груша', 'Персик']
fruit_pack2 = ['Апельсин', 'Яблоко', 'Нектарин', 'Манго', 'Маракуйя']
fruit_pack3 = [i for i in fruit_pack1 if i in fruit_pack2]
print(fruit_pack3)
# Задание-3:
# Дан список, заполненный произвольными числами.
# Получить список из элементов исходного, удовлетворяющих следующим условиям:
# + Элемент кратен 3
# + Элемент положительный
# + Элемент не кратен 4
import random
ran_list = [random.randint(-10, 10) for _ in range(10)]
print(ran_list)
filt_list = [el for el in ran_list if el % 3 == 0 and el >= 0 and el % 4 > 0]
print(filt_list)
Loading