X Tutup
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: 22 additions & 18 deletions lesson01/home_work/hw01_easy.py
Original file line number Diff line number Diff line change
@@ -1,24 +1,28 @@
# Задача-1: поработайте с переменными, создайте несколько,
# выведите на экран, запросите от пользователя и сохраните в переменную, выведите на экран

__author__ = 'Ваши Ф.И.О.'

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

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


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

# Задача-2: Запросите от пользователя число, сохраните в переменную,
# прибавьте к числу 2 и выведите результат на экран.
# Если возникла ошибка, прочитайте ее, вспомните урок и постарайтесь устранить ошибку.
number = input('Введите число: ')
print(int(number) + 2)

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


age = int(input('Введите Ваш возраст: '))
if age >= 18:
print('Доступ разрешен')
else:
print('Извините, пользование данным ресурсом только с 18 лет')
36 changes: 24 additions & 12 deletions lesson01/home_work/hw01_hard.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,28 @@

__author__ = 'Ваши Ф.И.О.'
__author__ = 'Пантелеев А.А.'

# Задание-1:
# Ваня набрал несколько операций в интерпретаторе и получал результаты:
# Код: a == a**2
# Результат: True
# Код: a == a*2
# Результат: True
# Код: a > 999999
# Результат: True
# Создайте программу медицинская анкета, где вы запросите у пользователя такие данные, как имя, фамилию, возраст, и вес.
# И выведите результат согласно которому пациент в хорошем состоянии, если ему до 30 лет и вес от 50 и до 120 кг,
# Пациенту требуется начать вести правильный образ жизни, если ему более 30 и вес меньше 50 или больше 120 кг
# Пациенту требуется врачебный осмотр, если ему более 40 и вес менее 50 или больше 120 кг.
# Все остальные варианты вы можете обработать на ваш вкус и полет фантазии =)
# Формула не отражает реальной действительности и здесь используется только ради примера.

# Вопрос: Чему была равна переменная a,
# если точно известно, что её значение не изменялось?
# Пример: Вася Пупкин, 29 год, вес 90 - хорошее состояние
# Пример: Вася Пупкин, 31 год, вес 121 - следует заняться собой
# Пример: Вася Пупкин, 31 год, вес 49 - следует заняться собой
# Пример: Вася Пупкин, 41 год, вес 121 - следует обратится к врачу!
# Пример: Вася Пупкин, 41 год, вес 49 - следует обратится к врачу!

# Подсказка: это значение точно есть ;)
first_name = input('First name: ')
last_name = input('Last name: ')
age = int(input('Your age: '))
weight = int(input('Your weight: '))

if 50 <= weight <= 120:
print('%s %s, %d год, вес %d - хорошее состояние' % (first_name, last_name, age, weight))
else:
if age > 40:
print('%s %s, %d год, вес %d - ледует обратится к врачу!' % (first_name, last_name, age, weight))
else:
print('%s %s, %d год, вес %d - следует заняться собой' % (first_name, last_name, age, weight))
35 changes: 19 additions & 16 deletions lesson01/home_work/hw01_normal.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,30 @@

__author__ = 'Ваши Ф.И.О.'
__author__ = 'Пантелеев А.А.'

# Задача-1: Дано произвольное целое число, вывести самую большую цифру этого числа.
# Например, дается x = 58375.
# Нужно вывести максимальную цифру в данном числе, т.е. 8.
# Подразумевается, что мы не знаем это число заранее.
# Число приходит в виде целого беззнакового.
# Подсказки:
# * постарайтесь решить задачу с применением арифметики и цикла while;
# * при желании и понимании решите задачу с применением цикла for.
# Задача: используя цикл запрашивайте у пользователя число пока оно не станет больше 0, но меньше 10.
# После того, как пользователь введет корректное число, возведите его в степерь 2 и выведите на экран.
# Например, пользователь вводит число 123, вы сообщаете ему, что число не верное,
# и сообщаете об диапазоне допустимых. И просите ввести заного.
# Допустим пользователь ввел 2, оно подходит, возводим в степень 2, и выводим 4

number = int(input('Введите число: '))
while True:
if 0 < number < 10:
break
number = int(input('Введите число больше 0, но меньше 10: '))
print(number ** 2)

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

a = int(input('Введите число A: '))
b = int(input('Введите число B: '))
a = a + b
b = a - b
a = a - b
print('A = ', a)
print('B = ', b)

# Задача-3: Напишите программу, вычисляющую корни квадратного уравнения вида
# ax² + bx + c = 0.
# Коэффициенты уравнения вводятся пользователем.
# Для вычисления квадратного корня воспользуйтесь функцией sqrt() модуля math:
# import math
# math.sqrt(4) - вычисляет корень числа 4
22 changes: 22 additions & 0 deletions lesson02/home_work/hw02_easy.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,37 @@
# 3. киви
# 4. арбуз

i = 0
fruits = ["яблоко", "банан", "киви", "арбуз"]
for fruit in fruits:
i = i + 1
print('{}. {:>6}'.format(i, fruit))

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


# Задача-2:
# Даны два произвольные списка.
# Удалите из первого списка элементы, присутствующие во втором списке.
list1 = ['4', 'dfsdf', 'kh43', 'dfsdf']
list2 = ['456', 'dfsdf']

for item in list2:
if item in list1:
list1.remove(item)
print(list1)


# Задача-3:
# Дан произвольный список из целых чисел.
# Получите НОВЫЙ список из элементов исходного, выполнив следующие условия:
# если элемент кратен двум, то разделить его на 4, если не кратен, то умножить на два.
list1 = (23, 555555, 80, 23, 5, 9, 345)
list2 = []
for item in list1:
if item % 2 == 0:
list2.append(item/4)
else:
list2.append(item*2)

