基于Python3中運算符 **和*的區(qū)別說明
我們知道**代表次方。
如下
>>>12 * 12 144 >>>12 ** 2 144 >>>a=1e200 >>> a 1e+200 >>>a ** 2 Traceback (most recent call last): File "<stdin>", line 1, in <module> OverflowError: (34, 'Result too large') >>>a * a inf >>>a = 100 ** 100 # python3中int整型一般不會溢出,取決于內(nèi)存 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 >>>a * a,a ** 2 # 兩種方式都沒問題,int很大,不會溢出,取決于內(nèi)存 (10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) >>>float(a) * float(a) #float用這種方法,也不會溢出 inf >>>float(a) ** 2 #float用這種方式有可能溢出,注意?。?! Traceback (most recent call last): File "<stdin>", line 1, in <module> OverflowError: (34, 'Result too large')
補充:python3.8中運算符/和//區(qū)別
看下面這兩張圖:


5/5的結(jié)果為1.0,5//5的結(jié)果為1
6.0/5.0的結(jié)果為1.2,6.0//5.0的結(jié)果為1.0
由此可見,使用/運算符時,即使兩參數(shù)都是int,返回值都是float,而運算符//只有當(dāng)參數(shù)中含有float時,返回值是float,但是結(jié)果是取整的。
/和//的主要區(qū)別:
//運算符的結(jié)果是最小取整的,/運算符會保留小數(shù)位
補充:python3中運算符及其優(yōu)先級
1. 一般運算符:
+ - * /(真除法) % //(地板除-floor) **(冪運算)
2. 賦值運算符:
=
3. 增強運算符(增強賦值運算符)
+= -= *= /= %= **= //=
a+=1 (運行效率高)
a=a+1 (運行效率低)
4. 布爾運算符(比較運算符)
== > < >= <= !=
可以連續(xù)判斷:
3>2>1
True
3>2 and 2>1
True
5. 邏輯運算符
not and or 優(yōu)先級:
not優(yōu)先級最高
and
or 優(yōu)先級最低
6. 位運算符
位:二進制下的每一個位
<< >> :移位運算符
&:邏輯求與
|:邏輯求或
~:邏輯求非
^:邏輯求異或
7. 三元運算符
變量=(值1 if 布爾表達式 else 值2)
如果布爾表達式位真則返回值1否則返回值2
運算符中,三元運算符的優(yōu)先級最低
1. 先乘除后加減
2. 冪運算優(yōu)先級最高
3. 三元運算符優(yōu)先級最低
4. 元數(shù)越少,優(yōu)先級越高
冪運算:一元運算符
5. 優(yōu)先級從高到低排列:
冪運算
正負號
算數(shù)運算符(— = * /)
比較運算符(< > <= >=)
邏輯運算符(not and or)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
TensorFlow神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)之張量與變量概念
這篇文章主要為大家介紹了TensorFlow神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的基本知識張量與變量概念詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10
Python?設(shè)計模式創(chuàng)建型單例模式
這篇文章主要介紹了Python?設(shè)計模式創(chuàng)建型單例模式,即Singleton,單例是一種設(shè)計模式,應(yīng)用該模式的類只會生成一個實例,下文詳細介紹需要的小伙伴可以參考一下2022-02-02
pyqt5 comboBox獲得下標(biāo)、文本和事件選中函數(shù)的方法
今天小編就為大家分享一篇pyqt5 comboBox獲得下標(biāo)、文本和事件選中函數(shù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
matlab中imadjust函數(shù)的作用及應(yīng)用舉例
這篇文章主要介紹了matlab中imadjust函數(shù)的作用及應(yīng)用舉例,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02
python樹莓派通過隊列實現(xiàn)進程交互的程序分析
這篇博客就結(jié)合實際的python程序通過隊列實現(xiàn)進程交互,通過程序分析需要的庫函數(shù),對python樹莓派進程交互相關(guān)知識感興趣的朋友一起看看吧2021-07-07

