Skip to content
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
23 changes: 20 additions & 3 deletions lesson01/home_work/hw01_easy.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@

__author__ = 'Ваши Ф.И.О.'
__author__ = 'Резник А.В.'

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

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

a = int(input())
while a > 0:
print(a % 10)
a //= 10
#for b in str(a):
# print(b)

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

a1 = int(input("введите число А:"))
b1 = int(input("введите число Б:"))
ab = a1
a1 = b1
b1 = ab
print('Число А стало:', a1)
print('Число Б стало:', b1)

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

age = int(input('Для доступа введите Ваш возраст:'))
if age > 17:
print('Доступ разрешен')
else:
print('Извините, пользование данным ресурсом только с 18 лет')
27 changes: 25 additions & 2 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 @@ -10,18 +10,41 @@
# * постарайтесь решить задачу с применением арифметики и цикла while;
# * при желании и понимании решите задачу с применением цикла for.

x = int(input())
b = map(int, str(x))
b.sort()
print(b[-1])

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

ax = int(input('input a plz:'))
bx = int(input('input b plz:'))
print('Bilo:', 'A -',ax,'B -', bx)
ax, bx = bx, ax
print('Stalo:', 'A -',ax,'B -', bx)

# Задача-3: Напишите программу, вычисляющую корни квадратного уравнения вида
# ax² + bx + c = 0.
# Коэффициенты уравнения вводятся пользователем.
# Для вычисления квадратного корня воспользуйтесь функцией sqrt() модуля math:
# import math
# math.sqrt(4) - вычисляет корень числа 4
import math
az = int(input('Vvedite koef A'))
bz = int(input('Vvedite koef B'))
cz = int(input('Vvedite koef C'))
D = bz**2 - 4*az*cz
print('Discriminant', D)
if D > 0:
xz = (-bz + math.sqrt(D))/ 2*az
xy = (-bz - math.sqrt(D))/ 2*az
print('', xz, 'i', xy)
elif D == 0:
xz = -(bz/2*az)
print('', xz)
else:
print('korney net')
26 changes: 26 additions & 0 deletions lesson02/home_work/hw02_easy.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,39 @@

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

fruits = ["apple", "Banana", "kiwi", "arbuz"]
a = 0
b = len(fruits)
while a < b:
a1 = a + 1
print(a1, '{:>10}'.format(fruits[a]))
a += 1



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

a = [1,2,3,4,5,6,7,8,9]
b = [2,3,4,10]
try: b1 = map(a.remove, b)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

hard way :D

except ValueError:
pass
print(a)

# Задача-3:
# Дан произвольный список из целых чисел.
# Получите НОВЫЙ список из элементов исходного, выполнив следующие условия:
# если элемент кратен двум, то разделить его на 4, если не кратен, то умножить на два.

a = [1,2,3,4,5,6,8,7]
a1 = []
for i in a:
if i%2 == 0:
i = i/4
a1.append(i)
else:
i= i*2
a1.append(i)
print(a1)
11 changes: 11 additions & 0 deletions lesson02/home_work/hw02_normal.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,17 @@
# Подсказка:
# для получения случайного числа используйте функцию randint() модуля random

import random

how_much = int(input())
start = 0
middle = 0
list_result = []
while start < how_much:
middle = random.randint(-100,100)
list_result.append(middle)
start += 1
print(list_result)

# Задача-4: Дан список, заполненный произвольными целыми числами.
# Получите новый список, элементами которого будут:
Expand Down
27 changes: 25 additions & 2 deletions lesson03/home_work/hw03_easy.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,17 @@
# Для решения задачи не используйте встроенные функции и функции из модуля math.

def my_round(number, ndigits):
pass
number_temp1 = number*(10**ndigits)
number_temp_ostatok = number_temp1 % 1
#print(number_temp_ostatok)
if number_temp_ostatok > 0.4:
number_add = 1 - number_temp_ostatok
round_number = number + (number_add/(10**ndigits))
else:
number_add = number_temp_ostatok - 1
round_number = number - (number_add/(10**ndigits))
#print(round_number)
return round_number


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

def lucky_ticket(ticket_number):
pass
ticket_number_map = list(map(int, str(ticket_number)))
try:
ticket_part_1 = ticket_number_map[0] + ticket_number_map[1] + ticket_number_map[2]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Поговорим про exception'ы сегодня. Нельзя их так использовать

except IndexError:
pass
try:
ticket_part_2 = ticket_number_map[3]+ ticket_number_map[4]+ticket_number_map[5]
except IndexError:
pass
try:
result = ticket_part_1 == ticket_part_2
return (result)
except:
pass


print(lucky_ticket(123006))
Expand Down
25 changes: 23 additions & 2 deletions lesson03/home_work/hw03_normal.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,12 @@
# Первыми элементами ряда считать цифры 1 1

def fibonacci(n, m):
pass
a = 0
fibo = [1, 1]
while a< m:
fibo.append(fibo[0+a]+fibo[1+a])

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

хорошо. но когда делаешь a += 1 лучше исопльзовать цикл for, который это делает автоматом - для избежания ошибок и понятнее)

a+=1
return fibo[n:m]

# Задача-2:
# Напишите функцию, сортирующую принимаемый список по возрастанию.
Expand All @@ -12,14 +17,30 @@ def fibonacci(n, m):


