Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
8fe06fd
Задание 2.1
iProzza Feb 10, 2020
0ef8b41
Задание 2.2
iProzza Feb 10, 2020
3cbcde4
Задание 2.3
iProzza Feb 10, 2020
f720415
Задание 2.4
iProzza Feb 10, 2020
076bc59
Задание 2.5
iProzza Feb 10, 2020
ee8d73d
Задание 2.6
iProzza Feb 10, 2020
48640f6
задание 3.1
iProzza Feb 13, 2020
afcee37
задание 3.2
iProzza Feb 13, 2020
ce32107
задание 3.3
iProzza Feb 13, 2020
625a8cb
задание 3.4
iProzza Feb 13, 2020
2c2f826
задание 3.5
iProzza Feb 13, 2020
448b760
задание 3.6
iProzza Feb 13, 2020
4a08b2b
задание 4.1
iProzza Feb 17, 2020
6e9351d
задание 4.2
iProzza Feb 17, 2020
30c32a5
задание 4.3
iProzza Feb 17, 2020
7c75260
задание 4.4
iProzza Feb 17, 2020
c4590ff
задание 4.5
iProzza Feb 17, 2020
8c075e7
задание 4.6
iProzza Feb 17, 2020
3255c61
задание 4.7
iProzza Feb 17, 2020
6d117e9
Задание 5.1
iProzza Feb 23, 2020
8342825
Задание 5.2
iProzza Feb 23, 2020
d38d8c0
Задание 5.3
iProzza Feb 23, 2020
f9064f9
Задание 5.4
iProzza Feb 23, 2020
014d4ba
Задание 5.5
iProzza Feb 23, 2020
928d35c
Задание 5.6
iProzza Feb 23, 2020
c0a6cf1
Задание 5.7
iProzza Feb 23, 2020
53948c0
Задание 6.1
iProzza Feb 24, 2020
3c10f8d
Задание 6.2
iProzza Feb 24, 2020
c5c1786
Задание 6.3
iProzza Feb 24, 2020
ebe1787
Задание 6.4
iProzza Feb 24, 2020
8f81e5b
Задание 6.5
iProzza Feb 24, 2020
104311b
Задание 7.1
iProzza Mar 1, 2020
15152b8
Задание 7.2
iProzza Mar 1, 2020
0fb3031
Задание 7.3
iProzza Mar 1, 2020
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
8 changes: 8 additions & 0 deletions lesson02/task_1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# 1. Создать список и заполнить его элементами различных типов данных.
# Реализовать скрипт проверки типа данных каждого элемента. Использовать функцию type() для проверки типа.
# Элементы списка можно не запрашивать у пользователя, а указать явно, в программе.


my_list = [1, 1.2, 'soap', False, [1, 2, 3]]
for types in my_list:
print(type(types))
18 changes: 18 additions & 0 deletions lesson02/task_2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# 2. Для списка реализовать обмен значений соседних элементов, т.е.
# Значениями обмениваются элементы с индексами 0 и 1, 2 и 3 и т.д.
# При нечетном количестве элементов последний сохранить на своем месте.
# Для заполнения списка элементов необходимо использовать функцию input().

#a = input('Введите элементы списка: ')
my_list = [1, 2, 3, 4, 5]
#for i in my_list:
#print(my_list[2::-1])
print(my_list[:2:])
#print(my_list.index(5))

#print(my_list.reverse())
#my_list.reverse()
#print(my_list)

# не хватило времени вникнуть в срезы которые меняют порядок - [::-1]

39 changes: 39 additions & 0 deletions lesson02/task_3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# 3. Пользователь вводит месяц в виде целого числа от 1 до 12.
# Сообщить к какому времени года относится месяц (зима, весна, лето, осень).
# Напишите решения через list и через dict.

mon = int(input('Введите номер месяца: '))
year = {'зима': (1, 2, 12), 'весна': (3, 4, 5), 'лето': (6, 7, 8), 'осень': (9, 10, 11)}
for key in year.keys():
if mon in year[key]:
print(key)
break

# со словарем легко

