Python 运算符

对于简单的加法在Python内没有太多的不同,但是我们需要考虑到与C不同的各种变量类型

 对于C语言运算符而言,存在一个特性,即类型小的的会在运算过程中自动转换为类型大的

所以存在char -> short -> int -> unsigned int -> long -> double 自动转换其中float -> double

也就是一个int型变量 + 一个 unsigned int 型变量会变成unsigned int型变量。

同时定义的浮点常数默认是double型很占空间,可以添加2.0f表示为float型

那么现在开始Python的部分。

其中在整形这部分遇到一个很奇怪的问题。

首先程序里面我们通过

import sys
intsize= sys.maxsize

print(intsize)

输出 2147483647 很正常 即2^31 -1所以范围是在-2147483648 --2147483647之间

但是这么操作了一下,我就很懵逼,希望有大佬评论解决一波(我是真萌新选手)

i = 11111111111111

print(int(i))

输出11111111111111显然越界了 后来百度了一波后在这个链接下是这么说的

python在做数值计算好像没有越界的问题,就看机器承受能力

但做位运算就会显现字节问题,尤其是取反操作会有点混乱(个人感觉)应该是对的吧

回归正题乘法和加法与C一致不多说

然后除法的话 

>>>1 / 2

0.5

>>>1 / 1

1.0

也就是在单除法运算符下面输出的结果默认是单精度float型类型数据

如果需要进行整除运算这需要使用//这是会自动丢弃掉小数部分

>>> 1//2
0

>>> 5.0//2.0

2.0

注意类型和运算符的俩边决定,同时也是遵循C语言内的原则低类型向高类型转换

>>> 5.0//2

2.0

然后是取余运算,%号的使用 在C语言内%要求左右都必须为整数不然会报错但是Python显然不需要

>>> 2.75%0.5

0.25

Python中还有一个很重要的概念就是圆整的概念,都表现为向下圆整

举几个例子:

>>> 10 % -3  #只有12对3取余为0所以为-2 于是计算出-2,计算出来的应该是远离0更大范围
-2
>>> -10 % 3#只有12对3取余为0所以为2 于是计算出2
2
>>> -10 % -3

-1

然后是整除部分的

>>> 10//-3
-4
>>> -10//3
-4
>>> -10//-3
3

最后是幂函数用**表示

>>> 2**3
8
>>> -3**2
-9
>>> (-3)**2

9

这运算符计算过程中需要考虑到运算符的运算优先级的问题





  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值