print函数的输出参数中函数运算与变量输出的优先级顺序

先给出结论

print的参数中如果有函数,会先依次运行各个函数结果,再依次输出函数和变量。

注意:如果某些函数能直接修改变量,如:

print(a, func1(a), a, func2(a), a)

那么输出的3个a:

不是

[原始a,func1返回值,func1处理后的a,func2返回值,func2处理后的a]

而是

[func1和func2处理后的a,func1返回值,func1和func2处理后的a,func2返回值,func1和func2处理后的a]

具体情况

下图中,第三行print,明明在a.sort()前后各应输出a,即sort前的a与sort后的a,但是却输出结果显示两个a的输出都是sort后的。

从此现象推断,如果print中有函数,那么会先运行函数,再依次输出。

所以先运行第一个add(a),此时a是原始值

然后运行a.sort(),对a进行排序,这导致a变成升序的a

然后运行add(a), 只是这时的a是升序的a

所有函数运算完成后,再依次输出,注意2个输出的a都会输出升序的a

进一步验证

在上图中的第三行print,末尾加入新的排序函数,检查是否这个函数的加入会对其他函数运算与a的输出带来影响。

a = [1,10,2,4]
def add(a):
    return [2*i for i in a]
print(a)
# print(add(a), a)
print(add(a),a, a.sort(), a, add(a), a, a.sort(reverse=True), a, add(a))

末尾新增的输出内容为: a, a.sort(reverse=True), a, add(a))

输出显示,所有的a都是降序的a,即经过了新增的降序排列函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值