黎明zxc 发表于 2021-2-16 23:09:37

求助python编程问题

def round_to_next5(n):
    # Your code here
    if n%5!=0:
      n += 5 - n % 5
    else:
      n
    return n
print(round_to_next5(5))
输出是5
def round_to_next5(n):
    # Your code here
    n=n+5-n%5 if n%5!=0 else n
    return n
print(round_to_next5(5))
输出是5
def round_to_next5(n):
    # Your code here
    n+=5-n%5 if n%5!=0 else n
    return n
print(round_to_next5(5))
输出是10
为什么最后的程序输出不一样啊{:5_100:}

昨非 发表于 2021-2-16 23:13:34

本帖最后由 昨非 于 2021-2-16 23:37 编辑

再看看

黎明zxc 发表于 2021-2-16 23:18:56

{:5_103:}

黎明zxc 发表于 2021-2-16 23:20:37

if条件不成立啊{:5_100:}
5%5=0

黎明zxc 发表于 2021-2-16 23:27:24

昨非 发表于 2021-2-16 23:13
运算符优先级不对
第二个:
n=n+5-n%5这里 先取余再加减 ,最后赋值给n


if条件不成立

昨非 发表于 2021-2-16 23:29:14

黎明zxc 发表于 2021-2-16 23:27
if条件不成立

再看看哈

Daniel_Zhang 发表于 2021-2-16 23:40:13

昨非 发表于 2021-2-16 23:29
再看看哈

这个应该还是进入到的 else 而不是 if 里面的吧

因为else return 5 给的是 n +=

也就是 n+=5

即 n = 10

最后 return 10 给了 print 函数

他这个数字比较特别,把最后一个 if statement 下面 5-n % 5 的系数随便改,输出的数值都不会发生改变,说明并没有通过 if statement

昨非 发表于 2021-2-16 23:46:40

Daniel_Zhang 发表于 2021-2-16 23:40
这个应该还是进入到的 else 而不是 if 里面的吧

因为else return 5 给的是 n +=


if else语句的优先级高于赋值啊{:10_250:}
啊这,刚刚是我傻了{:10_266:}

黎明zxc 发表于 2021-2-16 23:52:51

昨非 发表于 2021-2-16 23:46
if else语句的优先级高于赋值啊
啊这,刚刚是我傻了

me too

昨非 发表于 2021-2-16 23:54:28

黎明zxc 发表于 2021-2-16 23:52
me too

抱歉刚刚没认真看,错解了
挺尴尬的哈{:10_266:}
页: [1]
查看完整版本: 求助python编程问题