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
40 changes: 38 additions & 2 deletions lesson01/home_work/hw01_easy.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,27 @@

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

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

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

inputNumb = int(input("Введите число для обработки через цикл while: "))
numbCount = 0
while numbCount <= inputNumb:
print(numbCount)
numbCount += 1
print("Программа завершена!","\n","\n","\n")

inputNumb = int(input("Введите число для обработки через цикл for: "))
for numbCount in range(0, inputNumb+1):
print(numbCount, end=",")
# Подсмотрел в сети как вывести результат в строку , а не в столбец.
# Так визуально удобнее воспринимать

print("\n", "Программа вывода чисел завершила работу! Выпейте чаю )","\n")


# Задача-2: Исходные значения двух переменных запросить у пользователя.
Expand All @@ -19,6 +33,28 @@
# print("a = ", b, "b = ", a) - это неправильное решение!


alfa = input("Введите значение первой переменной:")
omega = input("Введите значение второй переменной:")

betta = alfa
alfa = omega
omega = betta
# как я понял, суть задания в том, чтобы понять,
# что значения переменных динамически меняются


print("\n", "Первая переменная на выходе: ", alfa)
print("Вторая переменная на выходе: ", omega, "\n")



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


years = int(input("Cколько тебе годков, сынко!?!?!"))
if years <= 18:
print("Извините, пользование данным ресурсом только с 18 лет")
else:
print("Доступ разрешен")
42 changes: 41 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.

print("Задача 1")
a = int(input("Введите число : "))
maxNumb = a%10
a = a//10
while a > 0:
if a%10 > maxNumb:
maxNumb = a%10
a = a//10
print("Наибольшее число, найденное через while :", maxNumb, "\n")


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

print("Задача 2")
a = int(input("Введите первое число : "))
b = int(input("Введите второе число : "))
a = a + b
b = a - b
a = a - b
print("\nТеперь первым числом будет :", a, ",")
print("а вторым числом будет :", b, "\n")



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


print("Задача 3")
import math
a = int(input("Введите переменную а : "))
b = int(input("Введите переменную b : "))
c = int(input("Введите переменную c : "))

Discr = int(((b**2)-4*a*c))
if Discr > 0:
xFirst = int((-b - (math.sqrt(Discr)) / (2*a)))
xSecond = int((-b + (math.sqrt(Discr)) / (2*a)))
print("\nПервый корень уравнения (X1) = ", xFirst)
print("\nВторой корень уравнения (X2) = ", xSecond)
elif Discr == 0:
x = (-b)/(2*a)
print("\n У уравнения единственный корень :", x)
else:
print("\nКвадратное уравнение имеет \n два комплексно сопряженных корня \n")
print("В контексте задачи считаем, \n что решения нет :-) \n")
35 changes: 35 additions & 0 deletions lesson02/home_work/hw02_easy.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,48 @@

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

print("\n Задача 1")
fruits = ['apple', 'banana', 'pineapple', 'marshmellow', 'peach', 'lime', 'kiwi' ]
i = 0
fruit_counter = 1
while len(fruits) > i:
print("{}){:>15}".format(fruit_counter, fruits[i]))
i += 1
fruit_counter +=1



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


print("\n\n\n Задача 2")
first_list = [ 111, 222, 333, 444, 555, 666]
second_list = [ 123, 222, 234, 345, 555, 567]
for numz in first_list:
if numz in second_list:
first_list.remove(numz)
print(first_list)



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


print("\n\n\n Задача 3")
random_list = [1,43,44,65,22,5,2,11,22]
new_list = [1,43,44,65,22,5,2,11,22]
i=0
while i < len(random_list):
if random_list[i] % 2 == 0:
new_list[i] = random_list[i]/4
else:
new_list[i] = random_list[i]*2
i += 1

print("Исходный список :", random_list)
print("Новый список :", new_list)
89 changes: 89 additions & 0 deletions lesson02/home_work/hw02_normal.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,110 @@
# если такой корень вообще можно извлечь
# Пример: Дано: [2, -5, 8, 9, -25, 25, 4] Результат: [3, 5, 2]

