首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python在添加两个变量时选择的默认值是什么?

Python在添加两个变量时选择的默认值是什么?
EN

Stack Overflow用户
提问于 2016-09-05 21:10:12
回答 4查看 647关注 0票数 1

假设我们有以下上下文:

代码语言:javascript
运行
复制
x = 3  
y = 4  
z = x + y

zint还是float等等?我很清楚浮点数是以.something结尾的,但我不清楚它是否会偏向浮点数类型而不是整数类型,因为用户是否要将这个变量更改为另一种类型是不可预测的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-09-05 21:13:11

当混合类型时,您总是会得到“宽”类型,其中复数比浮点数宽,而浮点数又比整数宽。当两个值都是相同类型(所以不是混合类型)时,您将得到一个类型作为结果。

来自 documentation

Python完全支持混合算法:当二进制算术运算符具有不同数值类型的操作数时,“窄”类型的操作数被扩展到另一种操作数,其中普通整数比长整数窄,浮点比复数窄。混合类型数之间的比较使用相同的规则。

因此,当您将不同类型的数字相加时,Python会将较窄的类型扩展为与更广泛的类型相同。对于具有整数和浮点数的操作,您将得到一个浮点数,因为浮点数更宽。

但是,如果两个操作数都是相同的类型,则没有必要更改该类型。在这种情况下改变类型将是非常令人惊讶的。

票数 3
EN

Stack Overflow用户

发布于 2016-09-05 21:25:19

例如:

代码语言:javascript
运行
复制
>>> type(3 + 4)
<class 'int'>
>>> type(3.0 + 4)
<class 'float'>
>>> type(3.0 + 4.0)
<class 'float'>

如果浮点数或整数之间的差异对您的应用程序很重要,请显式地将用户输入转换为浮点数,以便您知道每次处理的是什么。

代码语言:javascript
运行
复制
user_input = float(input())
票数 1
EN

Stack Overflow用户

发布于 2016-09-05 22:16:04

这很容易测试。默认情况下,如果对两个整数执行算术,Python将将结果存储为整数。你可以在这里看到。

代码语言:javascript
运行
复制
>>> x = 1
>>> y = 2
>>> z = x + y
>>> type(z)
<class 'int'>

type函数将告诉您在Python中对象的类型是什么。这里我们可以看到z变量的类型是int,它代表整数。

如果我们要对两种不同的类型(例如整数和浮点数)执行算术,并且结果是十进制,那么结果将被存储为浮点数。

代码语言:javascript
运行
复制
>>> x = 2.55
>>> y = 3
>>> z = x / 3
>>> type(z)
<class 'float'>

现在,如果要对整数和浮点数执行算术,结果将以非十进制形式出现,Python仍然会将其存储为浮点数。你可以在这里看到。

代码语言:javascript
运行
复制
>>> x = 2.5
>>> y = 1.25
>>> z = x / y
>>> type(z)
<class 'float'>
>>> print(z)
2.0

总之,在执行算术时,Python只在涉及的两个数字也是整数的情况下才会将结果存储为整数。如果一个变量是浮点数,那么新变量也将是浮点数类型(或类)。

希望这会有所帮助:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39337729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档