month = int(input('Введите номер месяца: '))
#winter = [1, 2, 12]
#spring = [3, 4, 5]
#summer = [6, 7, 8]
#autumm = [9, 10, 11]
#year = ['winter', 'spring', 'summer', 'autumm']
#year = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
#print(year[0])
for season in year:
if month == 1 or 2 or 12:
season = 'winter'
print(season)
break
elif month == 3 or 4 or 5:
season = 'spring'
print(season)
#break
#elif month == 6 or 7 or 8:
#break
#elif month == 9 or 10 or 11:
#season = 'осень'
#print(season)
#break


# со списком, не понял как input прикрепить к списку и через цикл вывести
18 changes: 18 additions & 0 deletions lesson02/task_4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# 4. Пользователь вводит строку из нескольких слов, разделённых пробелами.
# # Вывести каждое слово с новой строки.
# # Строки необходимо пронумеровать.
# # Если в слово длинное, выводить только первые 10 букв в слове.


words = input('Введите несколько слов через пробел: ').split()
#a = [words]
#for a in words:

print(len(words))
#for word in words:
#print(word)
#a = '\n'
#word = '\n'words


# стопнулся на том, как разбить строку на слова
9 changes: 9 additions & 0 deletions lesson02/task_5.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# 5. Реализовать структуру «Рейтинг», представляющую собой не возрастающий набор натуральных чисел.
# У пользователя необходимо запрашивать новый элемент рейтинга.
# Если в рейтинге существуют элементы с одинаковыми значениями,
# то новый элемент с тем же значением должен разместиться после них.
# Подсказка. Например, набор натуральных чисел: 7, 5, 3, 3, 2.
# Пользователь ввел число 3. Результат: 7, 5, 3, 3, 3, 2.
# Пользователь ввел число 8. Результат: 8, 7, 5, 3, 3, 2.
# Пользователь ввел число 1. Результат: 7, 5, 3, 3, 2, 1.
# Набор натуральных чисел можно задать непосредственно в коде, например, my_list = [7, 5, 3, 3, 2].
21 changes: 21 additions & 0 deletions lesson02/task_6.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# 6. *Реализовать структуру данных «Товары». Она должна представлять собой список кортежей.
# Каждый кортеж хранит информацию об отдельном товаре.
# В кортеже должно быть два элемента — номер товара и словарь с параметрами
# (характеристиками товара: название, цена, количество, единица измерения).
# Структуру нужно сформировать программно, т.е. запрашивать все данные у пользователя.
# Пример готовой структуры:
# [
# (1, {“название”: “компьютер”, “цена”: 20000, “количество”: 5, “eд”: “шт.”}),
# (2, {“название”: “принтер”, “цена”: 6000, “количество”: 2, “eд”: “шт.”}),
# (3, {“название”: “сканер”, “цена”: 2000, “количество”: 7, “eд”: “шт.”})
# ]
# Необходимо собрать аналитику о товарах. Реализовать словарь,
# в котором каждый ключ — характеристика товара, например название,
# а значение — список значений-характеристик, например список названий товаров.
# Пример:
# {
# “название”: [“компьютер”, “принтер”, “сканер”],
# “цена”: [20000, 6000, 2000],
# “количество”: [5, 2, 7],
# “ед”: [“шт.”]
# }
13 changes: 13 additions & 0 deletions lesson03/task_1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# 1. Реализовать функцию, принимающую два числа (позиционные аргументы) и выполняющую их деление.
# Числа запрашивать у пользователя, предусмотреть обработку ситуации деления на ноль.

def s_div():
try:
first_n = float(input('Введите первое число: '))
sec_n = float(input('Введите второе число: '))
gen_n = first_n / sec_n
except ZeroDivisionError:
print('Деление на ноль')
return
return gen_n
print(s_div())
8 changes: 8 additions & 0 deletions lesson03/task_2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# 2. Реализовать функцию, принимающую несколько параметров, описывающих данные пользователя:
# имя, фамилия, год рождения, город проживания, email, телефон.
# Функция должна принимать параметры как именованные аргументы.
# Реализовать вывод данных о пользователе одной строкой.

