From dab509d28154e2887aee6f484389e3506b98cc4a Mon Sep 17 00:00:00 2001 From: BESTTEST4YOU <81219764+BESTTEST4YOU@users.noreply.github.com> Date: Tue, 22 Jun 2021 22:46:42 +0300 Subject: [PATCH 1/4] Update and rename README.md to hw3 --- README.md | 1 - hw3 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+), 1 deletion(-) delete mode 100644 README.md create mode 100644 hw3 diff --git a/README.md b/README.md deleted file mode 100644 index fdc793e..0000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -python diff --git a/hw3 b/hw3 new file mode 100644 index 0000000..d45c203 --- /dev/null +++ b/hw3 @@ -0,0 +1,86 @@ +#1. Реализовать функцию, принимающую два числа (позиционные аргументы) и +# выполняющую их деление. Числа запрашивать у пользователя, предусмотреть +# обработку ситуации деления на ноль. + +while True: + def myfunc(arg1, arg2): + try: + return arg1 / arg2, arg1 + except ZeroDivisionError: + return print('Division on 0') + print(myfunc((int(input('Enter first number: '))), (int(input('Enter second number: '))))) + +#2. Реализовать функцию, принимающую несколько параметров, +# описывающих данные пользователя: имя, фамилия, +# год рождения, город проживания, email, телефон. +# Функция должна принимать параметры как именованные аргументы. +# Реализовать вывод данных о пользователе одной строкой. + +# Robert Paulson 1980 NewYork rb@yahoo.com 989898 + +print('Who are You?') +def myfunc(**kwargs): + return list(kwargs.values()) +print(', '.join(myfunc(name=input('Name: '), + name2=input('Surname: '), + year=input('Year of birth: '), + town=input('Town: '), + email=input('Email: '), + tel=input('Tel number: ')))) + +# 3. Реализовать функцию my_func(), которая принимает три позиционных аргумента, +# и возвращает сумму наибольших двух аргументов. + +def myfunc(a, b, c): + n = [a, b, c] + n.remove(min(a, b, c)) + return sum(n) +print(myfunc(1, 2, 3)) + +# 4. Программа принимает действительное положительное число x и целое отрицательное число y. +# Необходимо выполнить возведение числа x в степень y. Задание необходимо реализовать в виде функции my_func(x, y). +# При решении задания необходимо обойтись без встроенной функции возведения числа в степень. +# Подсказка: попробуйте решить задачу двумя способами. Первый — возведение в степень с помощью оператора **. +# Второй — более сложная реализация без оператора **, предусматривающая использование цикла. + +def myfunc(x, y): + return 1 / x ** abs(y) +print(myfunc(3, -3)) + +def myfunc2(x, y): + for i in range(abs(y - 1)): + x *= x + return 1 / x +print(myfunc2(3, -3)) + +# 5. Программа запрашивает у пользователя строку чисел, разделенных пробелом. +# При нажатии Enter должна выводиться сумма чисел. +# Пользователь может продолжить ввод чисел, +# разделенных пробелом и снова нажать Enter. Сумма вновь введенных чисел будет добавляться +# к уже подсчитанной сумме. Но если вместо числа вводится специальный символ, выполнение программы завершается. +# Если специальный символ введен после нескольких чисел, то вначале нужно добавить сумму этих чисел к полученной +# ранее сумме и после этого завершить программу. + +def myfunc(*args): + sum = 0 + while True: + n = list(input('Input: ').split()) + if n == '#': + break + else: + for n in args: + sum +=n + +# 6. Реализовать функцию int_func(), принимающую слово из маленьких латинских +# букв и возвращающую его же, но с прописной первой буквой. Например, print(int_func(‘text’)) -> Text. + +# Продолжить работу над заданием. В программу должна попадать строка из слов, разделенных пробелом. +# Каждое слово состоит из латинских букв в нижнем регистре. Сделать вывод исходной строки, +# но каждое слово должно начинаться с заглавной буквы. +# Необходимо использовать написанную ранее функцию int_func(). + +def int_func(): + w = input("Input: ") + w = w.title() + return w +print(int_func()) From ab5980bc3e39aba1869f7907db7de93c30b36f8e Mon Sep 17 00:00:00 2001 From: BESTTEST4YOU <81219764+BESTTEST4YOU@users.noreply.github.com> Date: Thu, 24 Jun 2021 01:19:33 +0300 Subject: [PATCH 2/4] Create hw2 --- hw2 | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 hw2 diff --git a/hw2 b/hw2 new file mode 100644 index 0000000..b9ba7ea --- /dev/null +++ b/hw2 @@ -0,0 +1,94 @@ +#1. Создать список и заполнить его элементами различных типов данных. +# Реализовать скрипт проверки типа данных каждого элемента. +# Использовать функцию type() для проверки типа. +# Элементы списка можно не запрашивать у пользователя, а указать явно, в программе + +li = [55, + 's', + [1,2], + {1: 'one'}, + (), + bool(), + bytes(), + bytearray(), + (None), + ] +for i in li: + print(type(i)) + +# 2. Для списка реализовать обмен значений соседних элементов, т.е. +# Значениями обмениваются элементы с индексами 0 и 1, 2 и 3 и т.д. +# При нечетном количестве элементов последний сохранить на своем месте. +# Для заполнения списка элементов необходимо использовать функцию input(). + +# копируем цифры ниже: +# 1 2 3 4 5 6 7 8 9 + +lst = input("Введите элементы списка через пробел: ").split() +for i in range(len(lst) // 2): + lst[2*i], lst[2*i + 1] = lst[2*i + 1], lst[2*i] +for index, item in enumerate(lst, start=1): + print('index: ', index, ' Element: ', item) + +# 3. Пользователь вводит месяц в виде целого числа от 1 до 12. +# Сообщить к какому времени года относится месяц (зима, весна, лето, осень). +# Напишите решения через list и через dict. + +while True: + seasons = { + 'Зима': [1, 2, 12], + 'Весна': [3, 4, 5], + 'Лето': [6, 7, 8], + 'Осень': [9, 10, 11] + } + m = int(input('Введите месяц: ')) + if m <= 0 or m > 12: + print("error") + for key in seasons.keys(): + if m in seasons[key]: + print(key.title()) + break + + # 4. Пользователь вводит строку из нескольких слов, разделённых пробелами. +# Вывести каждое слово с новой строки. Строки необходимо пронумеровать. +# Если в слово длинное, выводить только первые 10 букв в слове. +# слова для проверки: +# 1234567891011 qwe + +new = [] +while True: + lst = ['Абракадабра', 'qwe'] + # lst = input("Для выхода stop ").split() + if lst == 'stop': + break + # for i in lst: + # print(len(lst)) + # for i in range(len(lst()): + # if i > 10: + # new.extend(i) + #не понимаю как цикл for связать со срезом [0:11] + for index, item in enumerate(new, start=1): + print(index, item.title()) + + # 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]. +while True: + lst = [7, 5, 3, 3, 2] + n = int(input('exit - 99: \n')) + if n == 99: + break + for i in lst: + if i <= n: + lst.insert(i, n) + # # lst = lst.count(i) + # if n >= i: + # lst.insert(i-1, n) + # # if i <= n: + # # lst.insert(i - 1, n) + print('Updated list:', lst) From 0301cd0ad9b4e6e1eebc3bc8bb389d55c387c56b Mon Sep 17 00:00:00 2001 From: BESTTEST4YOU <81219764+BESTTEST4YOU@users.noreply.github.com> Date: Mon, 28 Jun 2021 22:37:58 +0300 Subject: [PATCH 3/4] Rename hw2 to hw2.py --- hw2 => hw2.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename hw2 => hw2.py (100%) diff --git a/hw2 b/hw2.py similarity index 100% rename from hw2 rename to hw2.py From 10bbd95d56958760f27d1da8be0dd2be315cc47c Mon Sep 17 00:00:00 2001 From: BESTTEST4YOU <81219764+BESTTEST4YOU@users.noreply.github.com> Date: Mon, 28 Jun 2021 23:34:01 +0300 Subject: [PATCH 4/4] Delete hw3 --- hw3 | 86 ------------------------------------------------------------- 1 file changed, 86 deletions(-) delete mode 100644 hw3 diff --git a/hw3 b/hw3 deleted file mode 100644 index d45c203..0000000 --- a/hw3 +++ /dev/null @@ -1,86 +0,0 @@ -#1. Реализовать функцию, принимающую два числа (позиционные аргументы) и -# выполняющую их деление. Числа запрашивать у пользователя, предусмотреть -# обработку ситуации деления на ноль. - -while True: - def myfunc(arg1, arg2): - try: - return arg1 / arg2, arg1 - except ZeroDivisionError: - return print('Division on 0') - print(myfunc((int(input('Enter first number: '))), (int(input('Enter second number: '))))) - -#2. Реализовать функцию, принимающую несколько параметров, -# описывающих данные пользователя: имя, фамилия, -# год рождения, город проживания, email, телефон. -# Функция должна принимать параметры как именованные аргументы. -# Реализовать вывод данных о пользователе одной строкой. - -# Robert Paulson 1980 NewYork rb@yahoo.com 989898 - -print('Who are You?') -def myfunc(**kwargs): - return list(kwargs.values()) -print(', '.join(myfunc(name=input('Name: '), - name2=input('Surname: '), - year=input('Year of birth: '), - town=input('Town: '), - email=input('Email: '), - tel=input('Tel number: ')))) - -# 3. Реализовать функцию my_func(), которая принимает три позиционных аргумента, -# и возвращает сумму наибольших двух аргументов. - -def myfunc(a, b, c): - n = [a, b, c] - n.remove(min(a, b, c)) - return sum(n) -print(myfunc(1, 2, 3)) - -# 4. Программа принимает действительное положительное число x и целое отрицательное число y. -# Необходимо выполнить возведение числа x в степень y. Задание необходимо реализовать в виде функции my_func(x, y). -# При решении задания необходимо обойтись без встроенной функции возведения числа в степень. -# Подсказка: попробуйте решить задачу двумя способами. Первый — возведение в степень с помощью оператора **. -# Второй — более сложная реализация без оператора **, предусматривающая использование цикла. - -def myfunc(x, y): - return 1 / x ** abs(y) -print(myfunc(3, -3)) - -def myfunc2(x, y): - for i in range(abs(y - 1)): - x *= x - return 1 / x -print(myfunc2(3, -3)) - -# 5. Программа запрашивает у пользователя строку чисел, разделенных пробелом. -# При нажатии Enter должна выводиться сумма чисел. -# Пользователь может продолжить ввод чисел, -# разделенных пробелом и снова нажать Enter. Сумма вновь введенных чисел будет добавляться -# к уже подсчитанной сумме. Но если вместо числа вводится специальный символ, выполнение программы завершается. -# Если специальный символ введен после нескольких чисел, то вначале нужно добавить сумму этих чисел к полученной -# ранее сумме и после этого завершить программу. - -def myfunc(*args): - sum = 0 - while True: - n = list(input('Input: ').split()) - if n == '#': - break - else: - for n in args: - sum +=n - -# 6. Реализовать функцию int_func(), принимающую слово из маленьких латинских -# букв и возвращающую его же, но с прописной первой буквой. Например, print(int_func(‘text’)) -> Text. - -# Продолжить работу над заданием. В программу должна попадать строка из слов, разделенных пробелом. -# Каждое слово состоит из латинских букв в нижнем регистре. Сделать вывод исходной строки, -# но каждое слово должно начинаться с заглавной буквы. -# Необходимо использовать написанную ранее функцию int_func(). - -def int_func(): - w = input("Input: ") - w = w.title() - return w -print(int_func())