python基礎-基本數據類型
重新做人系列 拒絕瞎操作
一、進制轉換
- 十進制:逢10進1,1,2,3,4,5,6,7,8,9,10,11······
- 二進制:逢2進1, 001,010,011,100,101,110,111······
- 八進制:逢8進1,1,2,3,4,5,6,7,10,11,12,13,14,15,16,20······
- 十六進制:逢16進1,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
- 二進制 -> 十進制:10010010 -> 146,2**7+2**4+2**1
- 二進制 -> 八進制:10010010 -> 0o222, 10(2) 010(2) 010(2)
- 二進制 -> 十六進制:10010010 -> 0x92, 1001(9) 0010(2)
二、數據類型
三、標識符和關鍵字
- 標識符由字母、下劃線和數字組成,且數字不能開頭。
- 標識符是區分大小寫的:Andy != andy。
- 命名規則:見名字知意。
- 小駝峯式命名法(lower camel case): 第一個單詞以小寫字母開始;第二個單詞的首字母大寫,例如:myName、aCat。
- 大駝峯式命名法(upper camel case): 每一個單字的首字母都採用大寫字母,例如:FirstName、LastName。
- 還有一種命名法是用下劃線“_”來連接所有的單詞,比如send_buf。
- 關鍵字是已經被python預定義,且具有特殊含義的標識符,不允許開發者自行定義和關鍵次相同名字的變量,否則會引起程序錯誤。
注:如何在python中查看關鍵字?
>>> import keyword
>>> keyword.kwlist
四、python中的輸出
(一)佔位符
>>> age = 10
>>> print('我今年%d歲了'% age)
我今年18歲了
(二)轉義符
1. 可以用反斜槓對雙引號進行轉義。
>>> print("I l\"o\"ve you")
I l"o"ve you
2、可以用單引號引起這個字符串。
>>> print("I l'o've you")
I l'o've you
- 式符號和格式化操作符輔助命令
格式符號 | 轉換 |
---|---|
%s | 通過str() 字符串轉換來格式化 |
%d | 有符號十進制整數 |
%o | 八進制整數 |
%x | 十六進制整數(小寫字母) |
%X | 十六進制整數(大寫字母) |
%e | 索引符號(小寫’e’) |
%f | 浮點實數,浮點數默認取小數點後六位,要標明.2f |
%G | %f和%E的簡寫 |
m.n | m顯示最小總寬度,n是小數點後的位數,“。是小數點” |
- | 用於左對齊 |
+ | 在正數前面顯示“+”號 |
# | 在八進制前顯示0o,在十六進制前顯示0x |
0 | 顯示的數字前面填充“0”取代空格 |
1. 用format()格式化str1
>>> str1 = "{a} love {b}.{c}"
>>> print(str1.format(a = "I", b = "you", c = "com"))
I love you.com
2、如果爲{0},{1},{2}則默認,不用說明。
>>> str1 = "{0} love {1}.{2}"
>>> print(str1.format("I", "you", "com"))
I love you.com
3、怎麼顯示PI = 3.14,用format前面字符串怎麼寫?
>>> print("{0}{1:.2f}".format("PI = ",3.1415926))
PI = 3.14
- 1
五、運算符
(一)算數運算符
運算符 | 描述 | 實例 |
---|---|---|
+ | 加 | 兩個對象相加 a + b 輸出結果 30 |
- | 減 | 得到負數或是一個數減去另一個數 a - b 輸出結果 -10 |
* | 乘 | 兩個數相乘返回一個被重複若干次的字符串 a * b 輸出結果 200 |
/ | 除 | b / a 輸出結果 2 |
// | 取整除 | 返回商的整數部分 9//2 輸出結果 4 , 9.0//2.0 輸出結果 4.0 |
% | 取餘 | 返回除法的餘數 b % a 輸出結果 0 |
** | 指數 | a**b 爲10的20次方, 輸出結果 100000000000000000000 |
算數運算符的優先級: * > / % // > + - 有括號要先算括號裏面的
(二)賦值運算符
運算符 | 描述 | 實例 |
---|---|---|
+= | 加法賦值運算符 | 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 |
//= | 取整除賦值運算符 | c //= a 等效於 c = c // a |
(三)比較(即關係)運算符
運算符 | 描述 |
---|---|
== | 檢查兩個操作數的值是否相等,如果是則條件變爲真。 |
!= | 檢查兩個操作數的值是否相等,如果值不相等,則條件變爲真。 |
> | 檢查左操作數的值是否大於右操作數的值,如果是,則條件成立。 |
< | 檢查左操作數的值是否小於右操作數的值,如果是,則條件成立。 |
>= | 檢查左操作數的值是否大於或等於右操作數的值,如果是,則條件成立。 |
<= | 檢查左操作數的值是否小於或等於右操作數的值,如果是,則條件成立。 |
(四)邏輯運算符
運算符 | 邏輯表達式 | 描述 |
---|---|---|
and | x and y | “與”:如果 x 爲 False,x and y 返回 False,否則它返回 y 的值。 |
or | x or y | “或”:如果 x 是 True,返回 True,否則它返回 y 的值。 |
not | not x | “非”:如果 x 爲 True,返回 False 。如果 x 爲 False,返回 True。 |
1、邏輯運算符優先級:not > and > or
2、在Python中True爲1,False爲0
3、臺條件裏,只要不爲0,條件都成立。
六、數據類型轉換
函數 | 轉換 |
---|---|
int(x [,base ]) | 將x轉換爲一個整數 |
float(x) | 將x轉換爲一個浮點數 |
complex(real [,imag ]) | 創建一個複數,real爲實部,imag爲虛部 |
str(x) | 將對象 x 轉換爲字符串 |
repr(x) | 將對象 x 轉換爲表達式字符串 |
eval(str) | 用來計算在字符串中的有效Python表達式,並返回一個對象 |
tuple(s) | 將序列 s 轉換爲一個元組 |
list(s) | 將序列 s 轉換爲一個列表 |
chr(x) | 將一個整數轉換爲一個Unicode字符 |
ord(x) | 將一個字符轉換爲它的整數值 |
hex(x) | 將一個整數轉換爲一個十六進制字符串 |
oct(x) | 將一個整數轉換爲一個八進制字符串 |
bin(x) | 將一個整數轉換爲一個二進制字符串 |
1、把str1轉化爲八進制數的整形
>>> str1 = '10'
>>> num = int(str1, 8)
8
2、複數的用法
>>> c1 = 10 + a4
>>> c2 = complex(10, 4) # c1和c2顯示的結果一樣
3、repr() 括號中不管是什麼類型,都能轉爲爲字符串。
>>> a = 10
>>> repr(a)
'10'
4、eval() 把字符串形式還原成爲原來的類型
>>> a = '[1,2,3]'
>>> eval(a)
[1,2,3]
5、十六進制數轉化成十進制數
>>> a = '0xa'
>>> b = int(a, 16)
10
>
七、補充
- 如何在python中四捨五入?
>>> a = 5.4
>>> b = 5.9
>>> c = int(a+0.5)
>>> d = int(b+0.5)
- 計算出 not 1 or 0 and 1 or 3 and 4 or 5?
1、python中and是從左到右計算表達式的,則都爲真,則返回最後一個值,若爲假,則返回第一個假的值。
>>> -1 and -2
-2
>>> -1 and 0
0
>>> 0 and -1
0
2、python中的or也是從左到右計算表達式的,誰先爲真取誰。
>>> -1 or -2
-1
>>> 0 or -2
-2
-
運算符排序
冪運算 > 正負號 > 算術運算符 > 比較運算符 > 邏輯運算符、 -
位運算
①&按位與:全1才1,否則0. 任何數&1爲0,&0爲0
② | 按位或: 有1就1,都是0才爲0,任何數 | 0 都爲任何數。
③^按位異或:不相同爲1,相同爲0
④~按位取反:~9 = 10 n取~ 爲 ~(n+1) -
如何快速完成乘法和除法運算
①<<按位左移: 快速完成乘法 5 << 1 左移一位乘以2
②>>按位右移:快速完成除法 5 >> 1 右移一位地板除2