def g_unit(name, surname, birth, city, email, phone):
print(name, surname, birth, city, email, phone)
g_unit(name='', surname='', birth='', city='', email='', phone='')
8 changes: 8 additions & 0 deletions lesson03/task_3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#3. Реализовать функцию my_func(), которая принимает три позиционных аргумента,
# и возвращает сумму наибольших двух аргументов.

def my_func(a, b, c):
num = [a, b, c]
num.remove(min(a, b, c, key=int))
return sum(num)
print(my_func(90, 8, 4))
31 changes: 31 additions & 0 deletions lesson03/task_4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# 4. Программа принимает действительное положительное число x и целое отрицательное число y.
# Необходимо выполнить возведение числа x в степень y. Задание необходимо реализовать в виде функции my_func(x, y).
# При решении задания необходимо обойтись без встроенной функции возведения числа в степень.
# Подсказка: попробуйте решить задачу двумя способами.
# Первый — возведение в степень с помощью оператора **.
# Второй — более сложная реализация без оператора **, предусматривающая использование цикла.


def my_func(x, y):
return x ** abs(y)

print(my_func(3, -3))


#def my_func(x, y):
#for i in range(abs(y-1)):
#b = i * x
#return b




#print(my_func(2, -2))








26 changes: 26 additions & 0 deletions lesson03/task_5.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# 5. Программа запрашивает у пользователя строку чисел, разделенных пробелом.
# # При нажатии Enter должна выводиться сумма чисел.
# Пользователь может продолжить ввод чисел, разделенных пробелом и снова нажать Enter.
# Сумма вновь введенных чисел будет добавляться к уже подсчитанной сумме.
# Но если вместо числа вводится специальный символ, выполнение программы завершается.
# Если специальный символ введен после нескольких чисел,
# то вначале нужно добавить сумму этих чисел к полученной ранее сумме и после этого завершить программу.


line = list(input('Введите числа: '))
num = int(line)
result = sum(line)
print(result)

#list(map(int, "42 0".split()))

#aa = input('введите числа')
#dd = aa.split(" : ")
#print(dd)







7 changes: 7 additions & 0 deletions lesson03/task_6.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# 6. Реализовать функцию int_func(), принимающую слово из маленьких латинских букв и возвращающую его же,
# но с прописной первой буквой. Например, print(int_func(‘text’)) -> Text.
# Продолжить работу над заданием.
# В программу должна попадать строка из слов, разделенных пробелом.
# Каждое слово состоит из латинских букв в нижнем регистре.
# Сделать вывод исходной строки, но каждое слово должно начинаться с заглавной буквы.
# Необходимо использовать написанную ранее функцию int_func().
6 changes: 6 additions & 0 deletions lesson04/task_1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# 1. Реализовать скрипт, в котором должна быть предусмотрена функция расчета заработной платы сотрудника.
# В расчете необходимо использовать формулу:
# (выработка в часах * ставка в час) + премия.
# Для выполнения расчета для конкретных значений необходимо запускать скрипт с параметрами.


10 changes: 10 additions & 0 deletions lesson04/task_2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# 2. Представлен список чисел.
# Необходимо вывести элементы исходного списка, значения которых больше предыдущего элемента.
#Подсказка: элементы, удовлетворяющие условию, оформить в виде списка.
# Для формирования списка использовать генератор.


a = [0, 1, 2, 4, 5, 6, 5]
b = [el for el in a if el > el - 1]
print(b)

5 changes: 5 additions & 0 deletions lesson04/task_3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# 3. Для чисел в пределах от 20 до 240 найти числа, кратные 20 или 21. Необходимо решить задание в одну строку.
# Подсказка: использовать функцию range() и генератор.

my_list = [el for el in range(20, 240) if el % 20 == 0 or el % 21 == 0]
print(my_list)
10 changes: 10 additions & 0 deletions lesson04/task_4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# 4. Представлен список чисел.
# Определить элементы списка, не имеющие повторений.
# Сформировать итоговый массив чисел, соответствующих требованию.
# Элементы вывести в порядке их следования в исходном списке.
# Для выполнения задания обязательно использовать генератор.


