Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
9635e3a
Лекция 4, задания 1,2,3,4.
volobuev-m Sep 11, 2023
25365c8
Merge branch 'main' of https://github.com/IlyaOrlov/PythonCourse2.0_S…
volobuev-m Sep 11, 2023
deb6c60
Лекция 4, задания 6,7,8.
volobuev-m Sep 12, 2023
76cd12a
Merge branch 'main' of https://github.com/IlyaOrlov/PythonCourse2.0_S…
volobuev-m Sep 12, 2023
fb9e846
Лекция 5, задания 1,2,3,4.
volobuev-m Sep 12, 2023
774e1a8
Merge branch 'main' of https://github.com/IlyaOrlov/PythonCourse2.0_S…
volobuev-m Sep 12, 2023
5633d56
Лекция 5, задания 1,2,3,4. Исправления внесены.
volobuev-m Sep 13, 2023
8a5cc92
Merge branch 'main' of https://github.com/IlyaOrlov/PythonCourse2.0_S…
volobuev-m Sep 13, 2023
5098e94
Лекция 5, задания 1,2,3,4. Исправления внесены. arg[i], arg[k] = arg[…
volobuev-m Sep 14, 2023
d9208e3
Лекция 5, задания 1,2,3,4. Исправления внесены.
volobuev-m Sep 15, 2023
5acb0c3
Merge branch 'main' of https://github.com/IlyaOrlov/PythonCourse2.0_S…
volobuev-m Sep 15, 2023
b19f092
Лекция 5, задания 1,2,3,4. Исправления внесены.
volobuev-m Sep 15, 2023
40e3da6
Лекция 5, задания 1,3,4. Исправления внесены.
volobuev-m Sep 18, 2023
785ac89
Merge branch 'main' of https://github.com/IlyaOrlov/PythonCourse2.0_S…
volobuev-m Sep 18, 2023
87ad423
Лекция 5, задания 1. Исправления внесены.
volobuev-m Sep 27, 2023
36a7b47
Merge branch 'main' of https://github.com/IlyaOrlov/PythonCourse2.0_S…
volobuev-m Sep 27, 2023
d689839
Лекция 5, задания 5
volobuev-m Sep 27, 2023
4397ed4
Лекция 5, задание 5
volobuev-m Sep 27, 2023
e71624f
Лекция 5, Поправил.
volobuev-m Sep 28, 2023
176754d
Merge branch 'main' of https://github.com/IlyaOrlov/PythonCourse2.0_S…
volobuev-m Sep 28, 2023
be0f1ab
Лекция 5, Поправил.
volobuev-m Sep 29, 2023
f5027e2
Merge branch 'main' of https://github.com/IlyaOrlov/PythonCourse2.0_S…
volobuev-m Sep 29, 2023
9ed57a3
Лекция 5, Поправил.
volobuev-m Sep 29, 2023
d7fe30f
Лекция 5, Поправил.
volobuev-m Sep 30, 2023
10686e4
Лекция 5, Поправил.
volobuev-m Oct 2, 2023
557a41d
Merge branch 'main' of https://github.com/IlyaOrlov/PythonCourse2.0_S…
volobuev-m Oct 2, 2023
016fd54
Merge branch 'main' of https://github.com/IlyaOrlov/PythonCourse2.0_S…
volobuev-m Oct 2, 2023
d5240eb
Лекция 5, Поправил.
volobuev-m Oct 6, 2023
4e7c718
Merge branch 'main' of https://github.com/IlyaOrlov/PythonCourse2.0_S…
volobuev-m Oct 6, 2023
136c38f
Лекция 6, задания 1 и 2. С третьим пока не разобрался.
volobuev-m Oct 8, 2023
06b95af
Merge branch 'main' of https://github.com/IlyaOrlov/PythonCourse2.0_S…
volobuev-m Oct 8, 2023
a59e7e3
Лекция 6, задания 1 и 2 исправил.
volobuev-m Oct 9, 2023
00a2aa8
Merge branch 'main' of https://github.com/IlyaOrlov/PythonCourse2.0_S…
volobuev-m Oct 9, 2023
0c0b3a8
Лекция 6, задания 2 исправил.
volobuev-m Oct 9, 2023
5222480
Лекция 6, задание 3.
volobuev-m Oct 9, 2023
f527aef
Лекция 6, задания 2,3. Исправления.
volobuev-m Oct 10, 2023
baf62ab
Лекция 7, задания 1,2.
volobuev-m Oct 10, 2023
ce6d5cf
Лекция 7, задание 2. Исправлено.
volobuev-m Oct 11, 2023
42a4b1e
Лекция 7, задание 3.
volobuev-m Oct 12, 2023
f4526b4
Лекция 6, задание 3. Попробовал замену. Интересно.
volobuev-m Oct 12, 2023
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
15 changes: 15 additions & 0 deletions Practice/mvolobuev/lec4 task1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
def sravnenie(a):
if a % 15 == 0:
print("FizzBuzz")
else:
if a % 5 == 0:
print("Fizz")
else:
if a % 3 == 0:
print("Buzz")
else:
print(a)


for i in range(1, 101):
sravnenie(i)
3 changes: 3 additions & 0 deletions Practice/mvolobuev/lec4 task2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
n = input("Введите пятизначное число: ")
for k in range(0, len(n)):
Comment thread
IlyaOrlov marked this conversation as resolved.
print(f"{k+1} цифра равна: {n[k]}")
47 changes: 47 additions & 0 deletions Practice/mvolobuev/lec4 task3_2.py
Comment thread
IlyaOrlov marked this conversation as resolved.
Comment thread
IlyaOrlov marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
def bukv(b, alfa):
nom = input(f"Введите порядковый номер для буквы: {b:} : ")
if nom.isdigit():
nom = int(nom)
mon = alfavit[nom - 1]
bo1 = str(mon[1])
if b == bo1:
print(f"Цифра соответствует букве : {bo1:}")
return nom
else:
print(f"Цифра соответствует букве {bo1:} 'попробйте еще раз")
bukv(b, alfa)
else:
print("Вместо цифры введена буква :")
bukv(b, alfa)


def buk_v(b, s, s1, alfavit):
s1 = bukv(b, alfavit)
s = s + str(s1) + " "

alfavit = [(1, "a"), (2,"b"),(3, "c"),(4, "d"),(5, "e"),(6, "f"),(7, "g"),(8, "h"),(9, "i"),(10, "j"),(11, "k"),
(12,"l"),(13,"m"),(14, "n"),(15, "o"),(16, "p"),(17, "q"),(18, "r"),(19, "s"),(20, "t"),
(21,"u"),(22, "v"),(23, "w"),(24, "x"),(25, "y"),(26, "z")]
print("Сегодня мы стараемся запомнить порядковый номер букв в алфавите, и набрать слово (stop)")
bs = alfavit[18]
bt = alfavit[19]
bo = alfavit[14]
bp = alfavit[15]
s = ""
for k in range(0, 4):
if k == 0:
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Код в стр.29-31, 34-36, 39-41, 43-45 одинаковый. Зачем его столько раз повторять?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Исправил.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Нет.
Во-первых, данный код выдаёт ошибку, т.к. s1 в стр.34,38,42 не определена.
Во-вторых, весь код в стр.26-46 можно упростить до:

stop_alf = (alfavit[18], alfavit[19], alfavit[14], alfavit[15])
s = ""
for k in range(0, 4):
    b = stop_alf[k][1]
    s1 = bukv(b, alfavit)
    s += str(s1) + " "

или даже до

stop_alf = (alfavit[18], alfavit[19], alfavit[14], alfavit[15])
s = ""
for n, b in stop_alf:
    s += str(bukv(b, alfavit)) + " "

В-третьих, буквы "a"..."z" и так упорядочены по таблице ASCII. Получить порядковый номер каждой буквы можно и без доп. структуры alfavit простым вычитанием порядкового номера "a".
Например, порядковый номер "z":

nz = ord("z") - ord("a") + 1  # получится 26

Узнать символ по порядковому номеру тоже просто. Например, номер 5:

b5 = chr(ord("a") + 5 - 1)  # получится "e"

Операции ord и chr мы проходили на 5-м занятии (примерно 58-я минута записи).

Если всё же удобней работать с алфавитом как списком, имеет смысл сгенерировать его через алгоритм:

alfavit = []
for i in range(1, ord("z") + 1):
    b = chr(ord("a") + i - 1)
    alfavit.append((i, b))

Это более быстрый и гибкий подход. Если заказчик решит нумеровать буквы с 0, а не с 1, захочет проверять прописные буквы, а не строчные, поправить алгоритм гораздо проще, чем переписывать заново всю последовательность букв и цифр.
Прописать конкретные числа, буквы - это допустимо и даже правильно... на начальном этапе решения. Чтоб увидеть и понять закономерность! Но на этом нельзя останавливаться. Как только закономерность становится явной - её стоит заменить алгоритмом. Когда Вы пишете (1, "a"), (2, "b") и т.д. - это уже рутинная, повторяющаяся деятельность. Пусть её выполняет машина. Вам надо просто задать ей алгоритм. То же самое и с повторяющимся кодом:

if k == ...:
    b = ...
    buk_v(...)

b = str(bs[1])
buk_v(b, s, s1, alfavit)
else:
if k == 1:
b = str(bt[1])
buk_v(b, s, s1, alfavit)
else:
if k == 2:
b = str(bo[1])
buk_v(b, s, s1, alfavit)
else:
b = str(bp[1])
s1 = bukv(b, alfavit)
s = s + str(s1) +" "
print(f"Поздравляем, Вы ввели слово -stop-, цифры - {s}")
17 changes: 17 additions & 0 deletions Practice/mvolobuev/lec4 task4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import random


def bukv(buk, stops):
j = 100
for k in range(0, j):
zapros = input("Введите любое слово: ")
if zapros != stops:
print(random.choice(buk))
else:
return


buk = ("Ты сам понял, что написал?", "Аргументируй", "И")
stops = ("хватит")
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Скобки здесь не нужны.

bukv(buk, stops)
print("Спасибо за беседу!")
36 changes: 36 additions & 0 deletions Practice/mvolobuev/lec4 task5.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import random


def chisl(buk, a, b):
a = int(a)
b = int(b)
buk = int(buk)
zapros = input("Угадайте загадоное число в заданном дипазоне: ")
if zapros.isdigit():
print(f"{zapros}")
if int(zapros) == buk:
print("Угадали. ")
return zapros
else:
zapros = int(zapros)
if zapros > b:
print("Введено число больше верхнего диапазона")
else:
if zapros < a:
print("Введено число меньше нижнего диапазона")
else:
if zapros > buk:
print("Введеное число больше загадоного")
else:
print("Введеное число меньше загадоного")
chisl(buk, a, b)
else:
print("Введена точка")
return zapros


a = int(input("Введите цифру, начало диапазона : "))
b = int(input("Введите цифру, конец диапазона : "))
i = random.randint(a, b)
chisl(i, a, b)
print("Спасибо за игру!")
23 changes: 23 additions & 0 deletions Practice/mvolobuev/lec4 task6.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
def input_vvod(z1, z2):
if z1 > z2:
return z1
else:
return z2

def print_vivod(maxi):
print(f"Наибольшее число: {maxi}")


def print_viv(z1, z2):
if z1 > z2:
print(f"Наибольшее число: {z1}")
else:
print(f"Наибольшее число: {z2}")


print("Программа для определения наибольшего числа из двух введеных")
z1 = input("Введите первое число: ")
z2 = input("Введите второе число: ")
dx = input_vvod(z1, z2)
print_vivod(dx)
print_viv(z1, z2)
24 changes: 24 additions & 0 deletions Practice/mvolobuev/lec4 task7.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
def telo_dekor(fun):
def podch(*args, **kwargs):
print("================")
rex= fun(*args, **kwargs)
print("================")
return rex
return podch


@telo_dekor
def fun_print(a,b,c):
print(f"{a} + {b} = {c}")


def fun_sum(zn, zk):
zl = zn + zk
return zl


z1 = int(input("Введите первое число: "))
z2 = int(input("Введите второе число: "))
z = fun_sum(z1, z2)
fun_print(z1,z2,z)
#telo_dekor(z1, z2, z)
41 changes: 41 additions & 0 deletions Practice/mvolobuev/lec4 task8.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import random


def bukv(buky):
for k in range(0, 100):
zapros = input("Выберите одно из трех слов и введите его (Камень, Ножницы, Бумага), для выхода введите Хватит: ")
zapros = zapros.strip()
zapros = zapros.lower()

if zapros == buky[3]: return

if zapros not in buky:
print("Слово введено с ошибкой, введите слово заново")
else:
i = random.randint(0, 2)
if zapros == buky[i]:
print(f"Мы выбрали тоже: {zapros}")
else:
if i == 0:
if zapros == buky[1]:
print (f"{buky[i]} Вы проиграли")
else:
print(f"{buky[i]} Вы выиграли")
else:
if i == 1:
if zapros == buky[0]:
print (f"{buky[i]} Вы выиграли")
else:
print(f"{buk[i]} Вы проиграли")
else:
if i == 2:
if zapros == buky[0]:
print(f"{buky[i]} Вы проиграли")
else:
print(f"{buky[i]} Вы выиграли")



buk = ["камень", "ножницы", "бумага", "хватит"]
bukv(buk)
print("Спасибо за игру!")
9 changes: 9 additions & 0 deletions Practice/mvolobuev/lec5 task1.py
Comment thread
IlyaOrlov marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
arg = [0, 3, 24, 2, 3, 7]
print(arg)
for i in range(0, len(arg)-1):
n = i
for k in range(i + 1, len(arg)):
if arg[k] < arg[n]:
n = k
arg[i], arg[n] = arg[n], arg[i]
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

А здесь ещё можно повесить проверку if i != n, чтоб не тратить время на самоприсваивание.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Не совсем понял предложение.
n = i - присвоение необходимо чтобы знать с какого элемента мы начинаем проверку.
n = k - это присвоение необходимо для проверки повторений цикла
на мой взляд код рабочий и минимальный, меньше только мое первое предложение с пузырьковым методом.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Да, эти присваивания необходимы. Но если внутри цикла for k in range(i+1, len(arg)) n не поменялся (не нашлось меньшего элемента), то незачем делать и перестановку arg[i], arg[n] = arg[n], arg[i].
Т.е. финальный вариант получается такой:

arg = [0, 3, 24, 2, 3, 7]
print(arg)
for i in range(0, len(arg)-1):
    n = i
    for k in range(i+1, len(arg)):
        if arg[k] < arg[n]:
            n = k
    if n != i:        
        arg[i], arg[n] = arg[n], arg[i]
print(arg)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Внес изменения, получил это:
[0, 3, 24, 2, 3, 7]
[0, 2, 3, 7, 3, 24]

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Если изменения внесены в точности, как в приведённом мною коде, то результат должен получится другой.
image
Можете прислать, какой код у Вас получился, и я скажу, где ошибка. Хотя и так догадываюсь, что if n != i: и перестановку Вы внесли во вложенный цикл, чего делать не стоило.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Спасибо, все получилось. Но мой код короче на одну строку.
Или проводиться дополнительная проверка, или дополнительное присваивание.
На скорость это может повлиять?

Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov Sep 29, 2023

Choose a reason for hiding this comment

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

Хороший вопрос. Давайте разбираться. Возьмём список из миллиона элементов и рассмотрим крайние случаи.

  1. Если список отсортирован по возрастанию (а мы сортируем по убыванию). Тогда n всегда будет != i, т.к. во вложенном цикле всегда будет находиться какой-то меньший элемент. Мы получим миллион лишних проверок.
  2. Если список отсортирован сразу, как нам нужно (по убыванию). Тогда n всегда будет == i, т.к. во вложенном цикле никогда не будет элементов, меньших, чем i-й. Без проверки if n != i: мы получим миллион лишних перестановок (самоперестановок).

Если элементы в списке генерируются случайным образом по равномерному распределению, то вероятность обоих крайних случаев одинаковая.
Таким образом, перед нами встаёт дилемма: миллион лишних проверок или миллион лишних перестановок. Проверка - операция чтения, перестановка - это две операции записи. Очевидно, проверка выполняется быстрее, чем перестановка. Поэтому из двух зол я бы выбрал меньшее - проверку.

print(arg)
17 changes: 17 additions & 0 deletions Practice/mvolobuev/lec5 task2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
def fun_povtor(st):
j1 = len(st)
j2 = len(st)
for i in range(0, len(st) - 1):
for k in range(i + 1, len(st)):
if int(st[k]) == int(st[i]):
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Зачем здесь int?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Исправил.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Не вижу исправления. int на месте.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Сразу исправил.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

if k-i < j2:
j1 = st[k]
j2 = k-i
print(f"Первый повторившийся символ: {j1}")




arg = [2, 3, 4, 5, 3, 2]
print(arg)
fun_povtor(arg)
15 changes: 15 additions & 0 deletions Practice/mvolobuev/lec5 task3.py
Comment thread
IlyaOrlov marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
def zam(t, dik1):
n = len(t)
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Код в стр.3-8 можно заменить одной строкой: t = t.replace(dik1['дождь'])
Странно только, что пара 'Вчера': 'Завтра' никак не используется.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Вставил, код дает ошибку. Вчера и завтра не использовал, т.к. тогда нужно еще менять был и будет.

Copy link
Copy Markdown
Owner

@IlyaOrlov IlyaOrlov Sep 18, 2023

Choose a reason for hiding this comment

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

ОК. Исправляюсь) Вот такой строкой: return t.replace('дождь', dik1['дождь'])

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Но вообще идея была в том, чтоб получить независимое от конкретных значений решение:
Например:

