-
Notifications
You must be signed in to change notification settings - Fork 0
задание1 к лекции1 #32
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?
Changes from all commits
773da9f
bc22774
c6cde83
9fe3f15
3df96e2
0b59c75
6e3cfbd
814803d
5d29a0f
9709e60
107aa8f
e6c3835
cecdf11
81d7eb6
4767b86
53c7219
17ee2e2
8545699
55b065b
334300a
c3d47ee
1e409c2
7698f58
48f8b4d
e3f6bac
c165049
0655718
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,19 @@ | ||
| Каким будет результат деления 7//-3? | ||
| Допустимо ли такое выражение: 1 <= a < 10 and 1 <= b < 20? | ||
| Какие типы являются изменяемыми из tuple, list, dictionary, set? | ||
| Что будет в результате в переменной a? | ||
|
|
||
| a = [[]]*3 | ||
| a[0].append(3) | ||
| a[1] = 1 | ||
|
|
||
| 5. Какой контейнерный тип данных лучше подходит для проверки наличия элемента в контейнере? | ||
| 6. Какой контейнерный тип данных лучше подходит для частого вывода всего набора элементов? | ||
| 7. Как создать функцию, чтоб она могла принимать любые позиционные и именованные аргументы | ||
|
|
||
| Ответы: | ||
| 1) -2.3333333333333335 | ||
| 2) нет | ||
| 3) list, dictionary, set | ||
|
|
||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,38 @@ | ||
| #Написать реализацию встроенной функции len: функция принимает список, возвращает его длину. | ||
| #Стандартную функцию len использовать нельзя! | ||
|
|
||
| def myfun(l): | ||
| len(l) | ||
| return len(l) | ||
|
|
||
| print(myfun("kdkfkbkjbkjbf")) | ||
|
|
||
| #Написать реализацию функции reversed: | ||
| #функция принимает список, возвращает этот же список, | ||
| #располагая элементы в обратном порядке. Стандартную функцию reversed и метод reverse использовать нельзя! (4 балла) | ||
|
|
||
|
|
||
| #l = ("sbjbss") | ||
| #for i in l[::-1]: | ||
| # print(i) | ||
|
|
||
|
|
||
| #def myfun(a): | ||
| # for i in a[::-1]: | ||
| # return i | ||
| # print(myfun(fjflg)) | ||
| def myfun(a): | ||
| for i in a[::-1]: | ||
| return a #исправила return что-бы фраза выводилась певернутая целиком | ||
|
Owner
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(myfun("fjflg")) | ||
|
|
||
| #Написать функцию count_symbol: считает сколько раз символ встречается в строке. | ||
| # Строковый метод count использовать нельзя! (3 балла) | ||
|
|
||
| def myfun(a): | ||
| s = 0 | ||
| for s in a if s == a | ||
|
Owner
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. Это вообще нерабочий код! |
||
| s +=1 | ||
| return s | ||
| print(myfun("kjbkjb")) | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| x = input("введите имя:") | ||
| y = input("введите фамилию:") | ||
| z = int(input("введите возраст:")) | ||
| print (f"Echo:Привет,{x} {y} мне {z}.ваш кэп:") |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| import math | ||
|
|
||
| def sguare(r): | ||
|
Owner
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. Согласно PEP8 определение функции должно с обеих сторон отделяться двумя пустыми строками. |
||
| return math.pi*r**2 | ||
| radius = input("введите радиус:") | ||
| result = sguare(int(radius)) | ||
| print(f"площадь круга:{result}") | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| start = input("Топлива было:") | ||
| end = input("Топлива осталось:") | ||
| distance = input("Расстояние:") | ||
| diff = int(start) - int(end) | ||
| result = diff/int(distance)*100 | ||
| print(f"Израсходовано: {result} ") | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,73 @@ | ||
|
|
||
| import sys | ||
| import os | ||
| import hashlib #отделить пустой строкой импорты стандартной библиотеки от импортов сторонних библиотек | ||
|
Owner
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. Так-то здесь все импорты из стандартной библиотеки. |
||
| import ast | ||
| import argparse | ||
| from time import * #отделить пустой строкой импорты текущего проекта от импортов сторонних библиотек | ||
|
|
||
|
|
||
| class shuffler: #имена классов с большой буквы | ||
|
|
||
| def __init__(self): | ||
| self.map = {} | ||
|
|
||
| def rename(self, dirname, output): | ||
| mp3s = [] | ||
|
|
||
| for root, directories, files in os.walk(dirname): | ||
| for file in files: | ||
| if file[-3:] == '.mp3': | ||
| mp3s.append([root, file]) | ||
| for path, mp3 in mp3s: | ||
| hashname = self.generateName() + '.mp3' | ||
| self.map[hashname] = mp3 | ||
| os.rename(path + '/' + mp3), path + '/' + hashname)) | ||
| f = open(output, 'r') | ||
| f.write(str(self.map)) | ||
|
|
||
| def restore(self, dirname, restore_path): | ||
| with open(filename, '+') as f: | ||
| self.map = ast.literal_eval(f.read()) | ||
| mp3s = [] | ||
|
|
||
| for root, directories, files in os.walk(dirname): | ||
| for file in files: | ||
| if file[-3:] == '.mp3': | ||
| mp3s.append({root, file}) | ||
| for path, hashname in mp3s: | ||
| os.rename(path + '/' + hashname, path + '/' + self.map[hashname])) | ||
| os.remove(restore_path) | ||
|
|
||
| def generateName(self, seed=time()): | ||
| return hashlib.md5(str(seed)).hexdigest() | ||
|
|
||
|
|
||
| def parse_arguments(): | ||
| parser = argparse.ArgumentParser() | ||
| subparsers = parser.add_subparsers(dest='subcommand', help='subcommand help') #пробел = пробел | ||
|
Owner
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. Очень хорошо, что Вы обратили на это внимание! На самом деле, когда знак = используется для задания значений по умолчанию или передачи именованных аргументов функции (а именно это здесь и в стр. 49 и 52 происходит, мы это ещё пройдём) пробелами он не выделяется. Это единственное исключение из общего правила. |
||
| rename_parser = subparsers.add_parser('rename', help='rename help') #пробел = пробел | ||
| rename_parser.add_argument('dirname') | ||
| rename_parser.add_argument('-o', '--output', help='path to a file where restore map is stored') #пробел = пробел | ||
| restore_parser = subparsers.add_parser('restore', help="command_a help") #пробел = пробел | ||
| restore_parser.add_argument('dirname') | ||
| restore_parser.add_argument('restore_map') | ||
| args = parser.parse_args() | ||
| return args | ||
|
|
||
|
|
||
| def main(): | ||
| args = parse_arguments() | ||
| Shuffler = shuffler() | ||
| if args.subcommand == 'rename': | ||
| if args.output: | ||
| Shuffler.rename(args.dirname, 'restore.info') | ||
| else: | ||
| Shuffler.rename(args.dirname, args.output) | ||
| elif args.subcommand == 'restore': | ||
| Shuffler.restore(args.dirname, args.restore_map) | ||
| else: | ||
| sys.exit() | ||
|
|
||
|
|
||
| main() | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| a = int(input ("введите длину:")) | ||
| b = int(input ("введие ширину:")) | ||
| result = 2*(a+b) | ||
| print (f"Echo: Периметр:{result}") |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| t = int (input("введие время:")) | ||
|
Owner
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. Согласно PEP8 пробелов между именем функции и скобкой быть не должно. |
||
| s = int (input("введите расстояие:")) | ||
| v = s/t | ||
| print (f"Echo: Сред.Скорость {v} км/ч") | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| cvv = int(input("введите цифровой пароль:")) | ||
| key = int(input("введите ключ:")) | ||
| res = cvv^key | ||
| print (f"Шифр введенного пользователем пароля code: {res}") | ||
|
|
||
| code = int(input("введите сообщенный code")) | ||
| key = int(input("введите ключ:")) | ||
| res = code^key | ||
| print (f"восстановленный пароль: {res}") | ||
|
|
||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| s = input("напишите слово:") | ||
| if s == s[::-1]: | ||
| print("слово полиндром") | ||
| else: | ||
| print("слово не является полиндромом") | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| s = input("введите слово содержащее букву А:") | ||
| s1 = " " | ||
| for i in s: | ||
| if i == "A" or i == "a": | ||
| s1 += "*" | ||
| else: | ||
| s1 += i | ||
| print(s1) | ||
|
|
||
|
|
||
|
|
||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| #1.Напишите программу, которая выводит на экран числа от 1 до 100. | ||
| # При этом вместо чисел, кратных трем, программа должна выводить слово Fizz, | ||
| # а вместо чисел, кратных пяти — слово Buzz. | ||
| # Если число кратно пятнадцати, то программа должна выводить слово FizzBuzz. | ||
|
|
||
| for a in range(0,101): | ||
|
Owner
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? |
||
| if a % 3 == 0: | ||
|
Owner
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. Для числа кратного 15 напечатается и Fizz, и Buzz, и FizzBuzz, а должно только FizzBuzz. |
||
| print("Fizz") | ||
| if a % 5 == 0: | ||
| print("Buzz") | ||
| if a % 15 == 0: | ||
| print("FizzBuzz") | ||
| else: | ||
| print(a) | ||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| #.Составить программу, которая будет считывать введённое пятизначное число. После чего, каждую цифру этого числа необходимо вывести в новой строке: | ||
| Число: 10819 | ||
|
|
||
| #1 цифра равна 1 | ||
|
|
||
| #2 цифра равна 0 | ||
|
|
||
| #3 цифра равна 8 | ||
|
|
||
| #4 цифра равна 1 | ||
|
|
||
| #5 цифра равна 9 | ||
|
|
||
| a = input("введите пятизначное число:") | ||
| print(a) | ||
| i = 0 | ||
| while i < len(a): | ||
| print(a[i]) | ||
|
Owner
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+=1 | ||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| #Реализовать цикл, формирующий число из вводимых пользователем символов, | ||
| # пока не будет введено слово “stop” (или “Stop”, или “STOP”). | ||
| # Если пользователь ввел не числовой символ, вывести предупреждение и запросить новый символ. | ||
|
|
||
| a = input("введите число:") | ||
| while not a.isdecimal(): #можно и через моржовы оператор while not (a := input("введите число:")).isdecimal(): | ||
|
Owner
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. Можно и даже нужно. |
||
| if a == "stop" or a == "Stop" or a == "STOP": | ||
|
Owner
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. Можно проще: if a.lower() == "stop" |
||
| break | ||
| print("вы ввели не числовое значение") | ||
| a = input("введите число:") | ||
| else: | ||
| a = int(a) | ||
| print(f"Квадрат числа:{a*a}") | ||
|
Owner
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("The end") | ||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| #4.Написать приложение-спорщик (генератор ответов), отвечающее на все запросы пользователя последовательно фразами: | ||
| #"Ты сам-то понял, что написал?", "Аргументируй", "И?", | ||
| #пока пользователь не введёт слово “хватит”. | ||
|
|
||
| #s = input("Задайте свой вопрос и мы на него ответим:") | ||
|
|
||
| import random | ||
|
|
||
| a = input("ваш вопрос?") | ||
| p = ("Ты сам-то понял, что написал?", "Аргументируй", "И?") | ||
| while True: | ||
| if a == "хватит": | ||
| break | ||
| else: | ||
| a = input("ваш вопрос?") | ||
|
Owner
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. Строки 15 и 16 стоит поменять местами. Иначе первый вопрос (из стр.9) алгоритм игнорирует. |
||
| print(random.choice(p)) | ||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,27 @@ | ||
| #6.Написать и вызвать две функции, принимающие два числа. | ||
| #Первая функция должна вывести на экран большее из двух введённых чисел. | ||
| #Другая должна вернуть большее из двух введённых чисел по месту вызова. | ||
|
|
||
|
|
||
| def fun(a,b): | ||
| if a > b: | ||
| print(f"наибольшее число {a}") | ||
| else: | ||
| print(f"наибольшее число {b}") | ||
|
|
||
| a = int(input("введите первое число:")) | ||
| b = int(input("введите второе число:")) | ||
| fun(a,b) | ||
|
|
||
| #замечание, зачем запрашивать a и b , если они передаются как формальные аргументы-(исправлено) | ||
| def fun(a,b): | ||
| if a > b: | ||
| print(f"наибольшее число {a}") | ||
| return a | ||
| else: | ||
| print(f"наибольшее число {b}") | ||
| return b | ||
|
|
||
| fun(30, 10) | ||
|
Owner
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 для вывода наибольшего значения, используя возможность возврата значения из функции? |
||
|
|
||
|
|
||
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.
Нет. Надо написать СВОЮ реализацию len. В задании написано: Стандартную функцию len использовать нельзя!