my_list = [1, 5, 3, 3, 4, 4, 7, 2, 9]
new_list = [el for el in set(my_list)]
print(new_list)
10 changes: 10 additions & 0 deletions lesson04/task_5.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# 5. Реализовать формирование списка, используя функцию range() и возможности генератора.
# В список должны войти четные числа от 100 до 1000 (включая границы).
# Необходимо получить результат вычисления произведения всех элементов списка.
# Подсказка: использовать функцию reduce().

from functools import reduce

my_list = [el for el in range(100, 1001) if el % 2 == 0]
new_list = reduce(lambda x, y: x * y, my_list)
print(new_list)
28 changes: 28 additions & 0 deletions lesson04/task_6.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# 6. Реализовать два небольших скрипта:начиная с указанного,
# а) бесконечный итератор, генерирующий целые числа,
# б) бесконечный итератор, повторяющий элементы некоторого списка, определенного заранее.
# Подсказка: использовать функцию count() и cycle() модуля itertools.


from itertools import count, cycle

for z in count(-100): # 1
print(z)
if z > 99:
break


phone = ['xiaomi', 'iphone', 'samsumg', 'Huawei', 'Sony'] # 2
iter = cycle(phone)
print(next(iter))
print(next(iter))
print(next(iter))
print(next(iter))
print(next(iter))







27 changes: 27 additions & 0 deletions lesson04/task_7.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# 7. Реализовать генератор с помощью функции с ключевым словом yield, создающим очередное значение.
# При вызове функции должен создаваться объект-генератор.
# Функция должна вызываться следующим образом: for el in fibo_gen().
# Функция отвечает за получение факториала числа, а в цикле необходимо выводить только первые 15 чисел.
# Подсказка: факториал числа n — произведение чисел от 1 до n. Например, факториал четырёх 4! = 1 * 2 * 3 * 4 = 24.



def fibo_gen(n):
fac = 1
for el in range(1, n + 1):
fac *= el
yield fac

factorial = input(input('factorial yuo would like to know? '))
for i in fibo_gen(n):
print(i)










9 changes: 9 additions & 0 deletions lesson05/task_1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# 1. Создать программно файл в текстовом формате, записать в него построчно данные,
# вводимые пользователем.
# Об окончании ввода данных свидетельствует пустая строка.

with open('my_file.txt', 'w') as f:
while True:
line = input('Введите строку: ')
break
f.write(line + '\n')
8 changes: 8 additions & 0 deletions lesson05/task_2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# 2. Создать текстовый файл (не программно), сохранить в нем несколько строк,
# выполнить подсчет количества строк, количества слов в каждой строке.

with open('test.txt') as f:
lines = f.readlines()
print('Колличество строк:', len(lines))
for num_line, line in enumerate(lines, start=1):
print('{} строка содержит ‚ - {} слов'.format(num_line, len(line.split())))
15 changes: 15 additions & 0 deletions lesson05/task_3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# 3. Создать текстовый файл (не программно), построчно записать фамилии сотрудников и величину их окладов.
# Определить, кто из сотрудников имеет оклад менее 20 тыс., вывести фамилии этих сотрудников.
# Выполнить подсчет средней величины дохода сотрудников.



with open('salaries.txt') as f:
salaries = []
lines = f.readlines()
for line in lines:
name, salary = line.split(' - ')
salaries.append(int(salary))
if int(salary) < 20000:
print(line, end='')
print('\nСредняя зарплата:', sum(salaries) / len(salaries))
24 changes: 24 additions & 0 deletions lesson05/task_4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# 4. Создать (не программно) текстовый файл со следующим содержимым:
# One — 1
# Two — 2
# Three — 3
# Four — 4
# Необходимо написать программу, открывающую файл на чтение и считывающую построчно данные.
# При этом английские числительные должны заменяться на русские.
# Новый блок строк должен записываться в новый текстовый файл.


with open('eng.txt') as f:
lines = f.readlines()

with open('rus.txt', 'w') as f:
for line in lines:
if '1' in line:
line = line.replace('One', 'Один')
elif '2' in line:
line = line.replace('Two', 'Два')
elif '3' in line:
line = line.replace('Three', 'Три')
elif '4' in line:
line = line.replace('Four', 'Четыре')
f.write(line)
Loading