Skip to content
Open
219 changes: 219 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,219 @@
# Created by .ignore support plugin (hsz.mobi)
### Python template
# 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/
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
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .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

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
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/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf

# Generated files
.idea/**/contentModel.xml

# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml

# Gradle
.idea/**/gradle.xml
.idea/**/libraries

# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr

# CMake
cmake-build-*/

# Mongo Explorer plugin
.idea/**/mongoSettings.xml

# File-based project format
*.iws

# IntelliJ
out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Cursive Clojure plugin
.idea/replstate.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

# Editor-based Rest Client
.idea/httpRequests

# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

Будет удалено .idea/inspectionProfiles/
Будет удалено .idea/misc.xml
Будет удалено .idea/modules.xml
Будет удалено .idea/python_13_10_2020.iml
Будет удалено .idea/vcs.xml
8 changes: 8 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Empty file removed homeworks/les01/__init__.py
Empty file.
17 changes: 0 additions & 17 deletions homeworks/les01/task01.py

This file was deleted.

8 changes: 0 additions & 8 deletions homeworks/les01/task02.py

This file was deleted.

10 changes: 10 additions & 0 deletions homeworks/les02/task01.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
"""
1. Создать список и заполнить его элементами различных типов данных.
Реализовать скрипт проверки типа данных каждого элемента.
Использовать функцию type() для проверки типа.
Элементы списка можно не запрашивать у пользователя, а указать явно, в программе.
"""

for _ in [None, ..., 1, True, 1.1, complex(5, 6), 'Hello', (1, 2, 3, ...), b'abc', [1, 2, 3], bytearray(b'abc'),
{'a', 'b', 'c'}, frozenset({'a', 'b', 'c'}), {1: 'a', 2: 'b', 3: 'c'}]:
print('Тип данных :', type(_)) # !
15 changes: 15 additions & 0 deletions homeworks/les02/task02.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
"""
2. Для списка реализовать обмен значений соседних элементов,
т.е. Значениями обмениваются элементы с индексами 0 и 1, 2 и 3 и т.д.
При нечетном количестве элементов последний сохранить на своем месте.
Для заполнения списка элементов необходимо использовать функцию input().

"""

elements = input('Введите элементы через пробел : ').split()

for i in range(0, len(elements), 2):
if i < len(elements) - 1:
elements[i], elements[i + 1] = elements[i + 1], elements[i] # !

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

"""

seasons_list = ['зима'] * 2 + ['весна'] * 3 + ['лето'] * 3 + ['осень'] * 3 + ['зима'] # !
seasons_dict = dict([i + 1, seasons_list[i]] for i in range(0, len(seasons_list))) # ! !

month = int(input("Введите месяц : "))

print('Решение по списку:', seasons_list[month - 1]) # индекс начинается с 0
print('Решение по словарю:', seasons_dict[month])
11 changes: 11 additions & 0 deletions homeworks/les02/task04.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
"""
4. Пользователь вводит строку из нескольких слов, разделённых пробелами.
Вывести каждое слово с новой строки. Строки необходимо пронумеровать.
Если в слово длинное, выводить только первые 10 букв в слове.

"""

text = input("Ведите предложение : ")
words = text.split()
for idx, word in enumerate(words, 1):
print(f'{idx}. {word[:10]}')
40 changes: 40 additions & 0 deletions homeworks/les02/task05.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
"""
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].
"""

rating = [7, 5, 3, 3, 2]

rate = int(input("Введите новый рейтинг : "))
# rating.append(rate)
# rating.sort(reverse=True)

# обработка краевых вариантов: больше большего и меньше меньшего
if rate >= rating[0]:
rating.insert(0, rate)
elif rate <= rating[len(rating) - 1]:
rating.insert(len(rating), rate)
else:
# !
# используется бинарный поиск
left = -1
right = len(rating)
while right > left + 1:
middle = (left + right) // 2
if rating[middle] == rate:
break;
if rating[middle] < rate:
right = middle
else:
left = middle
# вставка на ближайшее место
rating.insert(middle + 1, rate)

print("Результат : ", rating)
Loading