mathum

博客园 首页 新随笔 联系 订阅 管理

关于 / 和 // 以及 :

1 a=input("a=")
2 b=input("b=")
3 print(a//b)

报错,因为python输入默认为str,所以要进行简单的修改:

1 a=int(input("a="))
2 b=int(input("b="))
3 print(a//b)

这下就可以运行了,输入a=12,b=3,输出结果为4。

a=int(input("a="))
b=int(input("b="))
print(a/b)

输入a=12,b=3,输出结果为4.0。

这是因为商运算符 // 产生整数商,而精确除法运算符 / 总是产生浮点数。

 

当一个操作数是int而另一个是float时会发生什么呢?python如何执行这种话运算呢?

答:在执行运算之前,较不通用的类型(int)会暂时自动转换为较通用的类型(float)。

举例:比如我们计算一个圆形的面积

1 radius=input("radius=")
2 print(radius)
3 print(radius**2*3.14)

芜湖,这样肯定是报错的,因为这里radius的类型没有进行转换,是个str,接着进行简单的转换:

1 radius=int(input("radius="))
2 print(radius)
3 print(radius**2*3.14)
4 
5 结果:
6 radius=3
7 3
8 28.26

 

答案就出来咯,这样写能运行,是因为python在进行混合模式运算时,自动将int转换float了,更严谨些的话,应进行以下的代码:

1 radius=input("radius=")
2 print(radius)
3 radius=float(radius)
4 print(radius**2*3.14)

这样就可以啦,结果运算为:

1 radius=3
2 3
3 28.26

 

posted on 2020-09-11 15:21  mathum  阅读(1259)  评论(0编辑  收藏  举报