def zam(t, dik1):
    for k, v in dik1.items():
	t = t.replace(k, v)
    return t

А всеми заменами управляем только через содержимое словаря. По сути, так работает автозамена в Word, в PyCharm.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Надо будет потренироваться с показанным решением.

k = t.count('дождь')
for i in range(0, k):
d = t.find('дождь')
t2 = t[0:d] + dik1['дождь'] + t[d+5:n]
t = t2
return t


t = 'Вчера был дождь, и завтра будет дождь.'
dik = {'Вчера': 'Завтра', 'дождь': 'ветер'}
print(t)
t = zam(t, dik)
print(t)
22 changes: 22 additions & 0 deletions Practice/mvolobuev/lec5 task4.py
Comment thread
IlyaOrlov marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
art = [[1, 2, 3, 4], [5, 6, 2, 8], [9, 2, 11, 12], [13, 14, 15, 16]]
st = [-1, -1, -1, -1]
for i in range(0, 4):
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

В этом цикле индекс нам особо не нужен, поэтому на операции индексирования можно сэкономить, обращаясь непосредственно к элементу:

for x in art:
    print(x)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Что-то не разобрался как это делать.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Буквально подставить этот код вместо стр.3-4.
x - то же самое, что и art[i].
В чём тогда преимущество? Представьте, что Вы пересматриваете книги, стоящие на полке.
for i in range(0, 4): - это Вам некий помощник последовательно называет цифры от 0 до 4.
Он говорит 0 - Вы отсчитываете на полке книгу с номером 0 (самую начальную) - art[0].
Он говорит 1 - Вы снова отсчитываете на полке книгу уже с номером 1 - art[1].
и т.д.
for x in art: - это Вам некий помощник сразу выдаёт по очереди книги с полки.
Очевидно, второй способ будет побыстрее.

