Python3從零學習(二)
阿新 • • 發佈:2018-11-05
# -*- coding: utf-8 -*- #數字型別轉換 a = 1.0 print(int(a)) a = 1 print(float(a)) #complex(x) 將x轉換到一個複數,實數部分為 x,虛數部分為 0。 a = 1.1 print(complex(a)) #complex(x, y) 將 x 和 y 轉換到一個複數,實數部分為 x,虛數部分為 y。x 和 y 是數字表達式。 a = 1 b = 2 print(complex(a,b)) #數字函式 # 函式 返回值 ( 描述 ) # abs(x) 返回數字的絕對值,如abs(-10) 返回 10 # ceil(x) 返回數字的上入整數,如math.ceil(4.1) 返回 5 # cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已廢棄 。使用 使用 (x>y)-(x<y) 替換。 # exp(x) 返回e的x次冪(ex),如math.exp(1) 返回2.718281828459045 # fabs(x) 返回數字的絕對值,如math.fabs(-10) 返回10.0 # floor(x) 返回數字的下舍整數,如math.floor(4.9)返回 4 # log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0 # log10(x) 返回以10為基數的x的對數,如math.log10(100)返回 2.0 # max(x1, x2,...) 返回給定引數的最大值,引數可以為序列。 # min(x1, x2,...) 返回給定引數的最小值,引數可以為序列。 # modf(x) 返回x的整數部分與小數部分,兩部分的數值符號與x相同,整數部分以浮點型表示。 # pow(x, y) x**y 運算後的值。 # round(x [,n]) 返回浮點數x的四捨五入值,如給出n值,則代表舍入到小數點後的位數。 # sqrt(x) 返回數字x的平方根,數字可以為負數,返回型別為實數,如math.sqrt(4)返回 2+0j a = -1 print(abs(a)) import math a = 4.6 print(math.ceil(a)) #隨機數函式 # 函式 描述 # choice(seq) 從序列的元素中隨機挑選一個元素,比如random.choice(range(10)),從0到9中隨機挑選一個整數。 # randrange ([start,] stop [,step]) 從指定範圍內,按指定基數遞增的集合中獲取一個隨機數,基數預設值為1 # random() 隨機生成下一個實數,它在[0,1)範圍內。 # seed([x]) 改變隨機數生成器的種子seed。如果你不瞭解其原理,你不必特別去設定seed,Python會幫你選擇seed。 # shuffle(lst) 將序列的所有元素隨機排序 # uniform(x, y) 隨機生成下一個實數,它在[x,y]範圍內。 import random print(random.choice(range(10))) #從1到100中隨機一個奇數 print(random.randrange(1,100,2)) print(random.random()) lists = [20, 16, 10, 5]; random.shuffle(lists) print(lists) print(random.uniform(1,10)) #常量 pi圓周率 e自然常數 #字串 #訪問字串中的值 a = "121ep;osd" print(a[2]) print("更新字串"+a[:6] + "hhh") #轉義字元 # 轉義字元 描述 # \(在行尾時) 續行符 # \\ 反斜槓符號 # \' 單引號 # \" 雙引號 # \a 響鈴 # \b 退格(Backspace) # \e 轉義 # \000 空 # \n 換行 # \v 縱向製表符 # \t 橫向製表符 # \r 回車 # \f 換頁 # \oyy 八進位制數,yy代表的字元,例如:\o12代表換行 # \xyy 十六進位制數,yy代表的字元,例如:\x0a代表換行 # \other 其它的字元以普通格式輸出 #字串運算子 # 操作符 描述 例項 # + 字串連線 a + b 輸出結果: HelloPython # * 重複輸出字串 a*2 輸出結果:HelloHello # [] 通過索引獲取字串中字元 a[1] 輸出結果 e # [ : ] 擷取字串中的一部分 a[1:4] 輸出結果 ell # in 成員運算子 - 如果字串中包含給定的字元返回 True H in a 輸出結果 1 # not in 成員運算子 - 如果字串中不包含給定的字元返回 True M not in a 輸出結果 1 # r/R 原始字串 - 原始字串:所有的字串都是直接按照字面的意思來使用,沒有轉義特殊或不能列印的字元。 原始字串除在字串的第一個引號前加上字母"r"(可以大小寫)以外,與普通字串有著幾乎完全相同的語法。 print r'\n' prints \n 和 print R'\n' prints \n # % 格式字串 print("my name %s , %d years old" % ('xiaoming',10)) #字串格式化符號 # 符號 描述 # %c 格式化字元及其ASCII碼 # %s 格式化字串 # %d 格式化整數 # %u 格式化無符號整型 # %o 格式化無符號八進位制數 # %x 格式化無符號十六進位制數 # %X 格式化無符號十六進位制數(大寫) # %f 格式化浮點數字,可指定小數點後的精度 # %e 用科學計數法格式化浮點數 # %E 作用同%e,用科學計數法格式化浮點數 # %g %f和%e的簡寫 # %G %f 和 %E 的簡寫 # %p 用十六進位制數格式化變數的地址 #格式化操作符輔助指令 # 符號 功能 # * 定義寬度或者小數點精度 # - 用做左對齊 # + 在正數前面顯示加號( + ) # <sp> 在正數前面顯示空格 # # 在八進位制數前面顯示零('0'),在十六進位制前面顯示'0x'或者'0X'(取決於用的是'x'還是'X') # 0 顯示的數字前面填充'0'而不是預設的空格 # % '%%'輸出一個單一的'%' # (var) 對映變數(字典引數) # m.n. m 是顯示的最小總寬度,n 是小數點後的位數(如果可用的話) #三引號 strs = """hhhhhh hhhhhh jjjjjj""" print(strs) #字串內建函式 # 序號 方法及描述 # 1 # capitalize() # 將字串的第一個字元轉換為大寫 print(strs.capitalize()) # 2 # center(width, fillchar) # # 返回一個指定的寬度 width 居中的字串,fillchar 為填充的字元,預設為空格。 print(strs.center(40,'-')) # 3 # count(str, beg= 0,end=len(string)) # # 返回 str 在 string 裡面出現的次數,如果 beg 或者 end 指定則返回指定範圍內 str 出現的次數 # 4 # decode(encoding='UTF-8',errors='strict') # # 使用指定編碼來解碼字串。預設編碼為字串編碼。 # 5 # encode(encoding='UTF-8',errors='strict') # # 以 encoding 指定的編碼格式編碼字串,如果出錯預設報一個ValueError 的異常,除非 errors 指定的是'ignore'或者'replace' # 6 # endswith(suffix, beg=0, end=len(string)) # 檢查字串是否以 obj 結束,如果beg 或者 end 指定則檢查指定的範圍內是否以 obj 結束,如果是,返回 True,否則返回 False. # 7 # expandtabs(tabsize=8) # # 把字串 string 中的 tab 符號轉為空格,tab 符號預設的空格數是 8 。 # 8 # find(str, beg=0 end=len(string)) # # 檢測 str 是否包含在字串中 中,如果 beg 和 end 指定範圍,則檢查是否包含在指定範圍內,如果是返回開始的索引值,否則返回-1 # 9 # index(str, beg=0, end=len(string)) # # 跟find()方法一樣,只不過如果str不在字串中會報一個異常. # 10 # isalnum() # # 如果字串至少有一個字元並且所有字元都是字母或數字則返 回 True,否則返回 False # 11 # isalpha() # # 如果字串至少有一個字元並且所有字元都是字母則返回 True, 否則返回 False # 12 # isdigit() # # 如果字串只包含數字則返回 True 否則返回 False.. # 13 # islower() # # 如果字串中包含至少一個區分大小寫的字元,並且所有這些(區分大小寫的)字元都是小寫,則返回 True,否則返回 False # 14 # isnumeric() # # 如果字串中只包含數字字元,則返回 True,否則返回 False # 15 # isspace() # # 如果字串中只包含空格,則返回 True,否則返回 False. # 16 # istitle() # # 如果字串是標題化的(見 title())則返回 True,否則返回 False # 17 # isupper() # # 如果字串中包含至少一個區分大小寫的字元,並且所有這些(區分大小寫的)字元都是大寫,則返回 True,否則返回 False # 18 # join(seq) # # 以指定字串作為分隔符,將 seq 中所有的元素(的字串表示)合併為一個新的字串 # 19 # len(string) # # 返回字串長度 # 20 # ljust(width[, fillchar]) # # 返回一個原字串左對齊,並使用 fillchar 填充至長度 width 的新字串,fillchar 預設為空格。 # 21 # lower() # # 轉換字串中所有大寫字元為小寫. # 22 # lstrip() # # 截掉字串左邊的空格 # 23 # maketrans() # # 建立字元對映的轉換表,對於接受兩個引數的最簡單的呼叫方式,第一個引數是字串,表示需要轉換的字元,第二個引數也是字串表示轉換的目標。 # 24 # max(str) # # 返回字串 str 中最大的字母。 # 25 # min(str) # # 返回字串 str 中最小的字母。 # 26 # replace(old, new [, max]) # # 把 將字串中的 str1 替換成 str2,如果 max 指定,則替換不超過 max 次。 # 27 # rfind(str, beg=0,end=len(string)) # # 類似於 find()函式,不過是從右邊開始查詢. # 28 # rindex( str, beg=0, end=len(string)) # # 類似於 index(),不過是從右邊開始. # 29 # rjust(width,[, fillchar]) # # 返回一個原字串右對齊,並使用fillchar(預設空格)填充至長度 width 的新字串 # 30 # rstrip() # # 刪除字串字串末尾的空格. # 31 # split(str="", num=string.count(str)) # # num=string.count(str)) 以 str 為分隔符擷取字串,如果 num 有指定值,則僅擷取 num 個子字串 # 32 # splitlines( num=string.count('\n')) # # 按照行分隔,返回一個包含各行作為元素的列表,如果 num 指定則僅切片 num 個行. # 33 # startswith(str, beg=0,end=len(string)) # # 檢查字串是否是以 obj 開頭,是則返回 True,否則返回 False。如果beg 和 end 指定值,則在指定範圍內檢查。 # 34 # strip([chars]) # # 在字串上執行 lstrip()和 rstrip() # 35 # swapcase() # # 將字串中大寫轉換為小寫,小寫轉換為大寫 # 36 # title() # # 返回"標題化"的字串,就是說所有單詞都是以大寫開始,其餘字母均為小寫(見 istitle()) # 37 # translate(table, deletechars="") # # 根據 str 給出的表(包含 256 個字元)轉換 string 的字元, 要過濾掉的字元放到 deletechars 引數中 # 38 # upper() # # 轉換字串中的小寫字母為大寫 # 39 # zfill (width) # # 返回長度為 width 的字串,原字串右對齊,前面填充0 # 40 # isdecimal() # # 檢查字串是否只包含十進位制字元,如果是返回 true,否則返回 false。 #列表 print('-------------------------') lists = [1,2,3,4] del lists[1] print(lists) #長度 print(len(lists)) #重複 print(lists*2) #元素是否存在 print(3 in lists) for x in lists: print(x) print(max(lists)) tu = (1,2,3) #將元祖轉換為列表 a = list(tu) print(a) #在列表末尾新增新的物件 a.append(3) print(a) #統計某個元素在列表中出現的次數 print(a.count(3)) #在列表末尾一次性追加另一個序列中的多個值(用新列表擴充套件原來的列表) a.extend([4,5,6]) print(a) #從列表中找出某個值第一個匹配項的索引位置 print(a.index(2)) #將物件插入列表 a.insert(0,2) print(a) # 移除列表中的一個元素(預設最後一個元素),並且返回該元素的值 print(a.pop(2)) # 移除列表中某個值的第一個匹配項 a.remove(2) print(a) # 反向列表中元素 a.reverse() print(a) # 對原列表進行排序 a.sort() print(a) # list.clear() # 清空列表 print('----------------') b = a.copy() # 複製列表 print(b) print('--------------------------------------') print('--------------------------------------') #空元祖 a = () #元組中只包含一個元素時,需要在元素後面新增逗號 a = (1,) #--------------- #|元祖元素不能修改| #--------------- #基本用法和list相同 #字典 #字典值可以沒有限制地取任何python物件,既可以是標準的物件,也可以是使用者定義的,但鍵不行。 # 兩個重要的點需要記住: # 1)不允許同一個鍵出現兩次。建立時如果同一個鍵被賦值兩次,後一個值會被記住 # 鍵必須不可變,所以可以用數字,字串或元組充當,而用列表就不行 a = {1:'1',2:'2'} print(len(a)) print(str(a))#輸出字典以可列印的字串表示。 print(type(a))#返回輸入的變數型別,如果變數是字典就返回字典型別。 #內建方法 # 序號 函式及描述 # 1 radiansdict.clear() # 刪除字典內所有元素 # 2 radiansdict.copy() # 返回一個字典的淺複製 # 3 radiansdict.fromkeys() # 建立一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應的初始值 # 4 radiansdict.get(key, default=None) # 返回指定鍵的值,如果值不在字典中返回default值 # 5 key in dict # 如果鍵在字典dict裡返回true,否則返回false # 6 radiansdict.items() # 以列表返回可遍歷的(鍵, 值) 元組陣列 # 7 radiansdict.keys() # 以列表返回一個字典所有的鍵 # 8 radiansdict.setdefault(key, default=None) # 和get()類似, 但如果鍵不存在於字典中,將會新增鍵並將值設為default # 9 radiansdict.update(dict2) # 把字典dict2的鍵/值對更新到dict裡 # 10 radiansdict.values() # 以列表返回字典中的所有值 #集合 a = {1,2,3,4,5,4} print(a)# 輸出集合,重複的元素被自動去掉 if (2 in a): print(2) #集合運算 a = set('asdfgh') b = set('213e212') print(a - b) #ab差集 print(a | b) # a和b的並集 print(a & b) # a和b的交集 print(a ^ b) # a和b中不同時存在的元素 #程式設計第一步 #斐波那契數列 a, b = 0, 1 while b < 20: print(b) a,b = b, a+b # 第一行包含了一個複合賦值:變數 a 和 b 同時得到新值 0 和 1。最後一行再次使用了同樣的方法,可以看到,右邊的表示式會在賦值變動之前執行。右邊表示式的執行順序是從左往右的。 #關鍵字end可以用於將結果輸出到同一行,或者在輸出的末尾新增不同的字元 a, b = 0, 1 while b < 20: print(b,end=',') a,b = b, a+b