python:为什么加了逗号,输出为一行;若去掉逗号则输出为一列?

Python018

python:为什么加了逗号,输出为一行;若去掉逗号则输出为一列?,第1张

这个问题你需要理解什么是元组

python中加逗号后是一个元组(tuple),比如 “a=0,1,2”,那么a就是包含三个元素0,1和2的元组,该元组的长度为三。而只有一个元素,并且加了逗号后,也是元组,比如“a=0,”,表示a是长度为1的元组。若没加逗号,则是单纯的赋值:“a=0”,表示a是整数0。

你发的代码中,*a表示的是函数的所有输入参数,这样写后,a就是输入参数的元组,本事就是一个元组,然后,返回的时候又加了个逗号,表示的也是包含a这个元组的元组

简单的说,你发的代码中,func里面返回值加逗号后,func(1,2,3)返回的是((1,2,3)),是长度为一,其中元素也是元组的元组,不加逗号,func(1,2,3)返回的是(1,2,3),是长度为三,元素为整数的元组。

遍历((1,2,3))获取的是一个元素:(1,2,3)

遍历(1,2,3)获取的是三个元素:1,2,3

你先从简单的来吧:

理解下这四个函数a代表的是什么,函数输入参数是什么,函数返回值又分别是什么

def func(a):

return a

def func(a):

return a,

def func(*a):

return a

def func(*a):

return a,

对于函数返回值l=func(???),你可以print(type(l))看看它是什么类型,也可以print(l)看看它是什么。

f1, f2 = f2, f1+f2 不能拆成 f1 = f2 f2 = f1 + f2 。

原因:f1 = f2 f2 = f1 + f2 中第二个式右边的 f1 会使用第一个式子赋值更新后的值,但是f1, f2 = f2, f1 + f2 用的是初始赋值,也即这个式子 f2 的结果不依赖于 f1 = f2 计算的 f1 值,而是使用的 f1 = f2 赋值以前给 f1 的值。简单的说就是f1, f2 = f2, f1 + f2 中右边的值全是这个式子计算以前的初始值,但是拆成两个语句的话出现了先后执行的顺序问题,此时的情况就完全不一样了。如果是f1, f2 = f2, f3 + f2,那么拆成 f1 = f2 f2 = f3 + f2 是完全没问题的。