def sort_to_max(origin_list):
pass
a = origin_list
for i in range(len(a),0,-1):
for n in range(1,i):
if a[n-1] > a[n]:
an = a[n-1]
a[n-1] = a[n]
a[n] = an
return a


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

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

def myFilter(listed, x):
listed_res = []

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

тут имелось в виду передать функцию filter(lambda x: x == 0, [1, 2, 3]) например

for i in listed:
if i == x:
listed_res.append(i)
else:
pass
return listed_res

# Задача-4:
# Даны четыре точки А1(х1, у1), А2(x2 ,у2), А3(x3 , у3), А4(х4, у4).
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]

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

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

first_list = ['orange','apple', 'ananas', 'pears', 'banana']
second_list = ['orange', 'banana','apple', 'ananas']
result_list = [i for i in first_list and second_list]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Это работает непраивльно

>>> a = [1, 2, 0]
>>> b = [1, 2, 3]
>>> [i for i in a and b]
[1, 2, 3]

print(result_list)

# Задание-3:
# Дан список, заполненный произвольными числами.
# Получить список из элементов исходного, удовлетворяющих следующим условиям:
# + Элемент кратен 3
# + Элемент положительный
# + Элемент не кратен 4

start_list = [1,2,3,4,5,6,1,2,3,4, -1]
result_list = [i for i in start_list if i > 0 and i%3 ==0 and i%4 !=0]
#print(result_list)
6 changes: 5 additions & 1 deletion lesson04/home_work/hw04_normal.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@
'qHFjvihuNGEEFsfnMXTfptvIOlhKhyYwxLnqOsBdGvnuyEZIheApQGOXWeXoLWiDQNJFa'\
'XiUWgsKQrDOeZoNlZNRvHnLgCmysUeKnVJXPFIzvdDyleXylnKBfLCjLHntltignbQoiQ'\
'zTYwZAiRwycdlHfyHNGmkNqSwXUrxGc'

import re
split_line = re.split(r'[A-Z]', line)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Тут у вас на выходе будет много пустых элементов. Разбирали на вебинаре, посмотри)

final_line = list(filter(None, split_line))
#print(split_line)
print(final_line)

# Задание-2:
# Вывести символы в верхнем регистре, слева от которых находятся
Expand Down
16 changes: 16 additions & 0 deletions lesson05/home_work/hw05_easy.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,25 @@
# Напишите скрипт, создающий директории dir_1 - dir_9 в папке,
# из которой запущен данный скрипт.
# И второй скрипт, удаляющий эти папки.
import os, time, shutil
#print(os.getcwd())
number = 1
number_1 = 1
while number < 10:
os.mkdir('./dir_'+str(number), mode=511, dir_fd=None)
number += 1
time.sleep(10)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

зачем тут sleep? директория не успевает создаться?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

успевает, вставлял sleep для теста (нагляднее), забыл закоментить при сдаче :)

while number_1 <10:
os.removedirs('./dir_'+str(number_1))
number_1 += 1

# Задача-2:
# Напишите скрипт, отображающий папки текущей директории.

print(list(os.listdir('./')))

# Задача-3:
# Напишите скрипт, создающий копию файла, из которого запущен данный скрипт.
shutil.copy(r'./lesson5.py', r'./lesson5_copy.py')
time.sleep(10)
os.remove(r'./lesson5_copy.py')
10 changes: 10 additions & 0 deletions lesson05/home_work/hw05_easy_func.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import os

def change_dir(curr_dir):
os.chdir(curr_dir)
def create_folder_func(curr_dir, number):
os.mkdir(str(number), mode=511, dir_fd=None)
def remove_folder_func(curr_dir, number_1):
os.removedirs(str(number_1))
def look_func(curr_dir):
print(list(os.listdir(curr_dir)))
39 changes: 39 additions & 0 deletions lesson05/home_work/hw05_normal.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,42 @@
# Для решения данной задачи используйте алгоритмы из задания easy,
# оформленные в виде соответствующих функций,
# и импортированные в данный файл из easy.py

# немного не успел доделать
import hw05_easy_func, os

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

прикольно) но лучше импортами в одну строчку не увлекаться для читабельности. Здесь к месту, хорошо)

curr_dir= os.getcwd()
curr_dir1= curr_dir
print('Вы сейчас находитесь в директории:', curr_dir)
def start_func(curr_dir):
print('1) Перейти в папку, 2) Посмотреть сождержимое текущей папки, 3) Удалить папку, 4) Создать папку, 5) Вернуться в домашнюю директорию, 6) Выход')
inputed = int(input(''))
#print(inputed)
if inputed == 1:
print(hw05_easy_func.look_func(curr_dir))
curr_dir = hw05_easy_func.change_dir(input())
print(curr_dir)
return curr_dir, start_func(curr_dir)
elif inputed == 2:
look = hw05_easy_func.look_func(curr_dir)
#print(look)
start_func(curr_dir)
elif inputed == 3:
print('Введите имя папки которую необходимо удалить')
folder_name = input('')
delete = hw05_easy_func.remove_folder_func(curr_dir, folder_name)
start_func(curr_dir)
elif inputed == 4:
print('Введите имя папки которую необходимо создать')
folder_name = input('')
create = hw05_easy_func.create_folder_func(curr_dir, folder_name)
start_func(curr_dir)
elif inputed == 5:
curr_dir = curr_dir1
start_func(curr_dir)
elif inputed == 6:
pass
else:
print('Введено некорректное число')
start_func(curr_dir)

start_func(curr_dir)
Loading