後端基礎之Python學習之路1
總體來說我還是比較欣賞Python的,大體來說感覺Python和node有點相似,大神不要噴我、我說的相似不是語法,而是輸入python就可以在終端進行除錯,和node一模一樣,當然這是在我初學者角度去分析的。
哇塞,python也是弱型別語言,感覺找到組織了、據我目前的知識,JavaScript、PHP、Python都是弱型別語言,就是沒有一些條條框框的束縛
優點:可移植性好,可在不同的作業系統上執行,缺點:執行比編譯型慢 ,程式碼效率低,程式碼修改之後就可以執行不需要編譯過程
強型別語言(java,c++)
優點:執行速度快,程式碼效率高,編譯過後不能在修改
缺點:需要編譯才出結果,程式碼要編譯才能執行
變數:感覺和js差不多,唯一的區別就是不需要宣告變數,而且python的賦值方式特別優化,人性化,簡單賦值不說了,看一下類似於js的結構賦值的寫法
x,y,z = "aa","bb","cc" x,y,z = "abc" x=y=z="aa"
註釋 : 單行#和linux大多數都一樣 多行'''code''',三個單引號或三個雙引號
js的console.log的替代品 print()程式碼輸出
資料型別
- 字串(String)
- 數字(Digit) int整型(Integer)、float浮點型、bool布林型(boolean)、complex複數。
- 列表(List)
- 元組(Tuple)
- 集合(Sets)
- 字典(Dictionary)
- 日期(date)
變數的刪除
- del 變數
- del 變數1,變數2,…
先分析簡單的,字串、字串和js定義差不多,下標也和js一樣,不一樣的是多了一些方法
myStr = 'abcdefghijklmn' myStr[0] # a myStr[-1] # g myStr[0:3] # abc 第二個引數是尾下標、第一個是下標取值【頭,尾) myStr[-1:-5] # 空 原因: 步長預設是1,從前向後查詢左-》右 myStr[-5:-1] # jklm # 只有頭下標,沒有尾下標,預設輸出從頭下標到結尾所有 myStr[0:] # abcdefghijklmn # 步長,預設為1 myStr[0::1] # abcdefghijklmn myStr[0::2] # acegikm 步長為2 # 我想把字串的值 倒著輸出 myStr[-1::-1] # nmlkjihgfedcba 逆序輸出 myStr[::-1] # nmlkjihgfedcba 逆序輸出 @字串只能檢視或重新賦值,不能修改某一個下標對應的值 # 續行符 \,也可以轉義 myStr4 = "abc\ def" myStr2 = 'abc\"def' # 轉義符 注意:
- 字串中索引值對應的某個值不能被修改
- 字串可以使用+進行連線
- *代表字串重複的n次
字串的轉義字元
\" | 轉義雙引號 | \' | 轉義單引號 |
---|---|---|---|
\\ | 轉義本身 | \ | 續行符 |
\t | 水平製表符 |
print的一些格式化 format,{}為佔位符
print("HELLO{}!最動聽的’{}’語言".format('world', "計算機")) # 其中{} 佔位符 HELLOworld!最動聽的‘計算機’語言
# %s 字串佔位符 %d 整數佔位符 %f 浮點數佔位符
print("我叫%s 我今年%d歲了 我的成績是%.2f分" %('張三', 18, 12.2)) # 我叫張三 我今年18歲了 我的成績是12.20分
然後就是Number了(常用函式)
函式名 | 函式說明 |
---|---|
pow(x,y) | x的y次方 |
round(x,n) | x浮點數的四捨五入,n為保留小數的位數 |
max(引數1,引數2,引數3,..) | 返回給定引數的最大值,引數可為序列(序列:能被for迴圈的) |
min(引數1,引數2,引數3,..) | 返回給定引數的最小值,引數可為序列(能被for迴圈的) |
math.ceil(float) 需要math包 imprt math | 進一取整數(向上取整) |
math.floor(float) | 舍一取整(向下取整) |
隨機數(需要import random包)下面函式之前需要加random
random.choice(seq) | 返回一個列表,元組或者字串的隨機項 |
randrange(start,end,step) |
start:範圍內開始值包含本身; end:結束值,不包含本身; step:指定遞增的基數 返回指定範圍內的隨機數 |
range(start,end,step) | start:範圍內開始值包含本身; end:結束值,不包含本身; step:指定遞增的基數 返回一定範圍的序列 |
shuffle(list) | 返回隨機打亂的列表(只有列表能被打亂),作用於列表本身 |
randint(start,end) | 返回隨機整數 包含start 和end本身 |
字串常用的函式
函式名 | 函式說明 |
---|---|
str.isnumeric() | 判斷是否是一個數字字串(只能是一個純數字字串,不能包含其他字元) |
str.join( seq) | 以指定字串str作為分隔符,在合併成一個新的字串返回,不改變原來seq |
center(width, fillchar) | 以原始字串作為中心,使用fillchar填充到固定的寬度,填充結果如果不夠width位,用fillchar填充到width位,如果字串本身超過width位數,不用填充 |
ljust(width,fillchar) | 返回一個原字串左對齊,並使用fillchar填充到固定的寬度 |
rjust(width,fillchar) | 返回一個原字串右對齊,並使用fillchar填充到固定的寬度 |
lstrip()/rstrip()/strip() | 去除字串的左右兩側的指定字元或者預設的去除空白字元(只去除左右兩次的字元) |
chr() | 將一個整數(ascii碼值)轉換為對應的字元 |
ord() | 將一個字元返回一個整數(ascii碼值) |
replace(old, new[,max]),其中max為可選引數,替換次數 | 在一個字串中把某一個字元替換成另外的一個字元,max不寫,替換對應的全部,否則替換max次 |
find(str,beg=0) | 查詢某個字元的出現位置,預設beg從第一位(0)查詢,返回索引值,查詢失敗返回-1 |
rfind(str) | 返回字串某個字元出現的位置(從右向左查詢),返回索引值,查詢失敗返回-1 |
split(seq[,maxsplit]) | 用某個字元將當前的字串進行拆分,返回列表 |
upper() | 把字串中的小寫轉大寫字母 |
lower() | 把字串中的大寫轉小寫字母 |
splitlines([True]) | 以換行符進行拆分,返回列表,引數 True可選,是否保留換行符,預設為Falses |