为何Jupyter Notebook中执行type(x)仅输出str,未输出int?
为什么Jupyter Notebook只输出最后一个
type()的结果? 这问题我太熟啦!在Jupyter Notebook里出现这种情况,核心原因是它的单元格输出规则在起作用~
咱们先拆解你的代码:x=1; type(x); x="sss"; type(x),你把四条语句用分号挤在了一行里,但Jupyter的单元格执行逻辑是:
- 会按顺序执行所有语句,但只会自动显示最后一个有返回值的表达式的结果
- 前面的表达式(比如第一个
type(x))的返回值会被默默丢弃,不会主动输出给你
举个更直观的例子,哪怕你把代码拆成多行写:
x = 1 type(x) # 这个结果不会显示 x = "sss" type(x) # 只有这个最后一个表达式的结果会被输出
你依然只会看到<class 'str'>,因为Jupyter默认只“汇报”最后一个表达式的返回值。
怎么让两个类型结果都显示出来?
有两个简单的解决办法:
- 用
print()主动输出:把每个需要查看的结果用print()包裹,强制输出内容
这样就能依次看到x=1 print(type(x)) x="sss" print(type(x))<class 'int'>和<class 'str'>了。 - 让多个结果成为最后一个表达式的一部分:比如把两个结果打包成元组,作为最后一个表达式
这时候会输出x=1 t1 = type(x) x="sss" t2 = type(x) t1, t2 # 最后输出这个元组,就能同时看到两个类型(<class 'int'>, <class 'str'>),也能达到目的。
另外补充个小细节:像x=1这种赋值语句本身是没有返回值的,所以哪怕你把赋值语句放在单元格最后,也不会有任何输出——只有像type(x)这种能产生返回值的表达式,才会被Jupyter自动显示哦~
内容的提问来源于stack exchange,提问作者user8693083
相关产品推荐
相关产品推荐

