Python中执行a=10,时内部运行逻辑是什么,为何输出为(10,)?
运行逻辑说明
这是Python中元组的语法特性导致的:
- Python中元组的核心标识不是括号,而是元素末尾的逗号。只有单个元素的元组必须在元素后加逗号才能被识别为元组,否则只会被识别为普通的单个值。
- 你写的
a=10,里,末尾的逗号会被Python解析器识别为「这是一个单元素元组」,赋值给a的实际内容就是单元素元组(10,) - 用
print(a)输出的时候,Python会默认把元组的完整表示打印出来,单元素元组的标准表示形式就是带逗号的(10,),用来和带括号的单个数值(10)做区分,避免歧义。
你可以通过下面的代码验证这个规则:
print(type(10)) # 输出 <class 'int'> print(type((10))) # 输出 <class 'int'>,这里的括号仅被识别为运算优先级符号 print(type(10,)) # 输出 <class 'tuple'> print(type((10,)))# 输出 <class 'tuple'>
内容的提问来源于stack exchange,提问作者codeholic24
相关产品推荐
相关产品推荐

