Невозможно печатать в восходящем и нисходящем диапазоне в цикле for - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь создать правило if else в цикле for, но в настоящее время значения печатаются только в том случае, если начальное значение меньше конечного значения.Я хочу, чтобы диапазон печатался в порядке убывания, если начальное значение больше конечного.

Я пробовал несколько разных вариантов, но в идеале я пытаюсь создать код, используя только два цикла for.

for i in range(x,y+1):
    if (x<=y):
      print(i) 
    else:
     for i in range(y,x,-1):
      print(i)
count_odd = 0 
count_even = 0 
for n in range(x,y+1):
        if   n%2==0: 
             count_even = count_even+1 
        else: 
             count_odd = count_odd+1 
print("Number of even numbers :",count_even)
print("Number of odd numbers :",count_odd) 

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Вам нужно обрабатывать их по-разному и вызывать определенную функцию, как только наступит условие.Вот пример.

x = 1
y = 10


def descOrder(x,y):
    count_even = 0
    count_odd = 0
    for i in range(x, y-1, -1):
        if i % 2 == 0:
            count_even = count_even + 1
        else:
            count_odd += 1
        print(i)
    print ("Even:",count_even, "Odd:",count_odd)


def asceOrder(x, y):
    count_even = 0
    count_odd = 0
    for i in range(x ,y+1):
        if i % 2 == 0:
            count_even += 1
        else:
            count_odd += 1
        print(i)
    print ("Even:",count_even, "Odd:",count_odd)


if x > y:
    descOrder(x, y)
else:
    asceOrder(x, y)
0 голосов
/ 18 февраля 2019

Поместите условие в ваш код, если x<y и используйте range соответственно в порядке возрастания или убывания:

x = 10
y = 2
count_odd = 0 
count_even = 0 
if x < y:
    for n in range(x,y+1):
        if n%2==0: 
            count_even = count_even+1 
        else: 
            count_odd = count_odd+1 
else:
    for n in range(x, y-1, -1):
        if n%2==0: 
            count_even = count_even+1 
        else: 
            count_odd = count_odd+1 

print("Number of even numbers :",count_even)
print("Number of odd numbers :",count_odd) 

Вывод:

Number of even numbers : 5                                                                                                            
Number of odd numbers : 4 

Редактировать

И ваш начальный for цикл должен быть:

if (x<=y):
    for i in range(x,y+1):
        print(i) 
else:
    for i in range(x,y-1,-1):
        print(i)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...