1. 程式人生 > 實用技巧 >學習心得2020.07.19

學習心得2020.07.19

012 列表

>>> list1=[123]
>>> list2=[234]
>>> list1>list2
False
>>> list3=[123,456]
>>> list1=[234,123]
>>> list2=[123,456]
>>> list1>list2 and list3==list2
True
>>> list4=list1+list2
>>> list4
[234, 123, 123, 456]
>>> list3*3
[123, 456, 123, 456, 123, 456]
>>> list3*=3
>>> list3
[123, 456, 123, 456, 123, 456]
>>> 123 in list3
True
>>> '小甲魚' not in list3
True
>>> 123 not in list3
False
>>> list5=[123,['小甲魚','牡丹'],456]
>>> '小甲魚'in list5
False
>>> '小甲魚' in list5[1]
True
>>> list5[1][1]
'牡丹'
>>> 

列表型別的內建函式

count()計算括號中引數在列表中出現的次數

>>> list3.count(123)
3

index()返回引數在列表中的位置

>>> list3.index(123)
0
>>> list3.index(123,3,5)
4

reverse()將整個列表原地翻轉

>>> list3.reverse()
>>> list3
[456, 123, 456, 123, 456, 123]

sort()指定的方式對列表的成員進行排序

>>> list6=[4,2,5,1,9,23,32,0]
>>> list6.sort()
>>> list6
[0, 1, 2, 4, 5, 9, 23, 32]
>>> list6.sort(reverse=True)
>>> list6
[32, 23, 9, 5, 4, 2, 1, 0]

013 元組:戴了枷鎖的列表

元組裡面的元素不能改變
列表可以任意的修改其中的元素

建立和訪問一個元組

>>> tuple1=(1,2,3,4,5,6,7,8)
>>> tuple1
(1, 2, 3, 4, 5, 6, 7, 8)
>>> tuple1[1]
2
>>> tuple1[5:]
(6, 7, 8)

更新和刪除一個元組

>>> temp=('小甲魚','黑夜','迷途','小布丁')
>>> temp=temp[:2]+('怡靜',)+temp[2:]
>>> temp
('小甲魚', '黑夜', '怡靜', '迷途', '小布丁')

014 字串的內建方法

  • capitalize() 把字串的第一個字元改為大寫
>>> str2='xiaoxie'
>>> str2.capitalize()
'Xiaoxie'
  • casefold() 把整個字串的所有字元改為小寫
>>> str3='DAXIExiaoxie'
>>> str3.casefold()
'daxiexiaoxie'
  • center(width) 將字串居中,並使用空格填充至長度width的新字串
>>> str3.center(40)
'              DAXIExiaoxie              '
  • count(sbu[,start[,end]])
    返回sub在字串裡邊出現的次數,start和end引數表示範圍,可選。
  • encode(encoding='utf-8', errors='strict')
    以 encoding 指定的編碼格式對字串進行編碼。
  • endswith(sub[, start[, end]])
    檢查字串是否以 sub 子字串結束,如果是返回 True,否則返回 False。start 和 end 引數表示範圍,可選。
  • expandtabs([tabsize=8])
    把字串中的 tab 符號(\t)轉換為空格,如不指定引數,預設的空格數是 tabsize=8。
  • find(sub[, start[, end]])
    檢測 sub 是否包含在字串中,如果有則返回索引值,否則返回 -1,start 和 end 引數表示範圍,可選。
  • index(sub[, start[, end]])
    跟 find 方法一樣,不過如果 sub 不在 string 中會產生一個異常。
  • isalnum()
    如果字串至少有一個字元並且所有字元都是字母或數字則返回 True,否則返回 False。
  • isalpha()
    如果字串至少有一個字元並且所有字元都是字母則返回 True,否則返回 False。
  • isdecimal()
    如果字串只包含十進位制數字則返回 True,否則返回 False。
  • isdigit()
    如果字串只包含數字則返回 True,否則返回 False。
  • islower()
    如果字串中至少包含一個區分大小寫的字元,並且這些字元都是小寫,則返回 True,否則返回 False。
  • isnumeric()
    如果字串中只包含數字字元,則返回 True,否則返回 False。
  • isspace()
    如果字串中只包含空格,則返回 True,否則返回 False。
  • istitle()
    如果字串是標題化(所有的單詞都是以大寫開始,其餘字母均小寫),則返回 True,否則返回 False。
  • isupper()
    如果字串中至少包含一個區分大小寫的字元,並且這些字元都是大寫,則返回 True,否則返回 False。
  • join(sub)
    以字串作為分隔符,插入到 sub 中所有的字元之間。
  • ljust(width)
    返回一個左對齊的字串,並使用空格填充至長度為 width 的新字串。
  • lower()
    轉換字串中所有大寫字元為小寫。
  • lstrip()
    去掉字串左邊的所有空格
  • partition(sub)
    找到子字串 sub,把字串分成一個 3 元組 (pre_sub, sub, fol_sub),如果字串中不包含 sub 則返回 ('原字串', '', '')
  • replace(old, new[, count])
    把字串中的 old 子字串替換成 new 子字串,如果 count 指定,則替換不超過 count 次。
  • rfind(sub[, start[, end]])
    類似於 find() 方法,不過是從右邊開始查詢。
  • rindex(sub[, start[, end]])
    類似於 index() 方法,不過是從右邊開始。
  • rjust(width)
    返回一個右對齊的字串,並使用空格填充至長度為 width 的新字串。
  • rpartition(sub)
    類似於 partition() 方法,不過是從右邊開始查詢。
  • rstrip()
    刪除字串末尾的空格。
  • split(sep=None, maxsplit=-1)
    不帶引數預設是以空格為分隔符切片字串,如果 maxsplit 引數有設定,則僅分隔 maxsplit 個子字串,返回切片後的子字串拼接的列表。
  • splitlines(([keepends]))
    在輸出結果裡是否去掉換行符,預設為 False,不包含換行符;如果為 True,則保留換行符。。
  • startswith(prefix[, start[, end]])
    檢查字串是否以 prefix 開頭,是則返回 True,否則返回 False。start 和 end 引數可以指定範圍檢查,可選。
  • strip([chars])
    刪除字串前邊和後邊所有的空格,chars 引數可以定製刪除的字元,可選。
  • swapcase()
    翻轉字串中的大小寫。
  • title()
    返回標題化(所有的單詞都是以大寫開始,其餘字母均小寫)的字串。
  • translate(table)
    根據 table 的規則(可以由 str.maketrans('a', 'b') 定製)轉換字串中的字元。
  • upper()
    轉換字串中的所有小寫字元為大寫。
  • zfill(width)
    返回長度為 width 的字串,原字串右對齊,前邊用 0 填充。

015 字串:格式化

>>> "{0} love {1}.{2}".format("1","FishC","com")
'1 love FishC.com'
>>> "{a} love {b}.{c}".format("1","FishC","com")
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    "{a} love {b}.{c}".format("1","FishC","com")
KeyError: 'a'
>>> "{a} love {b}.{c}".format(a="1",b="FishC",c="com")
'1 love FishC.com'

字串格式化符號含義

%c 格式化字元及其 ASCII 碼
%s 格式化字串
%d 格式化整數
%o 格式化無符號八進位制數
%x 格式化無符號十六進位制數
%X 格式化無符號十六進位制數(大寫)
%f 格式化浮點數字,可指定小數點後的精度
%e 用科學計數法格式化浮點數
%E 作用同 %e,用科學計數法格式化浮點數
%g 根據值的大小決定使用 %f 或 %e
%G 作用同 %g,根據值的大小決定使用 %f 或者 %E

格式化操作符輔助命令

m.n m 是顯示的最小總寬度,n 是小數點後的位數

  • 用於左對齊
  • 在正數前面顯示加號(+)

在八進位制數前面顯示 '0o',在十六進位制數前面顯示 '0x' 或 '0X'

0 顯示的數字前面填充 '0' 取代空格

Python 的轉義字元及其含義

' 單引號
" 雙引號
\a 發出系統響鈴聲
\b 退格符
\n 換行符
\t 橫向製表符(TAB)
\v 縱向製表符
\r 回車符
\f 換頁符
\o 八進位制數代表的字元
\x 十六進位制數代表的字元
\0 表示一個空字元
\ 反斜槓

>>> '%c' % 97
'a'
>>> '%c %c %c' % (97,98,99)
'a b c'
>>> '%d + %d = %d' % (4,5,4+5)
'4 + 5 = 9'
>>> '%f' % 27.658
'27.658000'
>>> '%e' % 27.658
'2.765800e+01'
' 27.7'
>>> '%.2e' %27.658
'2.77e+01'
>>> '%-10d' % 5
'5         '
>>> '%#o' % 10
'0o12'
>>> '%#X' % 108
'0X6C'

016 序列!序列!

  • 列表、元組和字串的共同點
    ++ 都可以通過索引得到每一個元素
    ++ 預設索引值總是從0開始
    ++ 可以通過分片的方法得到一個範圍內的元素的集合
    ++ 有很多共同的操作符(重複操作符、拼接操作符、成員關係操作符)

list()把一個可迭代物件轉化為列表

>>> a=list()
>>> a
[]
>>> b='I love FishC.com'
>>> b=list(b)
>>> b
['I', ' ', 'l', 'o', 'v', 'e', ' ', 'F', 'i', 's', 'h', 'C', '.', 'c', 'o', 'm']
>>> c=(1,1,2,3,5,8,13,21,34)
>>> c=list(c)
>>> c
[1, 1, 2, 3, 5, 8, 13, 21, 34]

tuple([iterable])把一個可迭代物件轉換為元組

str(obj)把obj物件轉換為字串

max()返回序列或者引數集合中的最大值

min()返回序列或者引數集合中的最小值

sum(iterable[,start=0])返回序列iterable和可選引數start的總和

>>> tuple2=(3.1,2.3,3.4)
>>> sum(tuple2)
8.8

sorted()返回從小到大的排序

>>> numbers=(1,18,32,0,-98,45,73,20)
>>> sorted(numbers)
[-98, 0, 1, 18, 20, 32, 45, 73]
>>> reversed(numbers)
<reversed object at 0x0000023EE499F908>
>>> list(reversed(numbers))
[20, 73, 45, -98, 0, 32, 18, 1]

017 函式:python的樂高積木

用 def 關鍵字建立一個函式

>>> def MyFirstFunction():
	print('這是我建立的第一個函式')
	print('我表示很激動')
	print('在此,我要感謝各位……')

	
>>> MyFirstFunction()
這是我建立的第一個函式
我表示很激動
在此,我要感謝各位……

>>> def MySecondFunction(name):
	print(name+'我愛你!')

	
>>> MySecondFunction()
Traceback (most recent call last):
  File "<pyshell#31>", line 1, in <module>
    MySecondFunction()
TypeError: MySecondFunction() missing 1 required positional argument: 'name'
>>> MySecondFunction('小甲魚')
小甲魚我愛你!
>>> MySecondFunction('小魷魚')
小魷魚我愛你!
>>> def add(num1,num2):
	result=num1+num2
	print(result)

	
>>> add(1,2)
3

return()函式的返回值

>>> def add(num1,num2):
	return (num1+num2)

>>> print(add(5,6))
11