c++用一级运算比较大小_1.1.2 python基本数据类型与运算符
本章引言
?????? ?任何計算機語言的學習都離不開其基礎中的基礎,即數據類型和運算;所以要學好一門語言必須具有扎實的基礎,后期是否能夠靈活使用就取決于第二章、第三章內容是否深而透。
變量含義
用來存儲一些之后可能會變化的值
對科比投籃ID為 1 的一次投籃進行分析,那么我們就可以創建一個名稱為 shot_id 的變量,并且將 1 值儲存在變量 shot_id 中
如果之后我們想要分析科比的另外一次投籃,比如投籃ID為 2 的投籃,我們只需要修改變量 shot_id 的賦值,將 shot_id 賦值為 2 即可
變量賦值
? ? ? ?通過賦值運算符 = 變量名和想要賦予變量的值連接起來,變量的賦值操作就完成了聲明和定義的的過程,在其他語言中需要制定類型;同一變量可以反復賦值,而且可以是不同類型的變量,這也是Python語言稱之為動態語言的原因
示例:>>>short_id=1
>>>print(short_id)
1
>>>type(short_id)
>>>short_>>>print(short_id)
1
>>>type(short_id)
變量名的命名規范
? ? ? ?在第一章節中提到基本語法中的命名規則要素,命名規范主要有駝峰式和蛇形式,在python中變量名習慣一般遵守蛇形命名法(snake case):
一般變量名,wood_id、wood_program_id;
類名首字符為大寫,如Python內置模塊collections.abc中的Iterable類
類方法名:get_wood_id();
其他特殊變量,會全部大寫,例如常量,MY_PI、MY_COUNT;
多個變量賦值
python允許同時為多個變量賦值。
表現形式為:number1=number2=number3....=值
例如:a = b = c = 1python還可以實現多個變量賦值使用一個語句完成
表現形式:number1,numbe2,numbe3=1,2,3
說明:
多個變量賦值中涉及非常重要的兩個概念:解包、封包
解包:實際就是將一組數據(元組)進行一一對應的賦值給每個變量,此種表示形式實際就是解包操作;
封包:如果一個變量進行賦予多個值的話,則表示的是該變量實際就是一個元組類型,該過程稱之為封包操作;
因為此處涉及元組的概念,所以在元組中還會詳細舉例,請理解概念。
常量
? ? ? ?常量表示“不能變”的變量Python中是沒有常量的關鍵字的,只是我們常常約定使用大寫字母組合的變量名表示常量,也有不要對其進行賦值”的提醒作用
PI=3.14159265
python數據類型
? ? ? ? python語言的數據類型包括整型、浮點型、字符串、布爾型和空值整型(int)整型的取值為整數,有正有負,如 2,-666,666 等。在科比投籃數據集中,shot_id是整型變量
Python有五個標準的數據類型:
Numbers(數字)
String(字符串)
List(列表)
Tuple(元組)
Dictionary(字典)
本章主要講以下幾種基本類型:數值型、布爾型和空值特殊類型
數值型
a1.整型:在python中其默認的數據類型就是int類型;
>>>number=10>>>type(number)
擴展說明:并且在python3.X中不存在long類型(已經舍去),理論上在python3.X版本中的int類型為無窮存儲(最大的數值范圍是2的六十四次方,可以通過sys模塊中maxsize;在python2.X版本中則獲取int的范圍是通過sys.maxint)
a2.浮點型:其數據類型是float類型;
>>>number=1.1>>>type(number)
擴展說明:
1.整形與浮點型之間可以實現數據類型的轉換;轉換使用函數int、float
2.在python中所有的值默認都是以十進制的形式進行表示;如果需要實現數值的進制轉換的話,則可以分別調用與之對應的函數或者使用int類對象進行完成;例如:int(第一個參數必須是str類型的值,base=可以是2,8,10,16)還可以使用0b表示二進制數據進行轉換成十進制,0o表示八進制轉換成十進制,0x表示十六進制轉換成十進制(對應的函數分別是:bin、oct、hex)
3.在計算機中都是以固定的多少位進行處理數據,如果一個數其轉換成二進制不足指定的位的話,則其對應的高位會采取補位補0操作;
a3.復數類型:表示形式是由實部+虛部 (z=a+bi);在python中表示的虛部的單位必須是j;
>>>number=1+1j>>>type(number)
擴展說明:number=2+3j可以通過復數對象中的real和imag兩個屬性分別獲取復數的實部和虛部的值注意:在python中同樣存在對應的ASCII碼轉換;分別使用的函數是ord、chr;例如:ord(需要傳入轉換成整型的一個字符)、chr(需要傳入整型數字)
bool類型
? ? ?布爾值可以進行 and 、 or 和 not 運算, and 和 or 運算分別用 & 和 | 表示not 運算為非運算,即把 True 變成 False , False 變成 True
邏輯判定型;只存在兩個值:True、False;常用的false的值有:""、0、[]、None、()、{}
空值類型
? ? ? ?空值是Python里一個特殊的值,用 None 表示,一般用 None 填充表格中的缺失值使用 type() 函數來獲取某值的類型
>>>type(None)類型轉換
? ? ? 函數 int()、float()、str() 和 bool() 分別用于將變量轉換成整型、浮點型、字符串和布爾型變量
>>>number1=1.2>>>int(number1)
1
>>>number2=2
>>>float(number2)
2.0
>>>number3=3
>>>str(number3)
'3'
>>>bool(number3)
True
思考:如果存在一個變量str1="hello",然后強制轉換成int,即int(str1),其結果是?
isinstance用法
????通過幫助查看如下:
作用:來判斷一個對象是否是一個已知的類型;
其第一個參數(object)為對象,第二個參數為類型名(int...)或類型名的一個列表((int,list,float)是一個列表)。其返回值為布爾型(True or flase)。
若對象的類型與參數二的類型相同則返回True。若參數二為一個元組,則若對象類型與元組中類型名之一相同即返回True。
簡單來說就是判斷object是否與第二個參數的類型相同,舉例如下:
# -*- coding: utf-8 -*-test_str?=?'123'print(isinstance(test_str,str))#判斷test_str是否是字符串類型test_int?=?123print(isinstance(test_int,int))?#判斷ttest_int是否是int類型test_float = 1.23print(isinstance(test_float,float))#判斷test_float是否是float類型test_bool = Trueprint(isinstance(test_bool,bool))#判斷test_bool是否是bool類型ASCII碼獲取
? ? ? ?實現ASCII碼與字符相互轉換:其中ord()與chr()函數均為Python內置函數。ord()函數接受一個字符類型參數,并返回一個十進制整數chr()函數則為ord()函數的配對函數,其接受一個整型參數,并返回一個與其ASCII碼相對應的字符。
>>> ord('A')65
>>> chr(65)
'A'
運算符
? ? ? ?運算符和操作對象是計算機中比較常見的,任何的計算,都涉及到運算符和操作對象。數學學習的加(+)、減(-)、乘(*)、除(/)等都是運算符。操作對象就是由運算符連接起來的對象。以下為python常用運算符說明以及操作。
算術運算符
以下變量a為10,變量b為5:
| + | 加:兩個對象相加 | a+b輸出結果15 |
| - | 減:得到復數或者是一個數減去另一個數 | a-b輸出結果5 |
| * | 乘:兩個數相乘或者是返回一個被重復若干次的字符串 | a* b輸出結果是50 |
| / | 除:x除以y | a/b輸出結果2 |
| % | 取模:返回除法的余數 | b%a 輸出結果0 |
| ** | 冪:返回x的y次冪 | a** b 為10的5次方,輸出結果100000 |
| // | 取整除(地板除):返回商的整數部分 | 9//2輸出結果4,9.0//2.0輸出結果4.0 |
比較運算符
以下變量a為10,變量b為20:
| == | 等于:比較對象是否相等 | (a==b) 返回False |
| != | 不等于:比較兩個對象是否不相等 | (a!=b) 返回True |
| > | 大于:返回x是否大于y | (a>b) 返回False |
| < | 小于:返回x是否小于y | (a |
| >= | 大于等于:返回x是否大于等于y | (a>=b) 返回False |
| <= | 小于等于:返回x是否小于等于y | (a<=b) 返回True |
賦值運算符
以下變量a為10,變量b為20:
| -= | 減法賦值運算符 | c-=a等價于c=c-a |
| * = | 乘法賦值運算符 | c*=a等價于c=c* a |
| /= | 除法賦值運算符 | c/=a等價于c=c/a |
| %= | 取模賦值運算符 | c%=a等價于c=c%a |
| ** = | 冪賦值運算符 | c**=a等價于c=c** a |
| //= | 取整除賦值運算符 | c//=a等價于c=c//a |
邏輯運算符
Python語言支持邏輯運算符,以下變量a為10,變量b為20:
| And | x and y | 布爾"與" - 如果 x 為 False,x and y 返回 False,否則它返回 y的計算值 | (a and b) 返回 20 |
| Or | x or y | 布爾“或” - 如果 x 是非 0,它返回 x 的值,否則它返回 y 的計算值 | (a or b) 返回 10 |
| Not | not x | 布爾“非” - 如果 x 為 True,返回 False 。如果 x 為 False,它返回 True | not(a and b)返回False |
位運算符
| & | 按位與運算符 | (a&b)輸出結果是12 二進制解釋:0000 1100 |
| | | 按位或運算符 | (a|b)輸出結果四61 二進制解釋:0011 1101 |
| ^ | 按位異或運算符 | (a^b)輸出結果是49 二進制解釋:0011 0001 |
| ~ | 按位取反運算符 | (~a)輸出結果是-61 二進制解釋:1100 0011 在一個有符號二進制數的補碼形式 |
| << | 左移動運算符:< | a << 2 輸出結果 240 ,二進制解釋:1111 0000 |
| >> | 右移動運算符 | a >> 2 輸出結果 15 ,二進制解釋:0000 1111 |
擴展內容:原碼、反碼、補碼
數字在自然界中抽象出來的時候,一棵樹,兩只豬,是沒有正數和負數的概念的
計算機保存最原始的數字,也是沒有正和負的數字,叫沒符號數字
如果我們在內存分配4位(bit)去存放無符號數字,是下面這樣子的
后來在生活中為了表示“欠別人錢”這個概念,就從無符號數中,劃分出了“正數”和“負數”
正如上帝一揮手,從混沌中劃分了“白天”與“黑夜”
為了表示正與負,人們發明了"原碼",把生活應該有的正負概念,原原本本的表示出來
把左邊第一位騰出位置,存放符號,正用0來表示,負用1來表示
但使用“原碼”儲存的方式,方便了看的人類,卻苦了計算機
我們希望 (+1)和(-1)相加是0,但計算機只能算出0001+1001=1010 (-2)
這不是我們想要的結果!!
另外一個問題,這里有一個(+0)和(-0)
為了解決“正負相加等于0”的問題,在“原碼”的基礎上,人們發明了“反碼”
“反碼”表示方式是用來處理負數的,符號位置不變,其余位置相反
當“原碼”變成“反碼”時,完美的解決了“正負相加等于0”的問題
過去的(+1)和(-1)相加,變成了0001+1101=1111,剛好反碼表示方式中,1111象征-0
人們總是進益求精,歷史遺留下來的問題—— ?有兩個零存在,+0 和 -0
我們希望只有一個0,所以發明了"補碼",同樣是針對"負數"做處理的
"補碼"的意思是,從原來"反碼"的基礎上,補充一個新的代碼,(+1)
我們的目標是,沒有蛀牙(-0)
有得必有失,在補一位1的時候,要丟掉最高位
我們要處理"反碼"中的"-0",當1111再補上一個1之后,變成了10000,丟掉最高位就是0000,剛好和左邊正數的0,完美融合掉了
這樣就解決了+0和-0同時存在的問題
另外"正負數相加等于0"的問題,同樣得到滿足
舉例,3和(-3)相加,0011 + 1101 =10000,丟掉最高位,就是0000(0)
同樣有失必有得,我們失去了(-0) , 收獲了(-8)
以上就是"補碼"的存在方式
結論:保存正負數,不斷改進方案后,選擇了最好的"補碼"方案
參考信息:運算符優先級
| ** | 指數(最高優先級) |
| ~+- | 按位反轉,一元加號、減號(最后兩個方法名為+@和-@) |
| * / % // | 乘、除、取模、取整除 |
| + - | 加法、減法 |
| >> << | 右移、左移動運算符 |
| ^ | | 位運算符 |
| <= < >= > | 比較運算符 |
| <> != == | 等于運算符 |
| = += -= * = /= ** = | 賦值運算符 |
| is is not | 身份運算符 |
| in not in | 成員運算符 |
| not and or | 邏輯運算符 |
練一練
下列各賦值語句,語法不正確的是? ( ?? )
A. x+y=5????
B. BiNumber =15????
C. Labell.caption =time????
D. s_Length =x+y
下列給出的賦值表達式中正確的是( )
A.4 = M?????
B.-M = M?????????????????
C.B = A – 3?????????????
D.X + Y = 0
下列程序運行后,變量x的值為(? ? )
x=2
print(x+l)
print(x+2)
A、2????????????
B、3????????????????????????????
C、4????????????????????????????????????
D、5
設a=2,b=3,c=4,d=5,下列表達式的值是(?? )。
a<=c or 4* c==b ^2 and b+c==d
A. -1?????
B.0????
C. True????
D. False
聲明兩個變量number1=”11”,number2=”22”計算上面兩個變量的位與運算結果、位取反運算結果(公式:-(a+1)=-12 實際就是取當前數值原碼所對應的反碼)、左移動運算結果;要求寫出其分析過程?
小結
Python第二章內容的學習,需要全面理解Python的基本數據類型的使用以及常用的運算符使用。
咨詢了解更多請掃碼添加
總結
以上是生活随笔為你收集整理的c++用一级运算比较大小_1.1.2 python基本数据类型与运算符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java实现图形界面输入半径求圆面积_测
- 下一篇: python画完图 程序暂停运行_[Py