Python 3中的升序和降序

时间:2017-06-01 19:19:02

标签: python python-3.x

刚开始学习Python,这是我的问题:

我正在输入 a b ,如果是<然后输出a到b按升序排列。如果a> b然后输出按降序排列。当我放入< b它有效,但是当> b时它什么也没给我。这是代码:

a = int(input('input a number for a: '))
b = int(input('input a number for b: '))

numbers = list(range(a, b + 1))

if a < b:
    print(numbers)

else:
    numbers.sort(reverse=True)
    print(numbers)

这是&gt;的输出。 B:

input a number for a: 10
input a number for b: 1
[]

处理完成,退出代码为0

5 个答案:

答案 0 :(得分:0)

当a为10且b为2时,您的代码正在执行:

numbers = list(range(min(a, b), max(a, b) + 1))

也许你想这样做:

Array.from(document.querySelectorAll('[id^="switch-wrapper-"] input[type=checkbox]')).forEach(function(elem){
    elem.onchange=function(){
        this.parentNode.querySelector('p').innerHTML = (this.checked) ? 'Not Visible' : "Visible";          
        var data = '#card-'+ this.id.split('-')[1];
        document.querySelector(data).classList.toggle('card-disabled');
        $.ajax({
            data: {data},
            type: 'POST',
            url: 'backend/menu/disable-item.php',
            success: function (data) {
                console.log($("#visibilityList").serializeArray = data);
            }
        });
    }
});

答案 1 :(得分:0)

怎么样

a = int(input('input a number for a: '))
b = int(input('input a number for b: '))

print(list(range(a, b + (b >= a) - (a > b), 1 - 2 * (a > b))))

答案 2 :(得分:0)

因为打印的最后一个值range()start + step * i的最大值,小于end。如果end小于startstep为正数,则没有符合该条件的数字:

10 + i * 1永远不会小于1(其中i是正整数)

相反,请在范围之前执行此操作:

if a > b:
    a, b = b, a

如果情况并非如此,它将确保a始终是向前移动的较小数字。

如果您想保留升序/降序:

if a > b:
    a, b = b, a
    rev = True

然后,在构建列表之后

if rev:
    numbers.reverse()

答案 3 :(得分:0)

好的,你想做的就是这个......

a = int(input('input a number for a: '))
b = int(input('input a number for b: '))

list = []

if a > b:
    while a > b: 
        list.append(a)
        a -= 1

答案 4 :(得分:0)

您可以将numbers更改为以下内容:

numbers = list(range(a, b + 1)) if a < b else list(range(b, a + 1))

你的代码就可以了。您也可以通过以下方式缩短代码:

a = int(input('input a number for a: '))
b = int(input('input a number for b: '))
numbers = list(range(a, b+1)) if a < b else list(range(b, a+1))
print numbers if a < b else sorted(numbers, reverse=True)