print(art[i])

k = int(input("Введите цифру от 1 до 16, столбец которой нужно удалить: "))
i1 = 0
for i in range(0, len(art)):
for j in range(0, len(art[0])):
g = art[i]
if g[j] == k and j not in st:
st[i1] = j
i1 += 1

for j1 in range(0, i1):
Comment thread
IlyaOrlov marked this conversation as resolved.
s1 = st[j1]
for i in range(0, len(art)):
g = art[i]
del(g[s1-j1])

for x in art:
print(x)
4 changes: 4 additions & 0 deletions Practice/mvolobuev/lec5 task5.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
with open("Piton.txt","w",encoding= "utf-8") as f:
f.write("\tЭнтони Шоу — заядлый питонист, участник Python Software Foundation.,\n")
f.write("\tСтрасть Энтони — разбираться в сложных системах,\n")
f.write("упрощать их и обучать других людей.")
11 changes: 11 additions & 0 deletions Practice/mvolobuev/lec5 task5_1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Замена Tab на пробелы
h = int(input("Введите количество пробелов вместо Tab: "))
slist = []
with open("Piton.txt", "r", encoding="utf-8") as f1:
for s in f1:
slist.append(s.expandtabs(tabsize=h))
print(slist)

with open("Piton.txt","w",encoding= "utf-8") as f:
for i1 in range(0, len(slist)):
f.write(slist[i1])
10 changes: 10 additions & 0 deletions Practice/mvolobuev/lec5 task5_2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Замена проберов на Tab
s2 = "\n"
slist = ""
with open("Piton.txt", "r", encoding="utf-8") as f1:
for s in f1:
slist += s.replace(" ", "\t") + s2
print(slist)

