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
20 changes: 20 additions & 0 deletions 1_list_script_lesson2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Урок 2 задание 1
# Создаем список и заполняем его элементами различных типов данных
# Проверяем типы данных с помощью функции type()


my_list = ['One', 12, 'Two', 4.7, 'Application of ', {'Jan': 1, 'Feb': 2, 'Mar': 3, 'Apr': 4}]

print(my_list)

# нумеруем каждый элемент в списке. Возвращаем кортеж из пар: (индекс, элемент)
print("Нумеруем список",list(enumerate(my_list)))
# делаем срез
print(my_list[3:7])

# в цикле while проверяем тип каждого элемента списка

i = 0
while i < len(my_list):
print(type(my_list[i]))
i += 1

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

для обычного перебора элементов последовательности проще использовать цикл for in

42 changes: 42 additions & 0 deletions 1_variables.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Печать целого числа

i = 234.567

print(int(i))
print(float(i))
print(3 + 8)

# Стринговая переменная

str = "Hi, there"

print(str)

# Булевая переменная
bool = False
print(not(bool))

# ИЗМЕНЯЕМАЯ коллекция объектов
list = ["Hi", 44.6, 332, "there"]
print(list[2])

# Кортеж - НЕизменяемая коллекция объектов
tuple = ("Hi world", 3.14, 8889)

print(tuple[0])

# Словарь - неизменяемая коллекция объектов с доступом по ключу

dict = {"a1": 223, "a2": 45, "name": "anton", "age": 33}

print(dict["a2"], dict["age"])

# Использовние input - всегда вывод строковый

str = input("Как ваше имя: ")
print(str)

# Использовние input для целых чисел

s = input("Введите целое число: ")
print(int(s))
15 changes: 15 additions & 0 deletions 2_seconds.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Задание 2, ввод в секундах и вывод в часах минутах и секундах
# проверка на неправильный ввод символов НЕ выполняется
ss = float(input("Введите время в секундах используя точку для десятичных значений : "))
# вычисление часов
h = 0
h = ss//3600
# вычисление минут
m = 0
m = (ss%3600)//60
# вычисление секунд
s = 0
s = (ss%3600)%60

print(" Это равно - ",int(h),"hr:",int(m),"min:",int(s),"sec")

15 changes: 15 additions & 0 deletions 3_sum_of_numbers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#
# Вводим число через input , получаем строковую переменную, формируем строку s+s, затем s+s+s
# и складываем числа преобразую строки s ,s+s и s+s+s в целые числа
# выполняем проверку ввода через try - exception

try:
z = input('Введите целое число от 0 до 9 :')
zz = z + z
zzz = z + z + z

sum = int(z) + int(zz) + int(zzz)
print('Сумма равна :', sum)

except Exception:
print('Вы ввели неверный символ, введите целое число от 0 до 9')
22 changes: 22 additions & 0 deletions 4_largest_digit_in_the_number.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Через input получаем строковую переменную, преобразуем в лист и проверяем на наличие 9, 8 и т.д. до 1
# проверка ввода через try: - exception
try:

str_n = input('Введите целое положительное число : ')

max = 0
i = 0
# Цикл прохода по цифрам числа
while i < len(str_n):
y = 9
# Цикл определения каждой цифры и назначение максимальной
while y >= 0:
if y == int(str_n[i]) and max < y:
max = y
y -= 1
i += 1
print('Самая большая цифра числа :', max)


except Exception:
print('Ошибочный ввод данных !')
30 changes: 30 additions & 0 deletions 5_profit.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Запрашиваем через инпут выручку и издержки . Вычисляем прибыль/убыток.
# r - выручка, с - косты, p - прибыль, w - число работников
# проверка ввода через try -except

try:






r = int(input('Введите выручку компании : '))
print(r)
c = int(input('Введите издержки : '))
print(c)

# Вычисляем прибыль

p = r - c
print(p)
if p > 0:

print(f'Рентабельность равна {p / r * 100:.2f}%')
w = int(input('Введите количество работников в компании : '))
print(f'Прибыль на работника равна : {p / w:.2f}')
else:
print('Компания убыточна')

