-
Notifications
You must be signed in to change notification settings - Fork 0
Lesson2 #2
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
base: main
Are you sure you want to change the base?
Lesson2 #2
Changes from all commits
0d02f53
5b92bf0
ee0d86e
bcc7552
b13e4d7
c9b3ebb
6dd2171
ab92dc2
eab3945
4263718
92657ee
efa931d
f94df5e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| 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 | ||
| 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)) |
| 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") | ||
|
|
| 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') |
| 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('Ошибочный ввод данных !') |
| 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('Ошибочный ввод данных !') |
| 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('Ошибочный ввод данных !') |
| 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] | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. увидела исправление =) |
||
| i += 2 | ||
|
|
||
| # Принтуем элементы списка для сравнения | ||
|
|
||
| print(my_list) | ||
|
|
||
| except Exception: | ||
| print('Ошибочный ввод данных !') | ||
| 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('Ошибочный ввод данных !') | ||
|
|
||
|
|
| 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 символов | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. если срез берется с самого начала последовательности, то индекс 0 можно не писать |
||
| i += 1 | ||
|
|
||
| except Exception: | ||
| print('Ошибочный ввод данных !') | ||
| 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] # Задаем набор натуральных чисел | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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() # сортировка элементов списка | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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('Ошибочный ввод данных !') | ||
| 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('Ошибочный ввод данных !') |
| 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) | ||
|
|
||
|
|
||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
для обычного перебора элементов последовательности проще использовать цикл
for in