with open("Piton.txt","w",encoding= "utf-8") as f:
f.write(slist)
36 changes: 36 additions & 0 deletions Practice/mvolobuev/lec6/lec6_task3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# WrapStrFlle
import tempfile
import os


class WrapStrToFile:
def __init__(self):
self.filepach = tempfile.mktemp()

@property
def content(self):
try:
with open(self.filepach, "r", encoding="utf-8") as f1:
return f1.read()
except FileNotFoundError as e:
print(e)
return "File doesn't exist"

@content.setter
def content(self, value):
with open(self.filepach, "w", encoding="utf-8") as f1:
f1.write(value)

@content.deleter
def content(self):
os.remove(self.filepach)
print("Файл удален")


wstf = WrapStrToFile()
print(wstf.content)
wstf.content= "test str"
print(wstf.content)
wstf.content = "text 2"
print(wstf.content)
del wstf.content # после этого файла не существует
17 changes: 17 additions & 0 deletions Practice/mvolobuev/lec6_task1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Задание 1. Класс и экземпляры классов
class Tank_Vybor:
def __init__(self, marka, cvet, ckorost):
self.marka = marka
self.cvet = cvet
self.ckorost = ckorost


w = Tank_Vybor("T-34", "Зеленый", "50 км/ч")
print(w.marka)
print(w.cvet)
print(w.ckorost)
print("************************************")
w1 = Tank_Vybor("T-80", "Песочный", "80 км/ч")
print(w1.marka)
print(w1.cvet)
print(w1.ckorost)
Loading