1. 程式人生 > >後端基礎之Python學習之路1

後端基礎之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()程式碼輸出

資料型別 

  1. 字串(String)
  2. 數字(Digit)                             int整型(Integer)、float浮點型、bool布林型(boolean)、complex複數。
  3. 列表(List)
  4. 元組(Tuple)
  5. 集合(Sets)
  6. 字典(Dictionary)
  7. 日期(date)

變數的刪除

  1. del 變數
  2. 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'  # 轉義符
注意:
  1. 字串中索引值對應的某個值不能被修改
  2. 字串可以使用+進行連線
  3. *代表字串重複的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