Skip to content
Open

ДЗ2 #830

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
21 changes: 19 additions & 2 deletions 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,16 +9,33 @@

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

m = int(input('Введите число'))
i = 0
while i <= m:
print(i)
i +=1


# Задача-2: Исходные значения двух переменных запросить у пользователя.
# Поменять значения переменных местами. Вывести новые значения на экран.
# Подсказка:
# * постарайтесь сделать решение через дополнительную переменную
# * постарайтесь сделать решение через дополнительную переменную
# или через арифметические действия
# Не нужно решать задачу так:
# print("a = ", b, "b = ", a) - это неправильное решение!
a = int(input('Введите число'))
b = int(input('Введите число'))
buf = a
a = b
b = buf
print(a, b)


# Задача-3: Запросите у пользователя его возраст.
# Если ему есть 18 лет, выведите: "Доступ разрешен",
# иначе "Извините, пользование данным ресурсом только с 18 лет"
y = int(input('Сколько вам лет?'))
if y >= 18:
print('Доступ разрешен')
else:
print('Извините, пользование данным ресурсом только с 18 лет')
4 changes: 2 additions & 2 deletions lesson01/home_work/hw01_hard.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

__author__ = 'Ваши Ф.И.О.'
__author__ = 'Пыпин Андрей Сергеевич'

# Задание-1:
# Ваня набрал несколько операций в интерпретаторе и получал результаты:
Expand All @@ -9,7 +9,7 @@
# Результат: True
# Код: a > 999999
# Результат: True

8
# Вопрос: Чему была равна переменная a,
# если точно известно, что её значение не изменялось?

Expand Down
25 changes: 21 additions & 4 deletions 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 @@ -9,19 +9,36 @@
# Подсказки:
# * постарайтесь решить задачу с применением арифметики и цикла while;
# * при желании и понимании решите задачу с применением цикла for.

m = 184
ls = []
while m > 10:
ls.append(m % 10)
m //= 10
r = max(ls)
print(r)

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


i = int(input('Введите число'))
y = int(input('Введите число'))
i = i + y
y = i - y
i = i - y
print(i, y)
# Задача-3: Напишите программу, вычисляющую корни квадратного уравнения вида
# ax² + bx + c = 0.
# Коэффициенты уравнения вводятся пользователем.
# Для вычисления квадратного корня воспользуйтесь функцией sqrt() модуля math:
# import math
# math.sqrt(4) - вычисляет корень числа 4
import math
a = int(input('Введите число'))
b = int(input('Введите число'))
x = int(input('Введите число'))
c = int(input('Введите число'))
g = a*x**2 + (b*x) + c
print(math.sqrt(g))
16 changes: 16 additions & 0 deletions lesson02/home_work/hw02_easy.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
# Дан список фруктов.
# Напишите программу, выводящую фрукты в виде нумерованного списка,
# выровненного по правой стороне.
empty_list = []
my_list = ["яблоко", "банан", "киви", "арбуз"]
for index, value in enumerate(my_list, 1):
print("{}. {:>10}".format(index, value))


# Пример:
# Дано: ["яблоко", "банан", "киви", "арбуз"]
Expand All @@ -18,8 +23,19 @@
# Даны два произвольные списка.
# Удалите из первого списка элементы, присутствующие во втором списке.

list_1 = [1, 3, 5, 8, 9]
list_2 = [1, 7, 4, 15, 9]
list_1.pop(0)
list_1.pop(3)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А если список изменится? Надо чтоб программа проверяла

list_2.pop(0)
list_2.pop(3)
print(list_1, list_2)

# Задача-3:
# Дан произвольный список из целых чисел.
# Получите НОВЫЙ список из элементов исходного, выполнив следующие условия:
# если элемент кратен двум, то разделить его на 4, если не кратен, то умножить на два.
a = [12, 15, 40, 25]
b = [12/2, 15*2, 40/2, 25*2]

print(a, b)
123 changes: 120 additions & 3 deletions lesson02/home_work/hw02_normal.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,139 @@
# но только если результаты извлечения корня не имеют десятичной части и
# если такой корень вообще можно извлечь
# Пример: Дано: [2, -5, 8, 9, -25, 25, 4] Результат: [3, 5, 2]


import math
import random
l = [2, -5, 8, 9, -25, 25, 4]
new = []
for x in l:
if x > 0:
y = math.sqrt(x)
if y % int(y) == 0:
new.append(y)
print(new)
# Задача-2: Дана дата в формате dd.mm.yyyy, например: 02.11.2013.
# Ваша задача вывести дату в текстовом виде, например: второе ноября 2013 года.
# Склонением пренебречь (2000 года, 2010 года)
s = '02.11.2013'
a = s.split('.')
day = a[0]
month = a[1]
year = a[2]
text = 'года'

