Python

Задача на тему циклов по программированию на языке Python, помогите.

Дано целое число N (> 2) и две вещественные точки на числовой оси: A, B (A < B). Отрезок [A, B] разбит на равные отрезки длины H с концами в N точках вида A, A + H, A + 2H, A + 3H, ..., B. Вывести значение H и набор из N точек, образующий разбиение отрезка [A, B].
Alijon Azizhanov
Alijon Azizhanov
101
Набивание точек в промежуточный список не нужно.
 n, a, b = (f(s) for f, s in zip((int, float, float), input().split()))
h = (b - a) / (n - 1)
print(h)
print(*(a + h * i for i in range(n)))
Можно избавиться и от умножений, но это удлинит путь вычисления значений точек, увеличится погрешность, и придётся округлять:
 from itertools import accumulate, chain, repeat
n, a, b = (f(s) for f, s in zip((int, float, float), input().split()))
h = (b - a) / (n - 1)
print(h)
print(*(round(x, 14) for x in accumulate(chain([a], repeat(h, n - 1)))))
Дени Мухин
Дени Мухин
87 571
Лучший ответ
N = int(input("Введите целое число N (> 2): "))
A = float(input("Введите вещественное число A: "))
B = float(input("Введите вещественное число B (A < B): "))

H = (B - A) / (N - 1) # вычисляем длину отрезка H
points = [] # создаем пустой список для точек

for i in range(N):
points.append(A + i * H) # добавляем новую точку в список

print("Длина отрезка H: ", H)
print("Набор точек: ", points)
 n = int(input("Введите целое число N (> 2): ")) 
a = float(input("Введите вещественную точку A: "))
b = float(input("Введите вещественную точку B (должна быть больше A): "))

h = (b - a) / (n - 1)

points = [a + h * i for i in range(n)]

print("Значение H = ", h)
print("Набор точек:")
print(points)