進位制資料型別運算子
阿新 • • 發佈:2022-05-08
進位制資料型別運算子
一、進位制的表示
1.十進位制
b = 98 # 在python中輸入預設數字就是好十進位制
2.二進位制
b = 0b10001110 # 以0b開頭的是二進位制,但是打印出來會顯示十進位制
>>> bin = 0b10011100
>>> print(bin)
156
3.八進位制
c = 0o # 以0o開頭的數字是八進位制的資料
>>> c = 0o55614
>>> print(c)
23436
4.十六進位制
d = 0x2E # 以0x開頭的是十六進位制 >>> d = 0x2E >>> print(d) 46
二、進位制轉換
a = 10
print(bin(10))
0b10010
bin() # 將數字轉位二進位制
oct() # 將數字轉位八進位制進位制
hex() # 將數字轉位十六進位制
三、資料型別轉換
將一個型別的資料轉換為另一個型別。
int ====> str
bool ====> int
int =====> float
不同的資料型別運算規則是不一樣的,所以需要進行型別轉換。
例如:
age = input('請輸入你現在的年齡:') age = int(age) # input儲存的變數是字串,不能與整型變數運算 print("你去年的年齡是:%d" %(age -1 )) # 如果不進行型別轉換 age = input('請輸入你現在的年齡:') # age = int(age) # input儲存的變數是字串,不能與整型變數運算 print("你去年的年齡是:%d" %(age -1 )) # -----------# 請輸入你現在的年齡:18 Traceback (most recent call last): File "D:/qianfeng-python/day02/字元型別轉換.py", line 4, in <module> print("你去年的年齡是:%d" %(age -1 )) TypeError: unsupported operand type(s) for -: 'str' and 'int' 程序已結束,退出程式碼為 1
1.換為整型
# 使用內建函式int() # 如果字串不是一個合法的數字會報錯。 >>> a = '31' >>> b = int(a) >>> print(a + 1) # a 的型別是字元型不能進行加減運算 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: can only concatenate str (not "int") to str >>> print(b + 1) 32
# 這是吧1a2c識別為十六進位制,在
a = '1a2c'
x = int(a,16)
print(x)
#=====輸出結果====== #
6700
# 轉換為二進位制
print(bin(x))
#=====輸出結果====== #
0b1101000101100
2.轉換為浮點型
- 轉換的資料必須是被識別為有效的浮點數,比如我們看起來像小數的。
- 可以把整數轉換為浮點數
>>> a = '3.32'
>>> b = float(a)
>>> print(b+1)
4.32
>>> a = 100
>>> print(float(100))
100.0
3.轉換為字串
# 使用內建類str()轉換為字串
>>> b = 34
>>> c = str(34)
>>> print(c)
34
>>> print(type(c))
<class 'str'>
>>> print(type(b))
<class 'int'>
4.轉換為bool型別
# 把100轉換為布林值
>>> print(bool(100))
True
# 非0之外的都是True
>>> print(bool(0))
False
# 字串轉換為bool,非空的都為True
>>> print(bool(""))
False
# None是False
>>> print(bool(None))
False
# 空列表、集合、字典、元組返回的是False
>>> a=()
>>> b={}
>>> c=[]
>>> bool(a)
False
>>> bool(b)
False
>>> bool(c)
False
在python中True表示1, False表示0
>>> print(True + 1)
2
四、運算子
1.算數運算子
運算子 | 用途 |
---|---|
+ | 加 |
- | 減 |
* | 乘 |
/ | 除 |
** | 冪運算 |
// | 取商 |
% | 取餘 |
() | 優先運算 |
>>> print(True + 1)
2
>>> print(10 - 9)
1
>>> print(2 * 3)
6
# 在python2中不管能不能除盡,只會取商;在python3中會返回浮點數。
>>> print(10/5)
2.0
# 表示為4開方
>>> print(4 ** 0.5)
2.0
# 取商
>>> print(10 // 3)
3
# 取餘
>>> print( 23 % 20)
3
運算在字元型別中的應用
# 起到了拼接字串的作用。
>>> print('hello'+'nihao')
hellonihao
# 數字和字串進行乘法運算。
>>> print('hello\n' * 2)
hello
hello
2.賦值運算子
"=" 表示賦值運算子。表示的是把等號右邊的值賦值給左邊的變數。
a = 4 表示的是把4賦值給變數a
等號的左邊一定不能是常量或者是表示式。
>>> a = 4
>>> x = 1
>>> x = x + 2
>>> print(x)
3
# 同等於
>>> x =1
>>> x +=2
>>> print(x)
3
x = 1
# 與 x = x + 2同等功能
x += 2
x *= 2
x /= 2
x **=2
x -= 2
x %= 2
特殊的賦值
>>> a = b =c = d = 'hello'
>>> print(a,b,c,d)
hello hello hello hello
# 拆包,如果兩邊的個數不一致會導報錯。
>>> m, n = 3, 5
>>> print(m, n)
3 5
# 元組,和元組一樣,麼有()
>>> x ="hello", "old", "are"
>>> print(type(x))
<class 'tuple'>
# *表示長度可變
>>> o, *p ,q = 1, 2, 3, 4, 5
>>> print(o, p, q)
1 [2, 3, 4] 5
>>> *o, p ,q = 1, 2, 3, 4, 5
>>> print(o, p, q)
[1, 2, 3] 4 5
>>> o, p ,*q = 1, 2, 3, 4, 5
>>> print(o, p, q)
1 2 [3, 4, 5]
3.比較運算子
# > 大於
# < 小於
# >= 大於等於
# <= 小於等於
# != 不等於 <> 在python中支援
# == 等於
print(6 > 4)
print(4 < 6)
print(4 >= 3)
print(5 <= 10)
print('a' != 'b')
print(2 != 2)
# 字元得比較會使用字元得編碼進行比較
print('a' > 'b')
print('b' > 'a')
4.邏輯運算子
# 與 and 或 or 非 not
# 1。and 只要一個是錯誤的就都是False
print(2 > 1 and 3 > 2 and 4 > 1) # True
print(1 > 2 and 3> 1 and 4 == 4) # False
# 2. or 只要一個是對得都是對True
print(1 > 2 or 2 > 1 or 3 >10 ) # True
# not 取反
print(not (3 > 2)) # False
# 運算短路問題
4 > 3 and print('hello word!')
3 > 4 and print('你好世界') # 邏輯與只要執行到False的地方就不會向後面執行了
10 > 1 and print("最後的")
# or 運算子
# 只有所有的False才是False
# 只要出現一個True就是True,所有就不會向後執行了。
4 > 3 or print('hahha')
3 > 4 or print('aaaaa') # 因為前面的結果是False所以繼續像後面執行。
5.位運算子