print(list2)
46 changes: 46 additions & 0 deletions lesson02/home_work/hw02_normal.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,59 @@
# если такой корень вообще можно извлечь
# Пример: Дано: [2, -5, 8, 9, -25, 25, 4] Результат: [3, 5, 2]

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


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


from datetime import date
months = ('января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября',
'декабря')
days = ('первое', 'второе', 'третье', 'четвертое', 'пятое', 'шестое', 'седьмое', 'восьмое', 'девятое', 'десятое',
'одиннадцатое', 'двенадцатое', 'тринадцатое', 'четырнадцатое', 'пятьнадцатое', 'шестьнадцатое', 'семьнадцатое',
'восемьнадцатое', 'девятнадцатое')

dt = date(2018, 1, 9)

print(dt.strftime("%d %B %Y"))
month = months[dt.month - 1]
if dt.day == 31:
day = 'тридцать первое'
elif dt.day == 30:
day = 'тридцатое'
elif dt.day > 20:
day = 'двадцать {}'.format(days[dt.day - 21])
elif dt.day == 20:
day = 'двадцатое'
elif dt.day > 10:
day = days[dt.day - 1]
else:
day = days[dt.day - 1]

print('{} {} {} года'.format(day, month, dt.year))


# Задача-3: Напишите алгоритм, заполняющий список произвольными целыми числами
# в диапазоне от -100 до 100. В списке должно быть n - элементов.
# Подсказка:
# для получения случайного числа используйте функцию randint() модуля random
from random import randint
list1 = []
n = int(input('Введите количество (n): '))
for i in range(0, n):
list1.append(randint(-100, 100))
print(list1)


# Задача-4: Дан список, заполненный произвольными целыми числами.
Expand All @@ -23,3 +66,6 @@
# например, 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]
list2 = list(set(list1))
print(list2)

20 changes: 18 additions & 2 deletions lesson03/home_work/hw03_easy.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,13 @@
# Округление должно происходить по математическим правилам (0.6 --> 1, 0.4 --> 0).
# Для решения задачи не используйте встроенные функции и функции из модуля math.


def my_round(number, ndigits):
pass
nd = 10 ** ndigits
num = number * nd
if num % nd >= 5:
num += 1
return int(num) / nd


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

def lucky_ticket(ticket_number):
pass
str_ticket_number = str(ticket_number)
half_sum_left = 0
half_sum_right = 0
half_len = len(str_ticket_number) // 2
if half_len * 2 == len(str_ticket_number):
for number in str_ticket_number[:half_len]:
half_sum_left = half_sum_left + int(number)
for number in str_ticket_number[half_len:]:
half_sum_right = half_sum_right + int(number)
if half_sum_left == half_sum_right:
return True
return False


print(lucky_ticket(123006))
Expand Down
33 changes: 31 additions & 2 deletions lesson03/home_work/hw03_normal.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,13 @@
# Напишите функцию, возвращающую ряд Фибоначчи с n-элемента до m-элемента.
# Первыми элементами ряда считать цифры 1 1


def fibonacci(n, m):
pass
temp = [0, 1]
for i in range(1, m):
temp.append(temp[-2] + temp[-1])
return temp[n:]


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


def sort_to_max(origin_list):
pass
new_list = list()
for number in origin_list:
i = 0
while i < len(new_list) and number > new_list[i]:
i += 1
new_list.insert(i, number)
return new_list


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

Expand All @@ -21,7 +33,24 @@ def sort_to_max(origin_list):
# Разумеется, внутри нельзя использовать саму функцию filter.


def filter_function(x):
if x > 0:
return x
return None


def my_filter(origin_list):
return_list = []
for x in origin_list:
if filter_function(x):
return_list.append(x)
return return_list


my_filter([2, 34, 0, -12, 34, -3, 0, 89])

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


35 changes: 35 additions & 0 deletions lesson07/home_work/loto.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,38 @@
модуль random: http://docs.python.org/3/library/random.html

"""
import random


def create_set_of_numbers():
numbers = list(range(1, 91))
random.shuffle(numbers)
return numbers


class Card:
lines = []

def __init__(self):
numbers = random.sample(create_set_of_numbers(), 15)
self.lines.append(numbers[0:5])
self.lines.append(numbers[5:10])
self.lines.append(numbers[10:])
for line in self.lines:
line.sort()
while len(line) < 9:
line.insert(random.randint(0, 9), None)

def check_number(self, num):
li = 0
for line in self.lines:
i = line.index(num)
if i >= 0:
return li, i
li = li + 1
return None


if __name__ == '__main__':
card = Card
print(card.lines)
28 changes: 28 additions & 0 deletions special/easy.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Постарайтесь использовать то, что мы прошли на уроке при решении этого ДЗ,
# вспомните про zip(), map(), lambda, посмотрите где лучше с ними, а где они излишни!

# Задание - 1
# Создайте функцию, принимающую на вход Имя, возраст и город проживания человека
# Функция должна возвращать строку вида "Василий, 21 год(а), проживает в городе Москва"


def info(name, age, city):
return '{}, {} год(а), проживает в городе {}'.format(name, age, city)


# Задание - 2
# Создайте функцию, принимающую на вход 3 числа, и возвращающую наибольшее из них


def maxof(x, y, z):
return max(x, y, z)


# Задание - 3
# Создайте функцию, принимающую неограниченное количество строковых аргументов,
# верните самую длинную строку из полученных аргументов


def get_max_string(*args):
return max(list(args), key=len)

Loading
X Tutup