Skip to content

Решения урок 7,8. Можно просто посмотреть тут: https://github.com/despairr/Python_lessons_basic #883

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

Open
wants to merge 12 commits into
base: master
Choose a base branch
from
104 changes: 1 addition & 103 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,106 +4,4 @@
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg

# 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/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover

# Translations
*.mo
*.pot

# Django stuff:
*.log

# Sphinx documentation
docs/_build/

# PyBuilder
target/
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio

*.iml

## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:

# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries

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

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

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

## File-based project format:
*.ipr
*.iws

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

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

/*.zip
.DS_Store
17 changes: 15 additions & 2 deletions lesson01/home_work/hw01_easy.py
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
#!/usr/bin/env python3

__author__ = 'Ваши Ф.И.О.'
__author__ = 'Студенников Валерий Юрьевич'

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

# код пишем тут...
n = int( input() )

while n != 0:
print( n % 10 )
n //= 10

# Задача-2: Исходные значения двух переменных запросить у пользователя.
# Поменять значения переменных местами. Вывести новые значения на экран.
Expand All @@ -18,7 +22,16 @@
# Не нужно решать задачу так:
# print("a = ", b, "b = ", a) - это неправильное решение!

a, b = input(), input()
a, b = b, a
print("a =", a, "; b =", b)

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

age = int( input() )
if age >= 18:
print('Доступ разрешен')
else:
print('Вход в pornhub только с 18!')
7 changes: 6 additions & 1 deletion lesson01/home_work/hw01_hard.py
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#!/usr/bin/env python3

__author__ = 'Ваши Ф.И.О.'
__author__ = 'Студенников Валерий Юрьевич'

# Задание-1:
# Ваня набрал несколько операций в интерпретаторе и получал результаты:
Expand All @@ -14,3 +15,7 @@
# если точно известно, что её значение не изменялось?

# Подсказка: это значение точно есть ;)

import math

print( math.inf )
27 changes: 26 additions & 1 deletion lesson01/home_work/hw01_normal.py
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#!/usr/bin/env python3

__author__ = 'Ваши Ф.И.О.'
__author__ = 'Студенников Валерий Юрьевич'

# Задача-1: Дано произвольное целое число, вывести самую большую цифру этого числа.
# Например, дается x = 58375.
Expand All @@ -10,6 +11,8 @@
# * постарайтесь решить задачу с применением арифметики и цикла while;
# * при желании и понимании решите задачу с применением цикла for.

n = input()
print( max( map( int, list(n) ) ) )

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

a, b = input(), input()
a, b = b, a
print("a =", a, "; b =", b)

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

import math
print('Enter A, B, C:')
a, b, c = map( int, [input(), input(), input()] )

d = b ** 2 - 4 * a * c

if a == 0:
x = -c / b
print( "one solution:", x )
elif d < 0:
print( "no real solution" )
elif d == 0:
x = (- b + math.sqrt( b ** 2 - 4 * a * c)) / (2 * a)
print( "one solution:", x )
else:
x1 = ( -b + math.sqrt( (b ** 2) - (4 * (a * c) ) ) ) / (2 * a)
x2 = ( -b - math.sqrt( (b ** 2) - (4 * (a * c) ) ) ) / (2 * a)
print( "two solutions:", x1, "or", x2 )
17 changes: 17 additions & 0 deletions lesson01/home_work/task01.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/usr/bin/env python3

# Поработайте с переменными, создайте несколько, выведите на экран,
# запросите у пользователя несколько чисел и строк и сохраните в переменные,
# выведите на экран.

a = 'see'
b = 5
c = None

print( a, b, c )

print( 'Enter 3 variables:' )

d, e, f = input(), input(), input()

print( d, e, f )
16 changes: 16 additions & 0 deletions lesson01/home_work/task02.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/usr/bin/env python3

# Пользователь вводит время в секундах. Переведите время в часы,
# минуты и секунды и выведите в формате чч:мм:сс.
# Используйте форматирование строк.

print( 'enter seconds:' )
seconds = int( input() )

minutes = seconds // 60
seconds = seconds % 60

hours = minutes // 60
minutes = minutes % 60

print( "%02d:%02d:%02d" % (hours, minutes, seconds) )
10 changes: 10 additions & 0 deletions lesson01/home_work/task03.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env python3

# Узнайте у пользователя число n. Найдите сумму чисел n + nn + nnn.
# Например, пользователь ввёл число 3. Считаем 3 + 33 + 333 = 369.

n = input()

sum = int( n ) + int( n + n ) + int( n + n + n )

print( sum )
20 changes: 20 additions & 0 deletions lesson01/home_work/task04.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/usr/bin/env python3

# Пользователь вводит целое положительное число. Найдите самую большую цифру в числе.
# Для решения используйте цикл while и арифметические операции.

n = input()

# var 1
print( max( map( int, list(n) ) ) )

# var 2
n = int(n)
m = 0
while n != 0:
d = n % 10
if d > m:
m = d
n //= 10

print( m )
21 changes: 21 additions & 0 deletions lesson01/home_work/task05.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/usr/bin/env python3

# Запросите у пользователя значения выручки и издержек фирмы.
# Определите, с каким финансовым результатом работает фирма
# (прибыль — выручка больше издержек, или убыток — издержки больше выручки).
# Выведите соответствующее сообщение.
# Если фирма отработала с прибылью, вычислите рентабельность выручки
# (соотношение прибыли к выручке).
# Далее запросите численность сотрудников фирмы и определите прибыль фирмы
# в расчете на одного сотрудника.

revenue = float( input('Enter revenue: '))
expenses = float( input('Enter expenses: '))
profit = revenue - expenses
employees = float( input('Enter count of employees: '))

print( 'Profit: %.2f' % profit )

profit_per_employee = profit / employees

print( 'Profit per employee: %.2f' % profit_per_employee )
19 changes: 19 additions & 0 deletions lesson01/home_work/task06.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/usr/bin/env python3

# Спортсмен занимается ежедневными пробежками.
# В первый день его результат составил a километров.
# Каждый день спортсмен увеличивал результат на 10 % относительно предыдущего.
# Требуется определить номер дня, на который общий результат спортсмена
# составить не менее b километров.
# Программа должна принимать значения параметров a и b и
# выводить одно натуральное число — номер дня.

a = float( input('a: ') )
b = float( input('b: ') )

n = 1
while a < b:
a *= 1.1
n += 1

print( "n = %d" % n )
14 changes: 14 additions & 0 deletions lesson02/home_work/from_manual-01.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/usr/bin/env python3

# 1.
# Создать список и заполнить его элементами различных типов данных.
# Реализовать скрипт проверки типа данных каждого элемента.
# Использовать функцию type() для проверки типа.
# Элементы списка можно не запрашивать у пользователя, а указать явно, в программе.

print('=== 1 ===')

lst1 = [ 1, 'ной', set('ковчег'), [2, 3], dict(), { 'my' : 'dickt' } ]

for item in lst1:
print( item, type(item) )
17 changes: 17 additions & 0 deletions lesson02/home_work/from_manual-02.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/usr/bin/env python3

# 2.
# Для списка реализовать обмен значений соседних элементов, т.е.
# Значениями обмениваются элементы с индексами 0 и 1, 2 и 3 и т.д.
# При нечетном количестве элементов последний сохранить на своем месте.
# Для заполнения списка элементов необходимо использовать функцию input().

print('=== 2 ===')

#lst2 = [1, 2, 3, 4, 5, 6, 7]
lst2 = input('enter words divided by space: ').split()

for i in range(len(lst2) // 2):
lst2[ i * 2 ], lst2[ i * 2 + 1 ] = lst2[ i * 2 + 1 ], lst2[ i * 2 ]

print( lst2 )
30 changes: 30 additions & 0 deletions lesson02/home_work/from_manual-03.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/usr/bin/env python3

# 3.
# Пользователь вводит месяц в виде целого числа от 1 до 12.
# Сообщить к какому времени года относится месяц (зима, весна, лето, осень).
# Напишите решения через list и через dict.

print('=== 3 ===')

#month_num = 12
month_num = int(input('enter month number: '))
month_num -= 1

months_list = ['зима', 'зима', 'весна', 'весна', 'весна', 'лето', 'лето', 'лето', 'осень', 'осень', 'осень', 'зима']
months_dict = {
11 : 'зима',
0 : 'зима',
1 : 'зима',
2 : 'весна',
3 : 'весна',
4 : 'весна',
5 : 'лето',
6 : 'лето',
7 : 'лето',
8 : 'осень',
9 : 'осень',
10 : 'осень',
}

print( months_list[ month_num ], months_dict[ month_num ] )
Loading