Skip to content
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

Pr #146

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
Open

Pr #146

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
125 changes: 4 additions & 121 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,123 +1,6 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
settings.py
*.log
local_settings.py
db.sqlite3

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# celery beat schedule file
celerybeat-schedule

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
.vscode
.idea
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/
__pycache__/
40 changes: 21 additions & 19 deletions 1_if1.py
Original file line number Diff line number Diff line change
@@ -1,25 +1,27 @@
"""

Домашнее задание №1

Условный оператор: Возраст
def main():
try:
age: str = input('Please, enter your age: ').strip()
age_processed: int = int(age)
except ValueError:
return print('Please, enter a number. Next time...')
else:
have_to_do(age_processed)

* Попросить пользователя ввести возраст при помощи input и положить
результат в переменную
* Написать функцию, которая по возрасту определит, чем должен заниматься пользователь:
учиться в детском саду, школе, ВУЗе или работать
* Вызвать функцию, передав ей возраст пользователя и положить результат
работы функции в переменную
* Вывести содержимое переменной на экран

"""
def have_to_do(age):
if age > 0:
print(f'So, your age is {age}.')
if age in range(1, 7):
print("Why aren't you in kindergarten?")
elif age in range(7, 18):
print("Why aren't you in school?")
elif age in range(18, 24):
print("Why aren't you in college?")
else:
print("Why aren't you at work?")
else:
print('Enter the correct age. Next time...')

def main():
"""
Эта функция вызывается автоматически при запуске скрипта в консоли
В ней надо заменить pass на ваш код
"""
pass

if __name__ == "__main__":
main()
48 changes: 27 additions & 21 deletions 2_if2.py
Original file line number Diff line number Diff line change
@@ -1,26 +1,32 @@
"""
def main(a=input('Please, enter first value: '),
b=input('Please, enter second value: ')):

Домашнее задание №1
types: str = f'a={a}(type={type(a).__name__}), b={b}(type={type(b).__name__}))'

Условный оператор: Сравнение строк
if not isinstance(a, str) or not isinstance(b, str):
print('0', types, sep=', ')
else:
if a == b:
print('1', types, sep=', ')
else:
if len(a) > len(b):
print('2', types, sep=', ')
elif b == 'learn':
print('3', types, sep=', ')
else:
print('No such condition', types, sep=', ')

* Написать функцию, которая принимает на вход две строки
* Проверить, является ли то, что передано функции, строками.
Если нет - вернуть 0
* Если строки одинаковые, вернуть 1
* Если строки разные и первая длиннее, вернуть 2
* Если строки разные и вторая строка 'learn', возвращает 3
* Вызвать функцию несколько раз, передавая ей разные праметры
и выводя на экран результаты

"""

def main():
"""
Эта функция вызывается автоматически при запуске скрипта в консоли
В ней надо заменить pass на ваш код
"""
pass

if __name__ == "__main__":
main()
tests: list = [
['123', '123'], # str: equal length
['1234', '123'], # str: length a > length b
['123', '1234'], # str: length a < length b
['123', 'learn'], # str: b == 'learn'
[123, 321], # int: 2 integers
['123', 123], # int: 1 integer
[1.2, 55.5], # float: 2 floats
]

main() # manual input
[main(i[0], i[1]) for i in tests] # tests
48 changes: 25 additions & 23 deletions 3_for.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,29 @@
"""

Домашнее задание №1

Цикл for: Продажи товаров

* Дан список словарей с данными по колличеству проданных телефонов
[
{'product': 'iPhone 12', 'items_sold': [363, 500, 224, 358, 480, 476, 470, 216, 270, 388, 312, 186]},
phones_db: list[dict] = [
{'product': 'iPhone 12', 'items_sold': [363, 500, 224, 358, 480, 476, 470, 216, 270, 388, 312, 186]},
{'product': 'Xiaomi Mi11', 'items_sold': [317, 267, 290, 431, 211, 354, 276, 526, 141, 453, 510, 316]},
{'product': 'Samsung Galaxy 21', 'items_sold': [343, 390, 238, 437, 214, 494, 441, 518, 212, 288, 272, 247]},
]
* Посчитать и вывести суммарное количество продаж для каждого товара
* Посчитать и вывести среднее количество продаж для каждого товара
* Посчитать и вывести суммарное количество продаж всех товаров
* Посчитать и вывести среднее количество продаж всех товаров
"""

def main():
"""
Эта функция вызывается автоматически при запуске скрипта в консоли
В ней надо заменить pass на ваш код
"""
pass



def main(phones_db: list[dict]) -> str:

sales_pcs: int = 0
total_avg_sales: int = 0

for phone in phones_db:

total_sales_by_brand: int = sum(phone['items_sold'])
avg_sales: int = total_sales_by_brand // len(phone['items_sold'])
sales_pcs += total_sales_by_brand
total_avg_sales += len(phone['items_sold'])

print(f"{phone['product']} sold: {total_sales_by_brand} pcs.")
print(f"{phone['product']} average month sales: {avg_sales} pcs.")

res1: str = f'Total sales: {sales_pcs} pcs.'
res2: str = f'Total average sales: {sales_pcs // total_avg_sales} pcs.'
return print(res1, res2, sep='\n')


if __name__ == "__main__":
main()
main(phones_db)
30 changes: 16 additions & 14 deletions 4_while1.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
"""
def hello_user():

Домашнее задание №1
print('Привет! Введите сообщение: ')

Цикл while: hello_user
while True:

* Напишите функцию hello_user(), которая с помощью функции input() спрашивает
пользователя “Как дела?”, пока он не ответит “Хорошо”

"""
inp: str = input().strip().lower()

if inp == 'пока':
get_answer()
break
elif inp != 'хорошо':
print('Как дела?')
else:
print('Рад за Вас! (но не от всей души, конечно)')


def get_answer():
print('Пока!')

def hello_user():
"""
Замените pass на ваш код
"""
pass


if __name__ == "__main__":
if __name__ == '__main__':
hello_user()
33 changes: 14 additions & 19 deletions 5_while2.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,22 @@
"""
questions_and_answers: dict = {
'как дела?': 'Хорошо!',
'что делаешь?': 'Программирую',
'как погода?': 'Теплеет',
'что почитать?': 'Документацию по Python',
}

Домашнее задание №1

Цикл while: ask_user со словарём
def ask_user(answers_dict: dict) -> str:

* Создайте словарь типа "вопрос": "ответ", например:
{"Как дела": "Хорошо!", "Что делаешь?": "Программирую"} и так далее
* Напишите функцию ask_user() которая с помощью функции input()
просит пользователя ввести вопрос, а затем, если вопрос есть
в словаре, программа давала ему соотвествующий ответ. Например:
while True:

Пользователь: Что делаешь?
Программа: Программирую

"""
inp: str = input('Привет! Введите ваш вопрос: ').strip().lower()

if inp in questions_and_answers.keys():
print(questions_and_answers.get(inp))
else:
print('Не понял вопроса...')

questions_and_answers = {}

def ask_user(answers_dict):
"""
Замените pass на ваш код
"""
pass

if __name__ == "__main__":
ask_user(questions_and_answers)
Loading