Skip to content

Instantly share code, notes, and snippets.

@hodunov
Created November 4, 2021 19:23
Show Gist options
  • Save hodunov/8cf8dc6fd789b09d8c8c95f97badbe35 to your computer and use it in GitHub Desktop.
Save hodunov/8cf8dc6fd789b09d8c8c95f97badbe35 to your computer and use it in GitHub Desktop.
Homework 5
# 3) У вас есть список my_list с значениями типа int.
# Если в my_list количество элементов меньше 2, то в конец добавить значение 0.
# Если количество элементов больше или равно 2, то добавить сумму
# последних двух элементов.
# Количество элементов в списке можно получить с помощью функции len(my_list)
my_list = [1, 2, 3, 5, 6]
if len(my_list) >= 2:
my_list.append(my_list[-1] + my_list[-2])
else:
my_list.append(0)
print(my_list)
print(sum(my_list[-2:]))
# 4) У вас есть строка my_string = '0123456789'.
# Сгенерировать целые числа (тип int) от 0 до 99 и поместить их в список.
# Задание нужно выполнить ТОЛЬКО через цикл в цикле(См. пример выше) и приведение типов.
# Генерирование через range или другие "фишки" я засчитывать не буду ))
my_string = '0123456789'
result = []
for symbol_1 in my_string:
for symbol_2 in my_string:
result.append(int(symbol_1 + symbol_2))
print(result)
my_int = 200_300_400
NOT_MAGIC_NUMBER = 100
print(my_int)
# HW #5
# 1. Дано целое число (int). Определить сколько нулей в этом числе.
my_int = 200_300_400
result = str(my_int)
print(result.count('0'))
print(str(my_int).count('0'))
value_1 = True
value_2 = True
if value_1:
value = 20
else:
value = 10
print(value)
value = 20 if value_1 else 10
print(value)
# 2. Дано целое число (int).
# Определить сколько нулей в конце этого числа. Например для числа 1002000 - три нуля
number = 1002000
my_str = str(number)
for digit in my_str[::-1]:
if digit == '0':
counter += 1
else:
break
print(counter)
print(my_str.rstrip('0'))
result = len(my_str) - len(my_str.rstrip('0'))
print(result)
# # 3. Даны списки my_list_1 и my_list_2.
# # Создать список my_result в который вначале поместить
# # элементы на четных местах из my_list_1, а потом все элементы на нечетных местах из my_list_2.
my_list_1 = ['Hello', 'hillel', 'how', 'are', 'you']
my_list_2 = ['hhh', 'llll', 'iiii', '3333']
result = my_list_1[::2] + my_list_2[1::2]
print(result)
result_2 = []
result_2.extend(my_list_1[::2])
result_2.extend(my_list_2[1::2])
print(result_2)
my_list_3 = []
my_list_4 = list()
print(type(my_list_3), type(my_list_4))
my_str = 'hfgasqwrqwr'
print(list(my_str))
print([my_str])
import timeit
import datetime
start = datetime.datetime.now()
print(timeit.timeit('"-".join(str(n) for n in range(100))', number=10000))
end = datetime.datetime.now()
print(end-start)
# 4. Дан список my_list. СОЗДАТЬ НОВЫЙ список new_list у которого первый элемент из my_list
# стоит на последнем месте. Если my_list [1,2,3,4], то new_list [2,3,4,1]
my_list = [1, 2, 3, 4]
new_list = my_list[1:] + [my_list[0]]
print(f"{new_list=}")
print(f"{my_list=}")
my_reversed_list = list(reversed(my_list))
print(my_reversed_list)
print(f"{my_list=}")
my_list.reverse()
print(my_list)
# 5.Дан список my_list. В ЭТОМ списке первый элемент переставить на последнее место.
# [1,2,3,4] -> [2,3,4,1]. Пересоздавать список нельзя! (используйте метод pop)
my_list = [1, 2, 3, 4]
list_value = my_list.pop(0)
my_list.append(list_value)
print(my_list)
# 6. Дана строка в которой есть числа (разделяются пробелами).
# Например "43 больше чем 34 но меньше чем 56".
# Найти сумму ВСЕХ ЧИСЕЛ (А НЕ ЦИФР) в этой строке.
# Для данного примера ответ - 133. (используйте split и проверку isdigit)
my_string = "43 больше чем 34 но меньше чем 56"
my_str_list = my_string.split()
counter = 0
for item in my_str_list:
if item.isdigit():
counter += int(item)
print(counter)
result_list = [i for i in range(100)]
copy_list = result_list[::]
result_list_2 = []
for i in range(100):
result_list_2.append(i)
print(f"{result_list_2=}")
print(result_list)
print(list(range(100)))
# 7. Дана строка my_str в которой символы
# МОГУТ повторяться и два символа l_limit, r_limit,
# которые точно находятся в этой строке. Причем l_limit левее чем r_limit.
# В переменную sub_str поместить НАИБОЛЬШУЮ часть строки между этими символами.
# my_str = "My long string", l_limit = "o", r_limit = "g" -> sub_str = "ng strin".
my_str = "My long string"
l_limit, r_limit = "o", "g"
l_index = my_str.find(l_limit) + 1 # нам не нужен символ 'o'
r_index = my_str.rfind(r_limit)
sub_str = my_str[l_index: r_index]
sub_str = my_str[my_str.find(l_limit) + 1: my_str.rfind(r_limit)]
print(sub_str)
# 8. Дана строка my_str.
# Разделите эту строку на пары из двух символов и поместите эти пары в список.
# Если строка содержит нечетное количество символов,
# пропущенный второй символ последней пары должен быть заменен подчеркиванием ('_').
# Примеры: 'abcd' -> ['ab', 'cd'], 'abcde' -> ['ab', 'cd', e_']
# (используйте срезы длинны 2)
example = 'abcde'
result_list = []
EXAMPLE_LENGTH = len(example)
for index in range(0, EXAMPLE_LENGTH, 2):
if index < EXAMPLE_LENGTH - 1:
result_list.append(example[index] + example[index + 1])
else:
result_list.append(example[index] + '_')
print(result_list)
better_result = []
for index in range(0, EXAMPLE_LENGTH, 2):
better_result.append(example[index: index + 2].ljust(2, '_'))
print(better_result)
result_best = [example[i: i + 2].ljust(2, '_') for i in
range(0, EXAMPLE_LENGTH, 2)]
print(result_best)
# 9. Дан список чисел. Определите, сколько в этом списке элементов,
# которые больше суммы двух своих соседей (слева и справа),
# и НАПЕЧАТАЙТЕ КОЛИЧЕСТВО таких элементов.
# Крайние элементы списка никогда не учитываются, поскольку у них недостаточно соседей.
# Для списка [2,4,1,5,3,9,0,7] ответом будет 3 потому что 4 > 2+1, 5 > 1+3, 9>3+0.
my_list = [2, 4, 1, 5, 3, 9, 0, 7]
print(sum(my_list))
counter = 0
for index in range(1, len(my_list) - 1):
if my_list[index] > sum([my_list[index - 1], my_list[index + 1]]):
counter += 1
my_str = 'defw'
print(max(my_str))
print(min(my_str))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment