雪千梦 发表于 2020-11-4 20:14:34

作业007中*作用

作业007讲动动手最后一题也就是下面代码中*是什么作用?为什么能把外面的中括号去掉?
import random

red = random.sample(range(1, 34), 6)
blue = random.randint(1, 16)

print("开奖结果是:", *red)
print("特别号码是:", blue)

liuzhengyuan 发表于 2020-11-4 20:29:31

解包

Twilight6 发表于 2020-11-4 20:29:34


在 * 后加上变量名,一般有两种情况:

第一种,定义函数的参数时候,表示参数可以传入无限个,并把所有的参数全放在一个元组内

举个例子:def func(*temp):
    print(temp)
    print(type(temp))

func(1,2,'鱼',4,'C','论坛')

输出结果:
(1, 2, '鱼', 4, 'C', '论坛')
<class 'tuple'>   # 类型是元组


另一种就是直接对变量名前面加上,表示解包,将容器内的所有元素都取出返回,下面这也就是你问的 * 的另一种情况

举个例子:

temp =
print(temp)
print(*temp)

输出结果:

1 2 鱼 4 C 论坛   # 解包后的结果
页: [1]
查看完整版本: 作业007中*作用