摘要:字符串進階原始字符串表示方式及使用如何格式化字符串中文字符串的使用原始字符串表示方式及使用防止轉(zhuǎn)義字符輸入過多而使代碼閱讀性下降注意原始字符串不得以結(jié)尾。列表中可以包含任何數(shù)據(jù)類型,也可包含另一個列表。
1.python的數(shù)據(jù)類型:
字符串
整數(shù)
浮點數(shù)
類型轉(zhuǎn)換
字符串編碼
列表、元組與字典
2.應用:
序列及其通用操作
相關(guān)邏輯運算
1.Python中的字符串通常由單引號“"”、雙引號“"”、三個單引號或三個雙引號包圍的一串字符組成
2.字符串還可以通過序號(序號從0開始)來取出其中某個字符,例如"abcde"[1]取得的值為"b"
3.當字符串內(nèi)含有單引號時,如果用單引號字符串就會導致無法區(qū)分字符串內(nèi)的單引號與字符串標志的單引號,就要使用轉(zhuǎn)義字符串,如果用雙引號字符串就可以在字符串中直接書寫單引號即可。比如:"abc"dd"ef"、"acc"d"12"。
4.三引號字符串可以由多行組成,單引號或雙引號字符串則不行,當需要使用大段多行的字符串行就可以使用它。比如:
""" This is a word. hello world. """
5.常見的轉(zhuǎn)義字符如下:
n 換行符;
t 制表符(Tab);
r 回車(Enter);
“”字符;
" 單引號字符串中的單引號;
" 雙引號字符串中的雙引號。
比如以下字符串中都包含了轉(zhuǎn)義字符:
"abc abc" #包含一個換行符的字符串 "abc"2"abc" #字符串中包含被單引號引起的2
6.字符串的運算中“+”就是連接字符串;“*”就是單字符串的多次連接
字符串操作 | 描述 |
---|---|
string.capitalize() | 將字符串的第一個字母大寫(返回新的值,不修改原值) |
string.count() | 獲得字符串中某一子字符串的數(shù)目 |
string.find() | 獲得字符串中某一子字符串的起始位置,無則返回—1 |
string.isalnum() | 檢測字符串是否只由0-9A-Za-z |
string.isalpha() | 檢測字符串是僅包含A-Za-z |
string.isdigit() | 檢測字符串是僅包含數(shù)字 |
string.islower() | 檢測字符串是否均為小寫字母 |
string.isspace() | 檢測字符串中所有字符是否均為空白字符 |
string.istitle() | 檢測字符串中的單詞是否為首字母大寫 |
string.isupper() | 檢測字符串是否均為大寫字母 |
string.join() | 連接字符串 |
string.1ower() | 將字符串全部轉(zhuǎn)換為小寫 |
string.split() | 分割字符串 |
string.swapcase() | 將字符串中大寫字母轉(zhuǎn)換為小寫,小寫字母轉(zhuǎn)換為大寫 |
string.tit1e() | 將字符串中的單詞首字母大寫 |
string.upper() | 將字符串中全部字母轉(zhuǎn)換為大寫 |
len(string) | 獲取字符串長度 |
注意兩個函數(shù):
split()函數(shù)返回以指定的字符將字符串分割成為列表形式并返回,但并不改變原字符串,它的原型如下:
split( [sep [,maxsplit]])
其參數(shù)含義如下:
sep 可選參數(shù),指定分割的字符,默認為空格; maxsplit 可選參數(shù),分割次數(shù)。
join()函數(shù)將原字符串插入?yún)?shù)字符串中的每兩個字符之間。如果參數(shù)字符串中只有一個字符,那么返回參數(shù)字符串。同樣,join()并不改變原字符串,只是返回一個新的字符串。
1.1.1字符串進階原始字符串表示方式及使用
如何格式化字符串
中文字符串的使用
1.原始字符串表示方式及使用
防止轉(zhuǎn)義字符輸入過多而使代碼閱讀性下降
print(r"abc abc") result:abc abc print("abc abc") result:abc abc
原始字符串不得以“”結(jié)尾。見圖3.5所示的第三行(第二個示例)及后面錯誤提示。
2.如何格式化字符串
格式化串 | 意義 |
---|---|
%c | 單個字符 |
%d | 十進制整數(shù) |
%o | 八進制整數(shù) |
%s | 字符串 |
%x | 十六進制整數(shù),其中的字母小寫 |
%X | 十六進制整數(shù),其中的字母大寫 |
print("%d+%d=%x" %(1,89,1+89))
3.中文字符串的使用
在網(wǎng)絡上發(fā)送字符串時要求必須轉(zhuǎn)換為字節(jié)串(bytes)形式,那么就要使用字符串的encode()方法,它返回的是字節(jié)串(bytes),其形式如下:
encode(encoding="utf-8", errors= "strict")
參數(shù)意義如下:
encoding默認編碼方式為utf-8,也可以使用gbk、gb2312等方式編碼;
errors編碼錯誤的處理方式,默認為strict(報錯),也可以是ignore、replace等形式。反之,如果從網(wǎng)絡上接收的字節(jié)串(bytes)若為字符串,則要使用字節(jié)串(bytes)的decode()方法來進行解碼,才能看到原來的字符串,其原型如下: decode(encoding="utf-8", errors="strict") 其參數(shù)含義與前面encode()函數(shù)相同,返回的是字符串類型數(shù)據(jù)。
word="我好中意你!" socket_word=word.encode("gb2312","strict") print(socket_word.decode("gb2312"))注意
解碼時的encoding要與編碼時的encoding要一致,否則不能還原或報錯。
1.2 整數(shù)(int)0o[0O]數(shù)字 表示八進制整數(shù)(例如:0O24、0O24)
0x[0X]數(shù)字 表示十六進制整數(shù)(例如:0x3F、0X3F)
0b[0B]數(shù)字 表示二進制整數(shù)(例如:Obl01、0B101)
運算符 | 描述 |
---|---|
** | 乘方運算符 |
* | 乘法運算符 |
/ | 除法運算符 |
// | 整除運算符 |
% | 取余運算符 |
+ | 加法運算符 |
- | 減法運算符 |
︳ | 位或 |
^ | 位異或 |
& | 位與 |
<< | 左移運算 |
>> | 右移運算 |
“//”運算符就是取商而丟棄余數(shù),比如14÷4=3……2,所以14//4=3;而“%”運算符的運算結(jié)果是余數(shù)而丟棄商,所以14%4=2;“/”運算符的運算結(jié)果為浮點數(shù),即使是兩個整數(shù)相除。
|、^、&、<<、>>運算符都是位運算符,要依據(jù)其二進制形式進行運算
運算符優(yōu)先級從高到低排列如下:
**
*、/、%
+、-
|、^、&、<<、>>
沒有把握的情況下可以運用括號。
1.3 浮點數(shù)(float)19. | 小數(shù)部分為零,可以不寫; |
.098 | 整數(shù)部分為零,可以不寫; |
-2e3 | 科學計數(shù)法,表示—2×103 |
浮點數(shù)可以參加的運算支持表3.2中除位運算之外的運算符
1.4類型轉(zhuǎn)換str(object=") 可以將整數(shù)和浮點數(shù)轉(zhuǎn)換為字符串,默認建立空字符串;
int(x, base=10) 將數(shù)字字符串或數(shù)值轉(zhuǎn)換為整數(shù)(base表示數(shù)制);
float(x) 將字符串或數(shù)值轉(zhuǎn)換為浮點數(shù)。
此外:
str()可以創(chuàng)建一個空字符串。
int()也可以建立一個默認值為0的整數(shù)。
float()可以建立一個默認值為0.0的浮點數(shù)。
進制之間的轉(zhuǎn)換:
dec = int(input("輸入數(shù)字:")) print("十進制數(shù)為:", dec) print("轉(zhuǎn)換為二進制為:", bin(dec)) print("轉(zhuǎn)換為八進制為:", oct(dec)) print("轉(zhuǎn)換為十六進制為:", hex(dec))
注意:
將字符串形式的數(shù)值轉(zhuǎn)換為整數(shù)時,其中只能包含數(shù)字。
具體實現(xiàn)
十進制到二進制:
def dec2bin(num): l = [] if num < 0: return "-" + dec2bin(abs(num)) while True: num, remainder = divmod(num, 2) l.append(str(remainder)) if num == 0: return "".join(l[::-1])
十進制到八進制:
def dec2oct(num): l = [] if num < 0: return "-" + dec2oct(abs(num)) while True: num, remainder = divmod(num, 8) l.append(str(remainder)) if num == 0: return "".join(l[::-1])
十進制到十六進制:
base = [str(x) for x in range(10)] + [ chr(x) for x in range(ord("A"),ord("A")+6)] def dec2hex(num): l = [] if num < 0: return "-" + dec2hex(abs(num)) while True: num,rem = divmod(num, 16) l.append(base[rem]) if num == 0: return "".join(l[::-1])1.5 標志符與賦值號 1.5.1 標志符
1.標志符是高級程序設計語言必須使用的用來代表數(shù)據(jù)的符號。Python語言規(guī)定標志符只能以字母或下畫線引導,其后跟隨0個或多個非空格字符、下畫線或數(shù)字,并且是大小寫敏感的。它不能與Python語言的關(guān)鍵字(Python語言中已經(jīng)定義過的字)相同。
2.在程序設計中需要自定義變量名、函數(shù)名、類名等名稱。
1.5.2 賦值符“=”的作用是將對象引用與內(nèi)存中某對象進行綁定。如果對象已經(jīng)存在,就簡單地進行綁定,以便引用右邊的對象;若對象不存在,就由“=”操作符創(chuàng)建對象并綁定。
x = 3 #內(nèi)存中還不存在3,則在內(nèi)存中創(chuàng)建3,并將x與之綁定。此時x引用3 y = 3 #內(nèi)存已存在3,則直接將y與內(nèi)存中的3進行綁定。 #此時x與y同時綁定了內(nèi)存中同一個對象3 y = x + 5 #此操作會計算右邊的值為8,內(nèi)存中不存在8,則在內(nèi)存中創(chuàng)建8,將y綁定到它。
x = 2 y = 2 print(x is y) #結(jié)果為True,x和y引用同一個對象,所以結(jié)果為True x = "a" #x被重新綁定到一個字符串值上(原來綁定的是整數(shù)2) y = 3.45 #y被重新綁定到一個浮點數(shù)值上(原來綁定的是整數(shù)2) print("x") #顯示x綁定的值 "a" print("y") #顯示y綁定的值 3.45
x = 2 y = "a" x + y #x為整數(shù),y為字符串,運算時引發(fā)錯誤1.6 Python結(jié)構(gòu)數(shù)據(jù)類型
Python語言中結(jié)構(gòu)數(shù)據(jù)類型有很多種,但最常用的主要有列表、元組和字典。
1.6.1 列表(list)列表是以方括號“[]”包圍的數(shù)據(jù)集合,不同成員間以“,”(半角符號)分隔。列表中可以包含任何數(shù)據(jù)類型,也可包含另一個列表。列表也可以通過序號來訪問其中的成員。
list() #創(chuàng)建一個空列表[] [] #創(chuàng)建一個空列表[] [1,] #創(chuàng)建一個只有一個元素的列表[1] [1,2,3] #創(chuàng)建一個有三個元素的列表[1, 2, 3] alist = ["a",1,"b",2.0] #創(chuàng)建一個包含不同數(shù)據(jù)元素的列表 alist[2] #訪問列表alist中的第3個元素(序號為2)"b" [1,2]+ [3,4] #列表支持加法運算[1, 2, 3, 4] [None] * 5 #列表支持乘法運算[None, None, None, None, None]
列表的操作函數(shù)
列表操作 | 描述 |
---|---|
list.append(x) | 列表尾部追加成員x,x作為一個整體添加進列表(列表做整體) |
list.count(x) | 返回列表中的參數(shù)x出現(xiàn)的次數(shù) |
list.extend(L) | 將列表L中的元素取出來追加到原列表尾部 |
list.index(x) | 返回參數(shù)x在列表中的序號(x不存在則報錯) |
list.insert(index,object) | 向列表中指定位置(index)前面插入數(shù)據(jù)(object)插入方式與append相同將對象作為整體(列表做整體) |
list.pop() | 刪除列表中尾部的成員并返回刪除的成員 |
list.remove(x) | 刪除列表中的指定成員(有多個則只刪除第一個)指定成員不存在則報錯 |
list.reverse() | 將列表中成員的順序顛倒(原列表上執(zhí)行) |
list.sort() | 將列表中成員排序(要求其成員可排序,否則報錯)默由小到大,可以使用reverse函數(shù)由大到小修改。 |
注意
在列表操作中并不返回列表,而只是修改列表。
1.6.2 元組(tuple)元組可以看成是一種特殊的列表,與列表不同的是元組一旦建立就不能改變。既不能改變其中的數(shù)據(jù)項,也不能添加和刪除數(shù)據(jù)項。因此,想讓一組數(shù)據(jù)不能被改變就把它們放入到一個元組中即可,并且任何企圖修改元組的操作都會發(fā)生錯誤的。(只讀的列表,可以用列表的方式去查看)
元組的基本形式是以圓括號“()”括起來的數(shù)據(jù)元素,它也可以通過序號來引用其中的元素。
() #創(chuàng)建空元組() tuple() #創(chuàng)建空元組() (1,) #創(chuàng)建只有一個元素的元組(1,) 2,3 #直接用逗號隔開兩個值,可以創(chuàng)建一個元組(2, 3) x,y=2,3 #右邊為一元組,自動將元組第一個數(shù)值與x綁定,第二個與y綁定 x,y=y,x #交換x與y的值(本質(zhì)上右邊是一個元組) atpl = (1,2,3) atpl [1] #引用元組的序號為1的元素2
注意
建立只有一個元素的元組,元素后要有一個“,”。
1 字典中每個成員是以“鍵:值”對的形式存在的。
2 字典以大括號“{}”包圍的以“鍵:值”對方式聲明和存在的數(shù)據(jù)集合。與列表的最大不同在于字典是無序的,其成員位置只是象征性的,在字典中通過鍵來訪問成員,而不能通過其位置來訪問該成員。
{} #建立空字典{} dict() #建立空字典{} adct = {"a":1,"b":2,"c":3.4} adct["a"] #用鍵名引用成員 adct[1] #試圖用序號引用字典成員,結(jié)果發(fā)生錯誤 Traceback (most recent call last): File "", line 1, in adct[l] KeyError: 1
字典操作 | 描述 |
---|---|
dic.clear() | 清空字典 |
dic.copy() | 復制字典 |
▲dic.get(k,[default]) | 獲得鍵k對應的值,不存在則返回default |
dic.items() | 獲得由鍵和值組成的迭代器 |
dic.keys() | 獲得鍵的迭代器 |
dic.values() | 獲得值的迭代器 |
▲dic.pop(k) | 刪除k:v成員對,并返回刪除key對應的值 |
▲dic.update(adict) | 從另一個字典更新成員(不存在就創(chuàng)建,存在則覆蓋) |
▲dic.fromkeys(iter,value) | 以列表或元組中給定的鍵建立字典,默認值為value |
dic.popitem() | 從字典中刪除任一k:v項并返回它 |
▲dic.setdefault(k,default) | 若字典中存在key值為k的,則返回其對應的值;否則,在字典中建立一個k:default字典成員 |
dic.items() dict_items([("a", 1), ("b", 2), ("c", 3)])
dic.keys() dict_keys(["a", "b", "c"])
dic.values() dict_values([1, 2, 3])
字典例題:用三種方法編程實現(xiàn)初始化字典{"a":1,"b":2],并設置其key為’c’的對應值為3。
alst=["a","b","c"] number=[1,2,3] dict={}.fromkeys(alst) print(len(number)) for i in range(len(number)): dict[alst[i]]=number[i] else: print(dict)1.7內(nèi)置常量與邏輯運算符、比較運算符
1.7.1 常用內(nèi)置常量
None的意義正是其字面意義,即“無”,常用來表示沒有值的對象。
True(真)與False(假)是Python的邏輯型數(shù)據(jù)。
Python中邏輯假包括False,None,0,"(空字符串),()(空元組),[](空列表)和{}(空字典)等,而其余任何值都視為真。
1.7.2 Python中邏輯運算符
與(and)、或(or)、非(not)
1.7.3 Python中比較運算符
運算符 | 意義 |
---|---|
== | 相等 |
> | 大于 |
< | 小于 |
>= | 大于或等于 |
<= | 小于或等于 |
!= | 不等于 |
注意
字符(串)也是可以進行大小比較的,其比較依據(jù)的是其ascii碼。
1.7.4 Python中其他邏輯操作符
1.is和is not
有文獻資料中稱他們?yōu)樯矸莶僮鞣琲s和is not都是二元操作符,用于判斷左端與右端對象引用是否指向同一個對象。
2.in和not in
in和not in稱為成員操作符,用于檢查某個數(shù)據(jù)是否存在于某包含多個成員的數(shù)據(jù)類型(如字符串、列表、元組、字典等)之中。如果是成員關(guān)系,則in返回真;否則返回假;而not in則相反。
注意
成員操作符對于字典來說檢查的是鍵成員而不是值成員。
字符串是字符的序列,列表和元組則是任意Python數(shù)據(jù)類型或?qū)ο蟮男蛄小TM是不可變的,字符串也是不可以變的(修改字符串就是重新創(chuàng)建一個字符串)。
1.8.1 序列切片對于任何一個序列,它們的元素都是有序的,都可以使用序號來獲取每一項成員的值,這在前面都已經(jīng)講述。另一方面Python中序列的序號既可以從左至右從0開始計數(shù),又可以從右至左從-1開始計數(shù)。如圖3.8所示,序列共有8個元素,從左至右數(shù)為0至7,從右至左數(shù)為-1至-8。
以序號來取序列成員的話,同一成員可以有兩個序號取法。
序列的切片是指用形如[start:end:step]來取序列中的部分成員數(shù)據(jù)項。
意思是從序列中start序號開始到end前一個結(jié)束,每隔step個取一個成員。
例子:alst=[0,l,2,3,4,5,6,7]
使用形式 | 意義 |
---|---|
alst[:] | 取全部成員數(shù)據(jù)項 |
alst[0:] | 取全部成員數(shù)據(jù)項 |
alst[:-1] | 取除最后一個成員之外的所有成員數(shù)據(jù)項 |
alst[2:5] | 得到[2,3,4] |
▲alst[::2] | 每隔1個取一個成員,得到[0,2,4,6] |
alst[0:5:2] | 從0至4每隔一個取一項,得到[0,2,4] |
▲alst[::-l] | 從右至左取全部成員,得到[7,6,5,4,3,2,1,0] |
alst[5:0:-2] | 從5至0(不包括0)從右至左每隔一個成員取一個成員,得到[5,3,1] |
方 法 | 操作方法 |
---|---|
len(s) | 返回s的元素數(shù)(長度) |
min(s) | 返回s中的最小值 |
max(s) | 返回s中的最大值 |
sum(s[,start] | 返回s中各項的和 |
all(s) | s中所有項為真,則返回真,否則返回假 |
any(s) | s中有一項為真,則返回真,否則返回假 |
alst = [0,1,2,3,4] sum (alst,15) #求所有元素的和,連同15一起加起來 #25 all (alst) #False any(alst) #True sum(alst[0:3]) #3
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/42869.html
摘要:布爾值布爾值和布爾代數(shù)的表示完全一致,一個布爾值只有兩種值的數(shù)據(jù)類型可以通過內(nèi)置的函數(shù)查詢,例如還可以用來判斷和的區(qū)別在于不會認為子類是一種父類類型。會認為子類是一種父類類型。基本功能是進行成員關(guān)系測試和刪除重復元素。 ...
摘要:下文統(tǒng)一稱為數(shù)組是存儲單一數(shù)據(jù)類型的多維數(shù)組同語言數(shù)組直接保存數(shù)值而則是能夠?qū)?shù)組進行處理的函數(shù)。動態(tài)數(shù)據(jù)類型與的數(shù)組和的這些不可變數(shù)據(jù)類型的適用場景等可變數(shù)據(jù)類型適用于需要不斷對原始數(shù)據(jù)進行修改的場景。 showImg(https://segmentfault.com/img/remote/1460000018925396);Numpy,是python中的一個矩陣計算包,功能類似ma...
摘要:根據(jù)有效范圍作用域分為全局變量和局部變量。類型以開頭標識類型以開頭標識類型以進制的字節(jié)碼表示,實際上是一個字節(jié)串,回應了它的另一個名字。 < 返回索引頁 基本語法 Hello World 代碼注釋 關(guān)鍵字 數(shù)據(jù)類型 變量、常量 變量 變量賦值 變量命名 變量的作用域 常量 字符串與編碼 字符轉(zhuǎn)義 字符編碼 字符串操作 運算符與表達式 運算符 表達式 ...
摘要:例如使用表示年齡,使用表示年份等。如下圖所例以存儲數(shù)據(jù)的變量標識符為和存儲數(shù)據(jù)的變量標識符為為例,表示變量與內(nèi)存單元之間的關(guān)系。用于設定分隔符,默認使用空格作為分隔。 1.2? ? 標識符和關(guān)鍵字 1.2.1? ? ?標識符 在日常生活中我們?yōu)榱朔奖阄覀冊谛袨椤⒄Z言等方面進行溝通與交流,我們...
閱讀 848·2023-04-25 23:59
閱讀 3737·2021-10-08 10:04
閱讀 1679·2019-08-30 14:05
閱讀 1015·2019-08-30 13:58
閱讀 489·2019-08-29 18:41
閱讀 1125·2019-08-29 17:15
閱讀 2318·2019-08-29 14:13
閱讀 2744·2019-08-29 13:27