1. 程式人生 > 資訊 >招聘架構工程師,AMD 佈局 RISC-V 賽道

招聘架構工程師,AMD 佈局 RISC-V 賽道

 

 

'''
1.整型
即int型別,無論整型數字多大多小都屬於int。

程式碼:
x = 10
print(type(x)) # <class 'int'>

1.1整型數字之間進位制關係
# 十六進位制
print(0x11)
print(0x111)

# 二進位制
print(0b101)
print(0B101)

# 八進位制
print(0o12)
print(0o23)

# 十進位制轉換為二進位制
print(bin(3))

# 十進位制轉換為十六進位制
print(hex(19))

# 十進位制轉換為八進位制
print(oct(10))
==============================

2.浮點型
在python中小數都屬於浮點型(float),有兩種表現形式

2.1小數點形式

f = 3.14
print(f) # 3.14
print(type(f)) # <class 'float'>

f3 = 3.1415926123456789876543217789
print(f3) # 雙精度(double float,保留17為有效數字)
print(type(f3))

2.2指數形式: aEn 或 aen

3.2E5 = 3.2×105,其中 3.2 是尾數,5 是指數。
2.7E-3 = 2.7×10-2,其中 2.7 是尾數,-3 是指數。
0.2E8 = 0.2×107,其中 0.2 是尾數,8 是指數。

f1 = 3.2E5
print(f1) # 320000.0
print(type(f1)) # <class 'float'>

f2 = 3.2E-5
print(f2) # 3.2e-05
print(type(f2)) # <class 'float'>
==============================

3.布林型別

布林型(Boolean)是一種資料的型別,這種型別只有兩種值,即"真"與"假"。在python中用 bool表示布林型別,“真"用關鍵字true表示,“假"用false表示。

print(4 == 2) # False

name = "xi"
print(name == "alvin") # False
print(1 == "1") # False

3.1零值
不光表達式的結果是布林值,任意值都有自己的布林值,這就涉及到布林的零值。

# 任意資料型別都一個具體值的布林值為False,我們稱為零值。該型別的其他值的布林值皆為True。
print(bool("")) # 字串的零值 “”
print(bool(0)) # 整型的零值 0
print(bool(False)) # 布林型別的零值 False
==============================

4.字串

字串是由零個或多個字元組成的有限序列。字串的內容可以包含字母、標點、特殊符號、中文、日文等全世界的所有字元。
在python中字串是通過單引號''或者雙引號""標識的,Python 字串中的雙引號和單引號沒有任何區別!。

s1 = "hi xi"
print(s1)

s2 = ""
print(s2)

s3 = 'xi是最帥!'
print(s3)

4.1字串的轉義符
轉義字元 說明
\n 換行符,將游標位置移到下一行開頭。
\r 回車符,將游標位置移到本行開頭。
\t 水平製表符,也即 Tab 鍵,一般相當於四個空格。
\a 蜂鳴器響鈴。注意不是喇叭發聲,現在的計算機很多都不帶蜂鳴器了,所以響鈴不一定有效。
\b 退格(Backspace),將游標位置移到前一列。
\ 反斜線
' 單引號
" 雙引號
\ 在字串行尾的續行符,即一行未完,轉到下一行繼續寫。

4.2長字串
s = """
s = "hi xi\\nhi,alvin"
I'm xi
這是一個python直譯器路徑:"D:\\nythonProject\\nenv\Scripts\python.exe"
長字串中放置單引號或者雙引號不會導致解析錯誤
"""
print(s)

4.3格式化輸出
之前講到過 print() 函式的用法,這只是最簡單最初級的形式,print() 還有很多高階的玩法,比如格式化輸出。

name = "xi"
age = 23
print("My name is %s; My age is %d"%(name,age))
在 print() 函式中,由引號包圍的是格式化字串,它相當於一個字串模板,可以放置一些轉換說明符(佔位符)。本例的格式化字串中包含一個%s和%d說明符,它最終會被後面的name和age 變數的值所替代。中間的%是一個分隔符,它前面是格式化字串,後面是要輸出的表示式。

print() 函式使用以%開頭的轉換說明符對各種型別的資料進行格式化輸出,具體請看下錶。

轉換說明符 解釋
%d、%i 轉換為帶符號的十進位制整數
%o 轉換為帶符號的八進位制整數
%x、%X 轉換為帶符號的十六進位制整數
%e 轉化為科學計數法表示的浮點數(e 小寫)
%E 轉化為科學計數法表示的浮點數(E 大寫)
%f、%F 轉化為十進位制浮點數
%g 智慧選擇使用 %f 或 %e 格式
%G 智慧選擇使用 %F 或 %E 格式
%c 格式化字元及其 ASCII 碼
%r 使用 repr() 函式將表示式轉換為字串
%s 使用 str() 函式將表示式轉換為字串

(4)歸屬序列型別
字串屬於序列型別,所謂序列,指的是一塊可存放多個值的連續記憶體空間,這些值按一定順序排列,可通過每個值所在位置的編號(稱為索引)訪問它們。

s= "hello yuan"
image-20210413141108883
Python 還支援索引值是負數,此類索引是從右向左計數,換句話說,從最後一個元素開始計數,從索引值 -1 開始,如圖 所示。


4.1序列型別支援的操作:

# (1)索引取值
s = "hello yuan"
print(s[6])
print(s[-10])

# (2)切片取值:序列型別物件[start : end : step]
s = "hello yuan"
print(s[1:4]) # ell :取索引1到索引3(左閉又開)
print(s[:4]) # hell :start預設,預設從0取
print(s[1:]) # ello yuan : end預設,預設取到最後
print(s[1:-1]) # ello yua

print(s[6:9]) # yua
print(s[-4:-1]) # yua
print(s[-1:-4]) # 空
print(s[-1:-4:-1]) #nau step為1:從左向右一個一個取。為-1 ,從右向左一個取

# (3)判斷存在:Python 中,可以使用 in 關鍵字檢查某元素是否為序列的成員。
s = "hello yuan"
print("yuan" in s) # True

# (4)支援兩種型別相同的序列使用“+”運算子做相加操作,它會將兩個序列進行連線,但不會去除重複的元素。
# 使用數字 n 乘以一個序列會生成新的序列,其內容為原來序列被重複 n 次的結果
s = "hello"+" yuan"
print(s) # hello yuan
s= "*"*10
print(s) # **********

(5)內建方法(重點)
方法 作用 示例 輸出
upper 全部大寫 "hello".upper() "HELLO"
lower 全部小寫 "Hello".lower() "hello"
startswith() 是否以a開頭 "Yuan".startswith("Yu") True
endswith() 是否以a結尾 "Yuan".endswith("a") False
isdigit() 是否全數字 '123'.isdigit() True
isalpha() 是否全字母 'yuan123'.isalpha() False
isalnum() 是否全為字母或數字 'yuan123'.isalnum() True
strip() 去兩邊空格 " hi yuan \n".strip() "hi yuan"
join() 將多個字串連線在一起 "-".join(["yuan","alvin","eric"]) "yuan-alvin-eric"
split() 按某字元分割字串,預設按空格分隔 "yuan-alvin-eric".split("-") ['yuan', 'alvin', 'eric']
find() 搜尋指定字串,沒有返回-1 "hello world".index("w") 6
index() 同上,但是找不到會報錯 "hello world".index("w") 6
count() 統計指定的字串出現的次數 "hello world".count("l") 3
replace() 替換old為new 'hello world'.replace(‘world',‘python') "hello python"
format() 格式化方法

# 任意資料物件.方法()實現對資料的某種操作
# 不同資料型別物件支援不同方法
# 字串型別物件支援哪些方法

s1 = "yuan"
s2 = "RAIN"
# (1) upper方法和lower方法
s3 = s1.upper()
s4 = s2.lower()
print(s3) # "YUAN"
print(s4) # "rain"


s5 = "hello yuan"
s6 = "hi world"
# (2) startswith和endswith:判斷字串是否以什麼開頭和結尾
print(s5.startswith("hello")) # True
print(s6.startswith("hello")) # False
print(s6.startswith("hi wor")) # True
print(s6.endswith("hi wor")) # False

# (3) isdigit(): 判斷字串是否是一個數字字串
s7 = "123"
s8 = "123A"
print(s7.isdigit()) # True
print(s8.isdigit()) # False
s9 = "123SAA%#"
print(s9.isalnum()) # False 不能包含特殊符號

# (4) strip(): 去除兩端空格和換行符號

s10 = " I am yuan "
print(s10)
print(s10.strip())
name = input("請輸入姓名>>").strip()
print(name)

# (5) split分割方法: 將一個字串分割成一個列表
s11 = "rain-yuan-alvin-eric"
print(s11.split("-")) # ['rain', 'yuan', 'alvin', 'eric']

# (6) join方法: 將一個列表中的字串拼接成一個字串
names_list = ['rain', 'yuan', 'alvin', 'eric']
s12 = "-".join(names_list) # 用什麼分隔符拼接names_list列表
print(s12,type(s12)) # "rain-yuan-alvin-eric"
==============================

5.列表
列表宣告
在實際開發中,經常需要將一組(不只一個)資料儲存起來,以便後邊的程式碼使用。列表就是這樣的一個數據結構。

列表會將所有元素都放在一對中括號[ ]裡面,相鄰元素之間用逗號,分隔,如下所示:

[element1, element2, element3, ..., elementn]
不同於C,java等語言的陣列,python的列表可以存放不同的,任意的資料型別物件。

l = [123,"xi",True]
print(l,type(l))

# 注意
a,b = [1,2]
print(a,b)

5.1索引求值

l = [10,11,12,13,14]
print(l[2]) # 12
print(l[-1]) # 14

5.2切片操作

l = [10,11,12,13,14]
print(l[2:5])
print(l[-3:-1])
print(l[:3])
print(l[1:])
print(l[:])
print(l[2:4])
print(l[-3:-1])
print(l[-1:-3])
print(l[-1:-3:-1])
print(l[::2])
1、取出的元素數量為:結束位置 - 開始位置;

2、取出元素不包含結束位置對應的索引,列表最後一個元素使用 list[len(slice)] 獲取;

3、當預設開始位置時,表示從連續區域開頭到結束位置;

4、當預設結束位置時,表示從開始位置到整個連續區域末尾;

5、兩者同時預設時,與列表本身等效;

6、step為正,從左向右切,為負從右向左切。

5.3判斷成員是否存在
in 關鍵字檢查某元素是否為序列的成員

l = [10,11,12,13,14]
print(20 in l) # False
print(12 in l) # True
5.4相加

l1 = [1,2,3]
l2 = [4,5,6]
print(l1+l2) # [1, 2, 3, 4, 5, 6]
5.5迴圈列表

for name in ["張三",'李四',"王五"]:
print(name)

for i in range(10): # range函式: range(start,end,step)
print(i)

# 基於for迴圈從100列印到1
for i in range(100,0,-1):
print(i)
==============================

999.型別轉換

i = int("3")
print(i,type(i)) # 3 <class 'int'>

s = str(3.14)
print(s,type(s)) # 3.14 <class 'str'>

'''