print("\n Задача-1 \n")
import math
start_list = [3, 9, 25, -342, -2, 45, 1, 0]
sqrt_list = []
int_sqrt_list = []
for i in start_list:
if i > 0:
sqrt_i = math.sqrt(i)
sqrt_list.append(sqrt_i)
for j in sqrt_list:
if (j).is_integer():
int_sqrt_list.append(int(j))

print("Исходный список ", start_list)
print("Итоговый список целых корней :",int_sqrt_list)

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

print("\n Задача-2 \n")
date = input("Введите дату в формате dd.mm.yyyy : ")

date_list = date.split('.')
#date_list = [ i.lstrip('0') for i in date_list ]
#интересный метод .strip для отброса нуля, но... я решил пойти другим путём :-)) - использовать словари
str_date_list = []
# print(date_list) #проверка создаваемого списка

day_voc = {
"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":"Тридцать первое"}

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

day = day_voc[date_list[0]]
month =month_voc[date_list[1]]
year = date_list[2]

print("Введенная дата:", day, month, year," года")

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


print("\n Задача-3 \n")
import random
import math

n = int(input("Введите количество элементов в списке: "))
int_random_list=[]
for i in range(n):
int_random_list.append(random.randint(-100, 100))
print(int_random_list)

# Задача-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("\n Задача-4 \n")
print(" Не успел :-( ")
28 changes: 0 additions & 28 deletions lesson03/home_work/hw03_easy.py

This file was deleted.

70 changes: 70 additions & 0 deletions lesson03/home_work/hw03_easy_Sashnikov.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@

#Работу выполнил: Сашников Никита Александрович


# Задание-1:
# Напишите функцию, округляющую полученное произвольное десятичное число
# до кол-ва знаков (кол-во знаков передается вторым аргументом).
# Округление должно происходить по математическим правилам (0.6 --> 1, 0.4 --> 0).
# Для решения задачи не используйте встроенные функции и функции из модуля math.

"""
#Тут ниже эпическая попытка решить задачу через строки и списки, расщепив исходники
#на символы, но я потерпел фиаско на счетчике, который переносит +1 в старший разряд.
# Решил подключить математику, т.к. стало очевидно, что это компактнее и бытрее Х-)

def my_round(number, ndigits):
b = str(number)
left_num = b[:(b.find("."))]
c = list(b[(b.find("."))+1:])
if int(c[ndigits]) >= 5:
c[ndigits-1] = str(int(c[ndigits-1])+1)
for i in c:
if i == "10":
c[i - 1] = str(int(c[i - 1]) + 1)
right_num = "".join(c[:ndigits])
str_result= left_num +"."+ right_num
float_result = float(str_result)
print(float_result)
print(my_round(2.99998, 4))
"""

def my_round(number, ndigits):
a = int(number * (10**(ndigits+1)))
#сохраняем исходник, но убираем точку
if a % 10 >= 5:
a = int(a*(10**(-1))+1)
# тут условие округления. Если число >=5, то в старший разряд +1
a = float(a*(10**(-ndigits)))
# заканчиваем выступление возвращением плавающей точки.
# заметил, чо можно жестко зафиксировать к-во знаков после запятой, если там все нули
#, но не нашел простого метода сделать это... кхм )
return a

print(my_round(2.1234567, 5))
print(my_round(2.1999967, 4))
print(my_round(2.9999967, 3))

# Задание-2:
# Дан шестизначный номер билета. Определить, является ли билет счастливым.
# Решение реализовать в виде функции.
# Билет считается счастливым, если сумма его первых и последних цифр равны.
# !!!P.S.: функция не должна НИЧЕГО print'ить

print("\n Задание 2 \n")
def lucky_ticket(ticket_number):
ticket_list = list(str(ticket_number)) # Делаем список, чтобы по индексам операции делать
left_part_summ = sum(int(i) for i in ticket_list[0:3])
# Cумма левой части
right_part_summ = sum(int(i) for i in ticket_list[3:6])
# Cумма правой части
if left_part_summ == right_part_summ:
return True
else:
return False
# Раз уж нельзя ничего принтить функцией, то пусть Булева логика сделает своё дело :-)

print(lucky_ticket(123333))
print(lucky_ticket(123213))
print(lucky_ticket(436751))
print(lucky_ticket(446751))
Loading