运算符
算术元运算符
以下假设变量: a=10,b=20:
运算符 | 描述 | 实例 |
---|---|---|
+ | 加-两个对象相加 | a+b输出结果30 |
- | 减-得到负数或是一个数减去另一个数 | a-b输出结果-10 |
* | 乘-两个数相乘或是返回一个被重复若干次的字符串 | a*b输出结果200 |
/ | 除-x除以y | b/a输出结果2 |
% | 取模-返回除法的余数 | b%a输出结果0 |
** | 幂-返回x的y次幂 | a**b为10的20次方,输出结果100000000000000000000 |
// | 取整除-返回商的整数部分 | 9//2输出结果4,9.0/2.0输出结果4.0 |
'''
算术元运算符
'''
print(3*3)
print(3**3)
print(10/3) # 二进制的有穷性
print(9/3) # float
print(10//3) # 3.33333->3
print(10.0//3.0)
print(-10//3) # .3333->-4
print(10%3) # 1 10-9=1
print(-10%3) # -10//3 -4 -10-(-12)=2
# ipt = input('请输入')
# print(int(ipt)%2 == 0) # %取余
x = 10
y = 3
divmod(x,y) # (x//y,x%y)-->(商,余数)
print(divmod(x,y))
print(0.1+0.1+0.1-0.3) # 科学计算法 转为二进制
from decimal import Decimal
print(Decimal('0.1')+Decimal('0.1')+Decimal('0.1')-Decimal('0.3'))
注意:
1.为什么10/3为3.3333333333333335
知乎解答
2.做除法返回的是浮点数,并且都是向下取整
3.//为整除,所以返回的是整数部分,并不是整数类型。当除法与被除数有为浮点数的时候,返回的是整数部分的浮点数
4.取余也是先遵循向下取整的规则,divmod(x//y,x%y)–>divmod(商,余数)
理解:负数的取余运算可先合理化运算符号后算整除,再利用整除的结果得到取余,加上安排的符号得到结果
5.python中浮点数精读有些问题,比如常见的0.1+0.1+0.1-0.3输出的确是科学计算值。其中也是因为转为机器码