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
13 changes: 13 additions & 0 deletions 1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
'''1. Выяснить тип результата выражений:
15 * 3
15 / 3
15 // 2
15 ** 2'''
a=15 * 3
b = 15 / 3
c = 15 // 2
d = 15 ** 2
print(f'{a} - {type(a)}')
print(f'{b} - {type(b)}')
print(f'{c} - {type(c)}')
print(f'{d} - {type(d)}')
60 changes: 60 additions & 0 deletions 2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
'''Дан список:
['в', '5', 'часов', '17', 'минут', 'температура', 'воздуха', 'была', '+5', 'градусов']

Необходимо его обработать — обособить каждое целое число (вещественные не трогаем)
кавычками (добавить кавычку до и кавычку после элемента списка, являющегося числом)
и дополнить нулём до двух целочисленных разрядов:
['в', '"', '05', '"', 'часов', '"', '17', '"', 'минут', 'температура',
'воздуха', 'была', '"', '+05', '"', 'градусов']'''

li = ['в', '5', 'часов', '17', 'минут', 'температура', 'воздуха', 'была', '+5', 'градусов']

'''выполнение в лоб'''
# li.insert(1,'"')
# li.insert(3,'"')
# li.insert(5,'"')
# li.insert(7,'"')
# li.insert(12,'"')
# li.insert(14,'"')
# li[2] = '05'
# li[-3] = '+05'
#
# res_str = ' '.join(li)
# res_str = res_str.replace('" 05 "','"05"')
# res_str = res_str.replace('" 17 "','"17"')
# res_str = res_str.replace('" +05 "','"+05"')
# # print(res_str) # решение в лоб'''

# 2-ой вариант
new_li = []
for i in li:
if not i.isalpha(): # обособить каждое целое число кавычками можно сделать if j.isdigit() +for
new_li.append( '"')
if len(i) == 1:
new_li.append(f'0{i}') # дополнить нулём до двух целочисленных разрядов
elif "+" in i: # модифицировать это условие для чисел со знаком
new_li.append(f'{i[0]}0{i[1]}') # дополнить нулём до двух целочисленных разрядов
else:
new_li.append(i)
new_li.append( '"')
else:
new_li.append(i)
print(new_li)
print(len(new_li))

start = True
new_li2 = []
for val in new_li:
if val == '"' and start:
new_li2.append(f'{val} ')
start = False
elif val == '"' and not start:
new_li2.append(f' {val}')
start = True
else:
new_li2.append(val)
res = ' '.join(new_li2)
res = res.replace(' ','')
print(f' {res}') # Сформировать из обработанного списка строку:

# есть возможность сделать с помощью модуля re
94 changes: 94 additions & 0 deletions 3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
li = ['в', '5', 'часов', '17', 'минут', 'температура', 'воздуха', 'была', '+5', 'градусов']






count=0
for i in li:
if not i.isalpha():
count+=3
else:
count+=1
len_update_li=count-len(li)
update_li=['' for _ in range(len_update_li)]
update_li.extend(li) # get len update li

li=update_li

def get_digit_str(num):
for num1,i in enumerate(li[num:]):

if i.isalpha() and not i=='':
return True, i, num1
elif not i.isalpha() and not i=='':
return False, i, num1
not_count=0
for num, i in enumerate(li):
if not_count<num:
if i=='':
check,return_i,ret_num=get_digit_str(num)
if check:
li[num]=return_i
li[ret_num]=''
else:
li[num]='"'
li[num+1]=return_i
li[num+2]='"'
not_count=num+2




# for num, i in enumerate(li):
# # print(num,i)
# if i=='':
# print(f'i {num},{i}')
# for num_j,j in enumerate(li):
# print(f'j {num_j},{j}')
# if j!='':
# print(j)
# if j.isalpha(): # нашелся текст
# li[num]=j
# li[num_j]=''
# else: # нашлась цифра текст
# li[num]='"'
# li[num+1]=j
# li[num+2]='"'
# break

print(li)
# idex_fin=li.find('')
# li[]


# if i == '':
# for num_j,j in enumerate(li):
# if j!='':
# replace=li.pop(num_j)
# li.insert(num,replace)
# break



'''
count = 0
start = True
for val in li:
if val == '"' and start:
li.insert(count,f'{val} ')
count+= 1
start = False
elif val == '"' and not start:
li.insert(count,f' {val}')
count+= 1
start = True
else:
li.insert(count,val)
count+= 1
res = ' '.join(li)
res = res.replace(' ','')
# print(f'res {res}')
# print(id(li))
'''
18 changes: 18 additions & 0 deletions 4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
'''Дан список, содержащий искажённые данные с должностями и именами сотрудников:
['инженер-конструктор Игорь', 'главный бухгалтер МАРИНА', 'токарь высшего разряда нИКОЛАй', 'директор аэлита']

Известно, что имя сотрудника всегда в конце строки. Сформировать и
вывести на экран фразы вида: 'Привет, Игорь!' Подумать, как получить
имена сотрудников из элементов списка, как привести их к корректному виду.
Можно ли при этом не создавать новый список?
'''

li = ['инженер-конструктор Игорь', 'главный бухгалтер МАРИНА', 'токарь высшего разряда нИКОЛАй', 'директор аэлита']
for i in li:
line=i.split()
name=line[-1].capitalize() # get and normalize name
print(f'Привет {name}')

#новый список можно не создавать а перегрузить старый
li=[f'Привет {i.split()[-1].capitalize()}' for i in li ] # overweight li
print(li)
44 changes: 44 additions & 0 deletions 5.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
#'5. Создать список, содержащий цены на товары (10–20 товаров), например: [57.8, 46.51, 97, ...]


from random import randint
li_price = [f'{randint(10, 99)}.{randint(0, 100)}' for _ in range(20)]



# Вывести на экран эти цены через запятую в одну строку, цена должна отображаться в виде <r> руб <kk> коп
new_li_price=[]
for i in li_price:
rub,cop=i.split('.')
if len(cop) == 1: # как добавить нули, если, например, получилось 7 копеек или 0 копеек (должно быть 07 коп или 00 коп).
cop= f'0'+cop
elif len(cop) == 0:
cop='00'
price=f'{rub} руб {cop} коп'
new_li_price.append(price)
print(new_li_price) # цена должна отображаться в виде <r> руб <kk> коп

#Подумать, как из цены получить рубли и копейки

for i in new_li_price:
i=i.split(' ')
rub=i[0] # get rub
cop= i[2] # get cop

print(new_li_price)
new_li_price.sort()
print(new_li_price) # Вывести цены, отсортированные по возрастанию

print(str(id(new_li_price))+' '+str(id(new_li_price))) # доказать, что объект списка после сортировки остался тот же

# Создать новый список, содержащий те же цены, но отсортированные по убыванию
new_li_price2=new_li_price.copy()
new_li_price2.sort(reverse=True) # то же самое возможно [::-1] или .reverse()
print(new_li_price2) # revers sort

# Вывести цены пяти самых дорогих товаров.
five_high_price=new_li_price2[:5]
print(five_high_price)

#Сможете ли вывести цены этих товаров по возрастанию, написав минимум кода?
print(sorted(five_high_price)) #