1. 程式人生 > 其它 >進位制資料型別運算子

進位制資料型別運算子

進位制資料型別運算子

一、進位制的表示

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.轉換為浮點型

  1. 轉換的資料必須是被識別為有效的浮點數,比如我們看起來像小數的。
  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.位運算子