if day == '01':
day = 'первое'
elif day == '02':
day = 'второе'
elif day == '03':
day = 'третье'
elif day == '04':
day = 'четвертое'
elif day == '05':
day = 'пятое'
elif day == '06':
day = 'шестое'
elif day == '07':
day = 'седьмое'
elif day == '08':
day = 'восьмое'
elif day == '09':
day = 'девятое'
elif day == '10':
day = 'десятое'
elif day == '11':
day = 'одиннадцатое'
elif day == '12':
day = 'двенадцатое'
elif day == '13':
day = 'тринадцатое'
elif day == '14':
day = 'четырнадцатое'
elif day == '15':
day = 'пятнадцатое'
elif day == '16':
day = 'шестнадцатое'
elif day == '17':
day = 'семнадцатое'
elif day == '18':
day = 'восемнадцатое'
elif day == '19':
day = 'девятьнадцатое'
elif day == '20':
day = 'дцадцатое'
elif day == '21':
day = 'двадцать первое'
elif day == '22':
day = 'двадцать второе'
elif day == '23':
day = 'двадцать третье'
elif day == '24':
day = 'двадцать чертвертое'
elif day == '25':
day = 'двадцать пятое'
elif day == '26':
day = 'двадцать шестое'
elif day == '27':
day = 'двадцать седьмое'
elif day == '28':
day = 'двадцать восьмое'
elif day == '29':
day = 'двадцать девятое'
elif day == '30':
day = 'тридцатое'
elif day == '31':
day = 'тридцать первое'

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


print('{} {} {} {}'.format(day, month, year, text))

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

l = []
n = 50
count = 0
while count < 50:
l.append(random.randint(-100, 100))
count += 1
print(l)

# Задача-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]
lst = [1, 2, 4, 5, 6, 2, 5, 2]
lst1 = set(lst)
lst1 = list(lst1)
print(lst1)

lst2 = [x for x in lst if not lst.count(x) > 1]
print(lst2)
11 changes: 4 additions & 7 deletions lesson03/home_work/hw03_easy.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
# Округление должно происходить по математическим правилам (0.6 --> 1, 0.4 --> 0).
# Для решения задачи не используйте встроенные функции и функции из модуля math.

def my_round(number, ndigits):
pass

def my_round(number, digits):
multiplier = pow(10.0, digits)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А ведь в условии сказано не использовать встроенные функции, это относится и к функции pow

return int (number*multiplier + 0.5) / multiplier

print(my_round(2.1234567, 5))
print(my_round(2.1999967, 5))
Expand All @@ -21,8 +21,5 @@ def my_round(number, ndigits):

def lucky_ticket(ticket_number):
pass
lucky_ticket = lambda x :(lambda x : 'yes' if sum(x[:3]) == sum(x[3:]) else 'no')(map(int, list(str(x))))

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В таких задачах желательно чтоб функция возвращала булевое



print(lucky_ticket(123006))
print(lucky_ticket(12321))
print(lucky_ticket(436751))
40 changes: 36 additions & 4 deletions lesson03/home_work/hw03_normal.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,54 @@
def fibonacci(n, m):
pass


for Y in range(0, 5 + 1):
print(Y)

def fibonacci(n, m):
a = []
golden = 1.618034
for i in range(n, m + 1):
x = (golden ** i - (1 - golden) ** i) / (5 ** (1 / 2))
a.append(round(x))
return a

x = 5
y = 7

B = fibonacci(x, y)

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


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

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

# Задача-3:
# Напишите собственную реализацию стандартной функции filter.
# Разумеется, внутри нельзя использовать саму функцию filter.


def filter_function(func,iterable):
output_iterable = []
for i in range(len(iterable)):
if func(iterable[i]) == True:
output_iterable.append(iterable[i])
return output_iterable

func = lambda x: type(x) == str
iterable = [-1, 2, 'a', 4, 'GGG']
print(filter_function(func,iterable))
# Задача-4:
# Даны четыре точки А1(х1, у1), А2(x2 ,у2), А3(x3 , у3), А4(х4, у4).
# Определить, будут ли они вершинами параллелограмма.
Expand Down
12 changes: 11 additions & 1 deletion 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]
list_1 = [1, 2, 4, 0, 1, 4, 16, 0]
print('list_1:', list_1)
list_2 = list(map(lambda x: x ** 2, list_1))
print('list_2:', list_2)

# Задание-2:
# Даны два списка фруктов.
# Получить список фруктов, присутствующих в обоих исходных списках.

fruit_list_1 = ['Грэйпфрут', 'Лайм', 'Ананас', 'Памела', 'Дыня']
fruit_list_2 = ['Банан', 'Ананас', 'Апельсин', 'Лайм', 'Памела', 'Вишня']
result_list = [i for i in fruit_list_1 if i in fruit_list_2]
print(result_list)
# Задание-3:
# Дан список, заполненный произвольными числами.
# Получить список из элементов исходного, удовлетворяющих следующим условиям:
# + Элемент кратен 3
# + Элемент положительный
# + Элемент не кратен 4
list_1 = [3, 4, 5, 11, 6, 7, 33, 39, 8, 45, 9, 12, 58, 61]
list_2 = [i for i in list_1 if i >= 0 and i%4 and not i%3]
print(list_2)
Loading