диапазон отрицательных шагов, начиная с отрицательного, не появляющегося в списке - PullRequest
0 голосов
/ 04 марта 2020

У меня есть код, где положительные числа в порядке, но отрицательные не работают.

Я попытался напечатать часть x= range(-1 , n , -1), когда я вводил отрицательный n, чтобы проверить, что не так, все это:

печатать [-1, -5, -1], когда я ввожу, например, -5

Может ли кто-нибудь проверить мой код на предмет ошибок

n = int(input("enter a number:"))

if n>=0:
  x = range(int(1),n)
  list_1 = [x+1 for x in range(n)]
  list_1.insert(0,"m")
  list_2 = [x+2 for x in range(n)]
  list_2.insert(0,"m+1")
  list_3 = [(x+1) ** (x+2) for x in range(n)]
  list_3.insert(0,"m**(m+1)")
  list_of_lists = [list_1, list_2, list_3]


  for a in zip(*list_of_lists):
        print(*a, sep = '\t', end = '\n')

elif n<0:
    x = range(-1,n,-1)
    list_1 = [x+1 for x in range(n)]
    list_1.insert(0,"m")
    list_2 = [x+2 for x in range(n)]
    list_2.insert(0,"m+1")
    list_3 = [(x+1) ** (x+2) for x in range(n)]
    list_3.insert(0,"m**(m+1)")
    list_of_lists = [list_1, list_2, list_3]

    for a in zip(*list_of_lists):
        print(*a, sep = '\t', end = '\n')

1 Ответ

0 голосов
/ 04 марта 2020

range(-5) не даст результатов, вы должны сказать, чтобы повторить вниз

r = range(0, n, -1)
list_1 = [x + 1 for x in r]
list_1.insert(0, "m")
list_2 = [x + 2 for x in r]
list_2.insert(0, "m+1")
list_3 = [(x + 1) ** (x + 2) for x in r]
list_3.insert(0, "m**(m+1)")
list_of_lists = [list_1, list_2, list_3]

for a in zip(*list_of_lists):
    print(*a, sep='\t', end='\n')

Вывод

m   m+1 m**(m+1)
1   2   1
0   1   0
-1  0   1
-2  -1  -0.5
-3  -2  0.1111111111111111
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...