Mam ten kod i próbuję wydrukować tylko jedną wiadomość ze wszystkimi wynikami, ale zamiast tego wypisuję każdą wiadomość z wynikiem, który staje się okropny.

a = int(input('First Integer: '))
b = int(input('Second Integer: '))
if a < b:
    for i in range(a, b + 1):
        print('The Numbers in Ascending Order Are: ', i)
else:
    for i in range(a, b - 1, -1):
        print('The Numbers in Descending Order Are: ', i)

-2
Andres Guevara Aguirre 1 kwiecień 2020, 19:22

5 odpowiedzi

Najlepsza odpowiedź

Aby uniknąć powtarzania wiadomości, wyjmij ją z pętli for, na przykład:

a = int(input("First Integer:"))
b = int(input("Second Integer:"))
if (a < b):
    print("The numbers in ascending order are:")
    for number in range(a, b + 1):
        print(number)
else:
    print("The numbers in descending order are:")
    for number in range(a, b - 1, -1):
        print(number)

Przykładowe wyniki:

First Integer:5
Second Integer:2
The numbers in descending order are:
5
4
3
2

First Integer:2
Second Integer:4
The numbers in ascending order are:
2
3
4
0
tandontburn 1 kwiecień 2020, 17:01

Przede wszystkim wydrukuj komunikat zamówienia przed każdą pętlą for. Po drugie, możesz użyć range w następujący sposób:

a = int(input('First Integer: '))
b = int(input('Second Integer: '))

if a < b:
    print('The Numbers in Ascending Order Are: ')
    for i in range(a,b + 1): # adding 1 to include b
        print(i)
else:
    print('The Numbers in Descending Order Are:')
    for i in range(a , b - 1, -1): # reducing 1 to include b
        print(i)

Wejście:

First Integer: 1
Second Integer: 5

Wynik:

1
2
3
4
5

Wejście:

First Integer: 5
Second Integer: 1

Wynik:

5
4
3
2
1
3
Eyal Golan 1 kwiecień 2020, 17:29

Musisz poprawić swoją drugą pętlę, a każda wiadomość powinna zawierać wynik pętli, a nie każdy element.

a = int(input('First Integer: '))
b = int(input('Second Integer: '))
asc = ", ".join([str(i) for i in range(a, b + 1)])
desc = ", ".join([str(i) for i in range(b, a - 1, -1)])

if a < b:
    print(f'The Numbers in Ascending Order Are: {asc}')
    print(f'The Numbers in Descending Order Are: {desc}')
0
Victor Silva 1 kwiecień 2020, 16:35

Nie drukuj wtedy każdego elementu w pętli.

Zamiast tego napisz.

Kod

a = int(input('First Integer: '))
b = int(input('Second Integer: '))
if a < b:
  print(f'The Numbers in Ascending Order Are: {list(range(a, b+1))}')

else:
  print(f'The Numbers in Descending Order Are: {list(range(a, b-1, -1))}')

Wyjście

enter image description here

enter image description here

Inne podejście z pętlą for

a = int(input('First Integer: '))
b = int(input('Second Integer: '))
if a < b:
  temp = []
  for i in range(a, b + 1):
    temp.append(i)
  print('The Numbers in Ascending Order Are: ', temp)
else:
  temp = []
  for i in range(a, b - 1, -1):
    temp.append(i)
  print('The Numbers in Descending Order Are: ', temp)

Wyjście

2
Saimon 1 kwiecień 2020, 16:52

Możesz je sortować:

a = int(input("First Integer"))
b = int(input("Second Integer"))
c = [a,b]
if a < b:
  sorted(c)
else:
  sorted(c,reverse=True)
-1
Wasif Hasan 1 kwiecień 2020, 16:27