Дан массив Height
содержащий рост 10 человек в сантиметрах.
import numpy as np
Height = np.array([158, 160, 175, 172, 190, 188,
173, 177, 165, 148, 156, 180])
a. Создайте новый массив Height_m
, содержащий рост в метрах.
b. Сохраните в массив A1
только те элементы Height
, которые меньше 170 см.
c. Сохраните в массив A2
только те элементы Height
, которые не менее 160 и не более 180.
d. Сохраните в массив A3
только чётные элементы Height
.
height_m = Height / 100
print(height_m)
A1 = Height[Height < 170]
print(A1)
A2 = Height[(Height >= 160) & (Height <= 180)]
print(A2)
A3 = Height[Height % 2 == 0]
print(A3)
[1.58 1.6 1.75 1.72 1.9 1.88 1.73 1.77 1.65 1.48 1.56 1.8 ] [158 160 165 148 156] [160 175 172 173 177 165 180] [158 160 172 190 188 148 156 180]
# дополнение – с ИЛИ
A4 = Height[(Height < 160) | (Height > 180)] # or
A4 = Height[(Height < 160) ^ (Height > 180)] # xor
print(A4)
[158 190 188 148 156]
Дан список height
, содержащий рост 10 человек в сантиметрах.
height = [158, 160, 175, 172, 190, 188, 173, 177, 165, 148, 156, 180]
a. Создайте новый список height_m
, содержащий рост в метрах.
b. Сохраните в список L1
только те элементы height
, которые меньше 170 см.
c. Сохраните в список L2
только те элементы height
, которые не менее 160 и не более 180.
d. Сохраните в список L3
только чётные элементы height
.
height_m = []
for h in height:
height_m.append(h/100)
print(height_m)
[1.58, 1.6, 1.75, 1.72, 1.9, 1.88, 1.73, 1.77, 1.65, 1.48, 1.56, 1.8]
# списковое включение (генератор списков)
height_m = [h/100 for h in height]
L1 = []
for h in height:
if h < 170:
L1.append(h)
print(L1)
[158, 160, 165, 148, 156]
L2 = []
for h in height:
if h >= 160 and h <= 180:
L2.append(h)
print(L2)
[160, 175, 172, 173, 177, 165, 180]
L3 = []
for h in height:
if h % 2 == 0:
L3.append(h)
print(L3)
[158, 160, 172, 190, 188, 148, 156, 180]
Дана последовательность s
из целых чисел:
s = range(0, 2000)
Используя таймер из модуля time
, сравните исполнение следующих программ:
squares
из квадратов чисел из s
, используя цикл for
.squares
из квадратов чисел из s
, используя списковые включения.squares
из квадратов чисел из s
.import timeit
# списки
start = timeit.default_timer()
squares = []
for i in s:
squares.append(i**2)
stop = timeit.default_timer()
execution_time = stop - start
print(str(execution_time) + " seconds")
# списковые включения
start = timeit.default_timer()
squares = [i**2 for i in s]
stop = timeit.default_timer()
execution_time = stop - start
print(str(execution_time) + " seconds")
# массивы
start = timeit.default_timer()
squares = np.array(s) ** 2
stop = timeit.default_timer()
execution_time = stop - start
print(str(execution_time) + " seconds")
0.0010965760000090086 seconds 0.0007895059999896148 seconds 0.00041777400002729337 seconds
У питона есть набор любимых чисел.
favorites = [3, 7, 11, 23, 18, 48, 81]
Напишите программу, которая просит пользователя ввести целое число, и если оно нравится питону, на экран будет выводиться сообщение: "Мое любимое число!", если нет – "Эх, ну почему?".
# оператор in
n = int(input())
if n in favorites:
print("Мое любимое число!")
else:
print("Эх, ну почему?")
7 Мое любимое число!
# без in, ручной вариант с for и break
n = int(input())
check = False
for i in favorites:
if i == n:
print("Мое любимое число!")
check = True
break
if check == False:
print("Эх, ну почему?")
6 Эх, ну почему?
Напишите программу, которая запрашивает с клавиатуры любое количество целых чисел через пробел и выводит на экран медиану заданной выборки.
Для определённости давайте считать, что медиана выборки из $n$ значений определяется следующим образом:
inp = input()
sample = [int(i) for i in inp.split()]
sample.sort()
n = len(sample)
if n % 2 != 0:
med = sample[(n+1)//2-1]
else:
med = (sample[n//2-1] + sample[n//2]) / 2
print(med)
6 8 9 5 7.0
Напишите программу, которая просит пользователя ввести положительное число, и если пользователь вводит положительное число, выводит на экран сообщение "Молодец!", если нет – "Это не положительное число!" в предположении:
a. что пользователь всегда вводит какие-то числа, целые или дробные, а не текст;
b. что пользователь может ввести с клавиатуры что угодно.
При решении этой задачи нельзя использовать исключения, то есть запрещена конструкция try-except
(если вы с ней уже знакомы).
# a - easy
x = float(input())
if x > 0:
print("Молодец!")
else:
print("Не молодец")
8 Молодец!
# b - hard
x = input()
if x == "0":
print("Не молодец!")
else:
if x.startswith("-") == False:
if x.coun-t(".") == 1:
if x.replace(".", "").isdigit():
print("Молодец!")
else:
print("Это не число!")
elif x.isdigit():
print("Молодец!")
else:
print("Это не число!")
else:
if x.count(".") == 1:
if x[1:].replace(".", "").isdigit():
print("Не молодец!")
else:
print("Это не число!")
elif x[1:].isdigit():
print("Не молодец!")
else:
print("Это не число!")
-4.7 Не молодец!
# для желающих – конструкция try-except
# будем обсуждать потом
x = input()
try:
n = float(x)
if n > 0:
print("Молодец!")
else:
print("Не молодец!")
except:
print("Не число")
5 Молодец!
Напишите программу, которая запрашивает у пользователя пароль, и далее: