Skip to content

Lesson 7 #869

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

Open
wants to merge 10 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
67 changes: 64 additions & 3 deletions lesson01/home_work/hw01_easy.py
Original file line number Diff line number Diff line change
@@ -1,24 +1,85 @@

__author__ = 'Ваши Ф.И.О.'
__author__ = 'Кумпяков Евгений'

# Задача-1: Дано произвольное целое число (число заранее неизвестно).
# Вывести поочередно цифры исходного числа (порядок вывода цифр неважен).
# Подсказки:
# * постарайтесь решить задачу с применением арифметики и цикла while;
# * при желании решите задачу с применением цикла for.
print("Задача 1")

# код пишем тут...
loop = True
while loop:
number = input('Ведите произвольное целое число:\n')
if number.isdigit():
loop = False
else:
print('Некорректный ввод!')

var_temp = list(number)

for i in var_temp:
print(i)

print("Конец Задачи 1")
print()

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

print("Задача 2")

loop = True
while loop:
number_a = input('Ведите произвольное целое число a:\n')
if number_a.isdigit():
loop = False
else:
print('Некорректный ввод!')

loop = True
while loop:
number_b = input('Ведите произвольное целое число b:\n')
if number_b.isdigit():
loop = False
else:
print('Некорректный ввод!')

print('Исходный ввод: число a = ', number_a)
print('Исходный ввод: число b = ', number_b)

number_temp = number_a
number_a = number_b
number_b = number_temp

print('Вывод после замены: число a = ', number_a)
print('Вывод после замены: число b = ', number_b)

print("Конец Задачи 2")
print()

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

loop = True
while loop:
number = input('Ведите число полных лет своего возраста:\n')
if number_a.isdigit():
loop = False
else:
print('Некорректный ввод!')

if int(number) < 18:
print("Извините, пользование данным ресурсом только с 18 лет")
else:
print("Доступ разрешен")

print("Конец Задачи 3")
print()
70 changes: 69 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 @@ -9,19 +9,87 @@
# Подсказки:
# * постарайтесь решить задачу с применением арифметики и цикла while;
# * при желании и понимании решите задачу с применением цикла for.
print("Задача 1")

loop = True
while loop:
number = input('Ведите произвольное целое число:\n')
if number.isdigit():
loop = False
else:
print('Некорректный ввод!')

var_temp = list(number)

answer = 0
for i in var_temp:
if int(i) > answer:
answer = int(i)

print('Наибольшее число: ', answer)
# или так:
#print('Наибольшее число: ', max(var_temp))
print("Конец Задачи 1")
print()

# Задача-2: Исходные значения двух переменных запросить у пользователя.
# Поменять значения переменных местами. Вывести новые значения на экран.
# Решите задачу, используя только две переменные.
# Подсказки:
# * постарайтесь сделать решение через действия над числами;
# * при желании и понимании воспользуйтесь синтаксисом кортежей Python.
print("Задача 2")
val_out = []
loop = True
while loop:
number = input('Ведите произвольное целое число a:\n')
if number.isdigit():
val_out.append(number)
loop = False
else:
print('Некорректный ввод!')

loop = True
while loop:
number = input('Ведите произвольное целое число b:\n')
if number.isdigit():
val_out.append(number)
loop = False
else:
print('Некорректный ввод!')
val_out = tuple(val_out)
print('Исходный ввод:', val_out)
number = val_out[::-1]
print('Реверсный вывод:', number)
print("Конец Задачи 2")
print()

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

import math

print("Задача 3")
print('Вычисление корней квадратного уровнений вида ax² + bx + c = 0')
a = int(input('Ведите число a:\n'))
b = int(input('Ведите число b:\n'))
c = int(input('Ведите число c:\n'))

d=(b**2)-(4*a*c)

if d>0:
x1=(-b-math.sqrt(d))/(2*a)
x2=(-b+math.sqrt(d))/(2*a)
#Если привести ответы к целочисленному виду, ответы с дробной частью, теряют дробную часть
print('Корень квадратного уравнения x1 = ',x1)
print('Корень квадратного уравнения x2 = ',x2)
elif d==0:
print("d=0, x1=x2=",int(-b/(2*a)),sep="")
else:
print("Действительных корней нет: d<0")

print("Конец Задачи 3")
36 changes: 33 additions & 3 deletions lesson02/home_work/hw02_easy.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,46 @@
# 2. банан
# 3. киви
# 4. арбуз

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


print('Задача 1')
my_fructs = ["яблоко", "банан", "киви", "арбуз"]
for idx, title in enumerate(my_fructs):
my_fructs_str = '{0}. {1:>6}'.format(idx,title)
print(my_fructs_str)
print('Конец задачи 1')
# Задача-2:
# Даны два произвольные списка.
# Удалите из первого списка элементы, присутствующие во втором списке.

print('Задача 2')
fuds_1_box = ["яблоко", "банан", "киви", "арбуз","груша","тыква","виноград","морковка"]
fuds_2_box = ["яблоко", "банан", "киви","груша","виноград"]
print('Исходный список 1: ', fuds_1_box)
print('Исходный список 2: ', fuds_2_box)

fuds_1_box = set(fuds_1_box)
fuds_2_box = set(fuds_2_box)

fuds_3_box = fuds_1_box - fuds_2_box
fuds_1_box = list(fuds_3_box)
print('Результат: ',fuds_1_box)
print('Конец задачи 2')

# Задача-3:
# Дан произвольный список из целых чисел.
# Получите НОВЫЙ список из элементов исходного, выполнив следующие условия:
# если элемент кратен двум, то разделить его на 4, если не кратен, то умножить на два.
print('Задача 3')
my_list = [1,4,6,3,5,7,9,4,6,9,34,66,52,44,5,88,75,104]
print('Исходный список:')
print(my_list)
result = []

for i in my_list:
if (i%2):
var_temp = i*2 #остаток есть! нечетное число
else:
var_temp = i / 4 # остатка нет! четное число
result.append(var_temp)
print(result)
print('Конец задачи 3')
65 changes: 62 additions & 3 deletions lesson02/home_work/hw02_normal.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,81 @@
# но только если результаты извлечения корня не имеют десятичной части и
# если такой корень вообще можно извлечь
# Пример: Дано: [2, -5, 8, 9, -25, 25, 4] Результат: [3, 5, 2]
print('Задача 1')
import math

my_list = [2, -5, 8, 9, -25, 25, 4]
print('Исходный список: ',my_list)
result = []
for i in my_list:
if i > 0:
if math.modf(math.sqrt(i))[0] == 0: #если дробная часть от извлечения корня равна 0?
result.append(int(math.sqrt(i)))

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


print('Задача 2')
my_data = '02.11.2013'
print('Исходная строка: ',my_data)
import time
ch = ['','Первое','Второе','Третье','Четвертое','Пятое','Шестое','Седьмое','Восьмое','Девятое','Десятое',
'Одинадцатое','Двенадцатое','Тринадцатое','Четырнадцатое','Пятнадцатое','Шестнадцатое','Семьнадцатое'
'Восемьнадцатое','Девятнадцатое','Двадцатое','Двадцать первое','Двадцать второе','Двадцать третье',
'Двадцать четвертое','Двадцать пятое','Двадцать шестое','Двадцать седьмое','Двадцать восьмое',
'Двадцать девятое','Тридцатое','Тридцать первое']
mm = ['','января','февраля','марта','апреля','мая','июня','июля','августа','сентября',
'октября','ноября','декабря']
t = time.strptime(my_data,"%d.%m.%Y")
print("Результат работы программы: %s %s %s" %(ch[t[2]], mm[t[1]], t[0]))
print('Конец задачи 2')
print()
# Задача-3: Напишите алгоритм, заполняющий список произвольными целыми числами
# в диапазоне от -100 до 100. В списке должно быть n - элементов.
# Подсказка:
# для получения случайного числа используйте функцию randint() модуля random
print('Задача 3')

from random import randint

n_elements = 30

result = []

for i in range(n_elements):
result.append(randint(-100,100))

print(result)
print('Конец задачи 3')
print()
# Задача-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]
print('Задача 4')
lst = [1, 2, 4, 5, 6, 2, 5, 2]
print('Исходный список: ',lst)
result = list(set(lst))
print('Результат a:',result)

result_2 = []
var_multi = []

for i in lst:
if i in result_2:
var_multi.append(i) # создаем список объектов-повторов
continue
else:
result_2.append(i)

var_multi = list(set(var_multi)) #оставляем только уникальные значения
for i in var_multi:
result_2.remove(i)

print('Результат б:',result_2)
print('Конец задачи 4')
36 changes: 33 additions & 3 deletions lesson03/home_work/hw03_easy.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,23 @@
# Для решения задачи не используйте встроенные функции и функции из модуля math.

def my_round(number, ndigits):
pass
my_number = str(number)
pos = my_number.find('.') + ndigits +1
znak = int(my_number[pos]) #нашли знак для отбрасывания
if znak >=5:
mod = 1
else:
mod = 0
my_number = float(my_number[:pos])

var_result = '0.'
for i in range(ndigits-1):
var_result += '0'

var_result += str(mod)# число-модификатор
var_result = float(var_result) + my_number

return var_result


print(my_round(2.1234567, 5))
Expand All @@ -20,8 +36,22 @@ def my_round(number, ndigits):
# !!!P.S.: функция не должна НИЧЕГО print'ить

def lucky_ticket(ticket_number):
pass

my_tiket_number = str(ticket_number)

str_low = my_tiket_number[:3]
str_hi = my_tiket_number[-3:]

res_low = 0
res_hi = 0
for x in str_low:
res_low += int(x)
for x in str_hi:
res_hi += int(x)

if res_low == res_hi:
return 'Счастливый билет!'
else:
return 'Билет не является счастливым'

print(lucky_ticket(123006))
print(lucky_ticket(12321))
Expand Down
14 changes: 14 additions & 0 deletions lesson04/home_work/hw04_easy.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,27 @@
# квадратами элементов исходного списка
# [1, 2, 4, 0] --> [1, 4, 16, 0]

arr = [1, 2, 4, 0]
arr2 = [ i**2 for i in arr ]
#print(arr2)


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

arr = ['яблоко','груша','апельсин','лимон']
arr2 = ['яблоко','апельсин','персик','вишня']

result = [ i for i in arr for j in arr2 if i == j]
#print(result)

# Задание-3:
# Дан список, заполненный произвольными числами.
# Получить список из элементов исходного, удовлетворяющих следующим условиям:
# + Элемент кратен 3
# + Элемент положительный
# + Элемент не кратен 4
arr = [4,20,6,3,-6,7,3,5,45,-22,1,-9,54,33,-2,2]
result = [ i for i in arr if i % 3 == 0 and i > 0 and i % 4 !=0 ]
#print(result)
Loading