Python序列類型的方法及類型轉換
0.上節課整理
1.聲明變量,變量的三個屬性,變量的命名規則,什么是變量?
2.數值類型(4種),以及常用運算符
3.三種序列類型,如何定義?可變與不可變
4.序列類型的取值,(索引,切片,步長) # 正負只是決定取值方向
4.如何判斷可變與不可變
5.dir(),help(),type(),id(),print() 內置函數
常見的錯誤與問題:
1.print與idle直接運行
2.NameError:'x' is not defined
3.各種彈出提示框的報錯:沒注釋掉非代碼片段,少了符號,中文符號。
4.shell中返回值和print都會被打印出來,但是你可以用一個變量得到返回值打印,但是你用
print就不能用一個變量來得到print打印的內容
1.list的常用方法
2.字符串常用的方法
3.序列類型的轉換及成員運算
1.list的常用方法
列表方法不多,每一種都會講解
dir(list)可以查看列表的所有方法
L.append(object) -> None -- append object to end
L.clear() -> None -- remove all items from L
L.copy() -> list -- a shallow copy of L
L.count(value) -> integer -- return number of occurrences of value
L.extend(iterable)-> None -- extend list by appending elements from the iterable
L.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present.
L.insert(index, object) -- insert object before index
L.pop([index]) -> item -- remove and return item at index (default last).
Raises IndexError if list is empty or index is out of range.
L.remove(value) -> None -- remove first occurrence of value.
Raises ValueError if the value is not present.
L.reverse() -- reverse *IN PLACE*
L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE*
附加:
內置函數:sorted() reversed()
2.str常用的方法
字符串的方法有44種,本節課只會挑選常用的講解,但會給大家一份文件,里面有44中字符串方法的講解。
S.count(sub[, start[, end]]) -> int
S.find(sub[, start[, end]]) -> int
Return -1 on failure.
S.index(sub[, start[, end]]) -> int
Like S.find() but raise ValueError when the substring is not found.
S.endswith(suffix[, start[, end]]) -> bool
S.startswith(prefix[, start[, end]]) -> bool
S.isalpha() -> bool
S.isdigit() -> bool
S.lower() -> str
S.upper() -> str
S.replace(old, new[, count]) -> str
S.split(sep=None, maxsplit=-1) -> list of strings
S.join(iterable) -> str
數值類型主要是用來是做運算的,所以還會有如下的運算符
#數值運行常用運算符
+ - * / //(整除,向下取整) %(取余) ** (冪)
#賦值運算符
= += -= *= /= ....
基本數值類型中前三種是常用的,復數在數學里面用得多,但是一般是用不上的。
3.數據類型的轉換及成員運算
01.類型轉換
在python中三種序列類型,序列類型簡單來說就是對象里面的元素是有順序的。
既然都是有序,那么這三者之間可以相互轉換嗎?
字符串 str
列表 list
元組 tuple
可變序列:list
不可變序列:tuple,str
序列類型轉換:
str(),list(),tuple()
數值類型轉換:
int(),float(),complex(),bool()
序列類型做為基本的數據類型是大家必須要掌握的,在python中大家會經常見到這三種數據類型。
02.總說運算符
算數運算: + - * / // % **
比較運算:
==
!=
>
<
>=
<=
賦值運算:
=
+= 、 -=、 *=、 /=、 %= 、**=、 //=
邏輯運算:
and
or
not
成員運算:
in
not in
運算符的優先級
運算符 | 描述 |
---|---|
** | 指數 (最高優先級) |
*,/,%,// | 乘,除,取模和取整除 |
+,- | 加法減法 |
<,>,<=,>= | 比較運算符 |
==,!= | 等于運算符 |
= ,%= ,/=, //=, -=, +=, *=, **= | 賦值運算符 |
is , is not | 身份運算符 |
in, not in | 成員運算符 |
not, or , and | 邏輯運算符 |
總結
last_li = ['1',['2','nvzhuangdalao', 'Thailander'],
['2','Java', 'Python', 'Ruby', 'PHP', ['3','zhaoliying','guanxiaotong','Hi python']],
['2','liuguoliang', 'luoshengmen', ('kezhendong','lamo'), ['3','luhan','wuyifan','wangbaoqiang']]
]
1.如何取出('kezhendong','lamo')
2.如何去除'zhaoliying'中的'zhao'?
3.如何刪除'nvzhuangdalao'?
Python中數值類型和我們日常使用沒有差別,是一樣的。對于序列類型,大家記住每種序列類型的定義和通用操作,在后面使用多了之后自然就能加深理解。
第二次作業
#1.用3種方法,往列表里面插值
#2.給定列表 li =['a','b','c','d'],要求用2種方法, 將列表'c'元素,替換成'jianeng'
# li=['a','b','jianeng','d']
#3.te = 'string test' 如何把te 中的'test' 替換成'OK'
#4.將字符串 s ='hello python !',轉換成列表 li=['hello','python','!']
L.append(obj) 在列表末尾添加新的對象。
L.clear() 清空整個列表。
L.copy() 復制列表,和L[:]的復制方式一樣屬于淺復制。
L.count(obj) 統計某個元素在列表中出現的次數。
L.extend(obj) 用obj擴展原來的列表。 obj可以是列表和元組,如果是字典,則只會添加字典的key
L.index(obj) 從列表中找某個值第一個匹配項的索引位置。
L.insert(index,obj) 插入元素,可以指定位置。
L.pop(index) 出棧,可以指定位置。index默認是L[-1]
L.remove(obj) 移除指定元素從左邊開始的第一個。
L.reverse() 反向列表中元素。
L.sort() 對原列表進行排序。列表中的元素要類型相同 (key = len int lambda)
內置函數:
sorted() 和 reversed()
s.count(x):返回字符串x在s中出現的次數,帶可選參數
s.endswith(x):如果字符串s以x結尾,返回True
s.startswith(x):如果字符串s以x開頭,返回True
s.find(x) :返回字符串中出現x的最左端字符的索引值,如果不在則返回-1
s.index(x):返回字符串中出現x的最左端的索引值,如果不在則拋出valueError異常
s.isalpha () :測試是否全是字母,都是字母則返回 True,否則返回 False.
s.isdigit () :測試是否全是數字,都是數字則返回 True 否則返回 False.
s.islower () :測試是否全是小寫
s.isupper () :測試是否全是大寫
s.lower () :將字符串轉為小寫
s.upper () :將字符串轉為大寫
s.replace (x,y) :子串替換,在字符串s中出現字符串x的任意位置都用y進行替換
s.split():返回一系列用空格分割的字符串列表
s.split(a,b):a,b為可選參數,a是將要分割的字符串,b是說明最多要分割幾個
int('12',16)這里有兩個地方要注意:1)12要以字符串的形式進行輸入,如果是帶參數base的話
2)這里并不是將12轉換為16進制的數,而是說12就是一個16進制的數,int()函數將其用十進制數表示,如下
complex(real,[,imag])
complex(1) 1+0j complex(1,2) 1+2j complex('1')1+0j
repr()是將一個對象可視化,使用字符串輸出,使編程人員看到其的內部結構