Created
November 4, 2021 19:23
-
-
Save hodunov/8cf8dc6fd789b09d8c8c95f97badbe35 to your computer and use it in GitHub Desktop.
Homework 5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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