except Exception:
print('Ошибочный ввод данных !')
22 changes: 22 additions & 0 deletions 6_sportsman.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Спортсмен пробежал за 1-ый день а км. За второй - на 10 % больше , то есть 1.1 * а
# за 3-ий день на 10% больше то есть 1.1 * 1.1 * а = 1.1**2 * а и т.д .
# Используем эту формулу для вычисления км в определенный день


try:

a = int(input('Сколько километров пробежал спортсмен в первый день ? : '))
print(a)
b = int(input('Какой целевой результат спортсмена в км ? : '))
print(b)

# вычисляем когда сумма a + (1.1 * a) + (1.1 * 1) * 0.1 * a + ... >= b, где n число дней
i = 1
while a < b:
a *= 1.1
print(a, i)
i += 1
print("Нужно ", i, " дня/дней, чтобы достичь результата ", b, ' км')

except Exception:
print('Ошибочный ввод данных !')
34 changes: 34 additions & 0 deletions lesson2/2_lesson2_exchange_list_el.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Урок 2 задание 2
# Создаем список и заполняем его элементами различных типов данных
# Проверяем типы данных с помощью функции type()

# Задаем переменные, my_list - список, а - переменная для элементов списка

try:

my_list = []
a = 0
while True:
a = input('Введите элемент списка ( для окончания ввода нажмите Enter) : ')
if a == '': break
my_list.append(a) # добавляет элемент в конец списка


# Принтуем элементы списка для сравнения

print(my_list)

# Переставляем элементы списка местами : 1 и 2, 3 и 4 и т.д. Нечетный последний элемент остается на месте

i = 0
while i < len(my_list):
if len(my_list) - i == 1: break # для выхода из цикла с нечетным числом элементов списка
my_list[i], my_list[i+1] = my_list[i+1], my_list[i]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

увидела исправление =)

i += 2

# Принтуем элементы списка для сравнения

print(my_list)

except Exception:
print('Ошибочный ввод данных !')
26 changes: 26 additions & 0 deletions lesson2/3_lesson2_season.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#Задание 3 урок 2
#Пользователь вводит месяц в виде целого числа от 1 до 12.
# Сообщить, к какому времени года относится месяц (зима, весна, лето, осень). Напишите решения через list и dic

try:
season_list = [ 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
season_dict = {'1': 12, '2': 1, '3': 2, '4': 3, '5': 4, '6': 5, '7': 6, '8': 7, '9': 8, '10': 9, '11': 10, '12':11 }
a = 0
while True:
a = int(input('Ввеодите месяц года как целое число от 1 до 12 : '))
if a < 13 and a > 0: break

if season_list.index(a) < 3: print(f' Это зима !') # возвращает индекс первого вхождения указанного элемента списка
if season_list.index(a) > 8: print(f' Это осень !') # возвращает индекс первого вхождения указанного элемента списк
if season_list.index(a) > 2 and season_list.index(a) < 6: print(f' Это весна !')
if season_list.index(a) > 5 and season_list.index(a) < 9: print(f' Это лето !')

if season_dict[str(a)] < 3: print(f' Это зима ! ( словарь )')
if season_dict[str(a)] > 8: print(f' Это осень ! ( словарь )')
if season_dict[str(a)] > 2 and season_dict[str(a)] < 6: print(f' Это весна ! ( словарь )')
if season_dict[str(a)] > 5 and season_dict[str(a)] < 9: print(f' Это лето ! ( словарь )')

except Exception:
print('Ошибочный ввод данных !')


16 changes: 16 additions & 0 deletions lesson2/4_lesson2_words.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Урок 2 задание 4
# Пользователь вводит строку из нескольких слов, разделённых пробелами. Вывести каждое слово с новой строки.
# Строки нужно пронумеровать. Если слово длинное, выводить только первые 10 букв в слове.
# Проверка на ошибки try: exept Exeption:
#
try:
str = input('Введите строку из нескольких слов разделенных пробелом : ') # ввели строку с пробелами между слов

i = 0 # ниже цикл работает пока i меньше числа слов в строке
while i < len(str.split()): # str.split() преобразует строку в список если разделитель между словами строки пробел
# функция len() возвращает количество элементов в списке, то есть число слов в данном случае
print(i+1, str.split()[i][0:10]) # str.split()[i] - это элемент списка, а [0:10] -вывод только 10 символов

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

если срез берется с самого начала последовательности, то индекс 0 можно не писать [:10]

i += 1

except Exception:
print('Ошибочный ввод данных !')
32 changes: 32 additions & 0 deletions lesson2/5_lesson2_rating_.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Задание 5 урок 2
# 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]

try:

my_list = [3, 7, 9, 45] # Задаем набор натуральных чисел

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

изначально рейтинг - набор убывающих чисел

print(f'Набор натуральных чисел', end=': ''') # принтуем без перевода каретки
for el in my_list: print(el, end=',') # выводим данные списка без [ ]
print('.') # перевод каретки
while True: # бесконечный цикл ввода натурального числа пользователем
print('')
a = int(input('Введите натуральное число : ')) # ввод числа пользователем в тип целое
if a <= 0: # если число отрицательное
print('Встретилось отрицательное число :', a, '. Работа закончена !') # завершение работы с сообщением
break
my_list.append(a) # добавляем в конец списка введенное число
my_list.sort() # сортировка элементов списка

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Сортировкой, конечно, быстрее. Но а вдруг реальные соревнования. Есть список оценок и этому списку соответствует список фамилий. Как понять, куда вставить фамилию участника с новым рейтингом? Результирующий список верный. Но такое решение не совсем корректное.

my_list.reverse() # реверс для рейтинга нужен
print(f'Пользователь ввел число :', a, end='.') # принтуем введенное число
print(f' Результат', end=': ''')
for el in my_list: print(el, end=',') # принтуем в цикле элементы отсортированного списка

except Exception:
print('Ошибочный ввод данных !')
42 changes: 42 additions & 0 deletions lesson2/6_lesson2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# 6-е задание урок 2
# Реализовать структуру данных «Товары». Она должна представлять собой список кортежей. Каждый кортеж хранит
# информацию об отдельном товаре. В кортеже должно быть два элемента — номер товара и словарь с параметрами,
# то есть характеристиками товара: название, цена, количество, единица измерения. Структуру нужно сформировать
# программно, запросив все данные у пользователя.
# Пример готовой структуры:
# [
# (1, {“название”: “компьютер”, “цена”: 20000, “количество”: 5, “eд”: “шт.”}),
# (2, {“название”: “принтер”, “цена”: 6000, “количество”: 2, “eд”: “шт.”}),
# (3, {“название”: “сканер”, “цена”: 2000, “количество”: 7, “eд”: “шт.”})
# ]
# Нужно собрать аналитику о товарах. Реализовать словарь, в котором каждый ключ — характеристика товара, например,
# название. Тогда значение — список значений-характеристик, например, список названий товаров.
# Пример:
#
# {
# “название”: [“компьютер”, “принтер”, “сканер”],
# “цена”: [20000, 6000, 2000],
# “количество”: [5, 2, 7],
# “ед”: [“шт.”]
# }

try:

my_list = []
my_dict = ()
a = 0
while True:
check_point = input( 'Продолжать ввод y/n: ')
if check_point == 'y':
my_dict = dict({'название': input('Введите название товара: '), 'цена': input('Введите цену товара: '),
'количество': input('Введите количество товара: '), 'ед': input('Введите ед товара: ')})
my_list.append((len(my_list)+1, my_dict))
elif check_point == 'n':
break
else:
check_point = input('Продолжать ввод y/n: ')
print(my_list)


except Exception:
print('Ошибочный ввод данных !')
7 changes: 7 additions & 0 deletions new1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
name = input("Введите ваше имя: ")
age = int(input("Введите ваш возраст "))
print("Привет, %s!" % name)
print("Тебе уже %d лет" % age)