Программа должна принимать такое значение, как 3, и возвращать следующий список:
[10.1 , 11.1 , 12.1 , 13.1 , 10.2 , 11.2 , 12.2 , 13.2 , 10.3 , 11.3 , 12.3 , 13.3]
Посмотрите, как значение 3 вернет 3 набора целых чисел в диапазоне от 10 до 13, при этом последний десятичный разделитель будет увеличиваться на 1 каждый набор.
Вот мой текущий цикл (не работает), который возвращает список [10.1,11.1,12.1,13.1,14.1,15.1,16.1]
, если "значение" равно 7, например
emptyList=[]
adder=10
for g in range(0,value):
if value > 3 and value < 13:
emptyList.append(adder+0.1)
adder+=1
return emptyList
Первая проблема: из-за неточности чисел с плавающей запятой на самом деле не существует такой вещи, как «последняя цифра».
l = []
adder = 10
value = 3
for i in range (1, value + 1):
for j in range(0, value + 1):
l.append(adder + i/10 + j)
Вы можете использовать понимание единого списка следующим образом. Здесь j
перебирает 10 до последнего числа, которое вам нужно, а i
находится в диапазоне от 1 до 3. i/10
дает вам дробную часть.
lst = [j+i/10 for j in range(10,14) for i in range(1,4)]
print (lst)
# [10.1, 10.2, 10.3, 11.1, 11.2, 11.3, 12.1, 12.2, 12.3, 13.1, 13.2, 13.3]
Начнем с того, что вы никогда не меняете значение после десятичной точки ...