一、變量
1、如何定義一個變量:
在Python中定義變量時無需聲明,直接使用賦值語句即可創建你想要的變量,但是變量的命名應該遵守如下規則:
1)變量名不能使用Python中的保留字(文章最後解釋何為保留字)
2)變量名必須是一個有效的標識符(文章最後解釋何為標識符)
3)在滿足上面兩個條件下我們儘量使用有實際意義的單詞作為變量名
2、舉例:定義一個變量myname,將「Jerry」賦值給他;定義一個變量age,將24賦值給他;最後輸出這兩個變量的值
3、使用內置函數tepy()、id()分別輸出變量類型和變量所指的內存地址
![]()
二、基本數據類型
Python基本數據類型主要關注六個:數字、字符串、列表、元組、字典、集合,本篇先介紹數字和字符串類型,列表、元組、字典、集合在下篇文章進行介紹。
數字類型:在Python中數字類型主要包括整型(int)、浮點型(float)、複數(complex)
1)整型:用來表示整數,包含0和正負整數,需要注意的是在Python中整型值的位數是任意的,可以擴展到可用內存的限制。我們可以用int(x)函數將x轉化為一個整數。
2)浮點型:由整數部分和小數部分組成,浮點型也可以用科學計數法表示。我們可以用float(x)函數將x轉化為一個浮點數。
3)複數:和數學中複數的形式完全一樣,由實部和虛部組成,用j或J表示虛部,例如1+2J,同時我們也可以用complex(1,2)表示複數1+2J。
字符串類型:就是連續的字符序列,可以是計算機所能表示的一切字符的集合,單行的字符序列我們常用單引號或雙引號括起來,分布在多行的字符序列我們用三引號括起來。
1)Python訪問字符串中的值
使用索引訪問單個字符:
![]()
使用切片器截取字符串中的一部分字符:
舉例strs[start:stop:step]
Start:需要獲取的字符串的開始位,不寫的話默認為0
Stop:需要截取的字符串的結束位置
Step:截取的步長,默認為1
截取時可以從前往後(這時Start<Stop,Step大於0),也可以從後往前(這時Start>Stop,Step小於0),且截取時默認左閉右開(大於等於並小於)
下面附上從前往後和從後往前對應的索引值
舉例:
2)字符串常用操作方法
a.方法描述
分類方法描述參數字母大小寫capitalize()將字符串的首字母轉換為大寫,其餘字母均小寫;注意當字符串第一個字符非字母時輸出內容不變但是所有字母均小寫無參數title()將字符串所有單詞首字母轉換為大寫,其餘字母均小寫無參數upper()將字符串中所有小寫字母轉化為大寫,非字母字符不變無參數swapcase()將字符串中大寫字母轉換為小寫,小寫字母轉換為大寫,非字母字符不變無參數max(str)返回字符串中最大的字符;注意:Python中字符比較大小以其對應的ASCII碼值進行比較,可以使用ord()函數返回字符對應的ASCII碼值str:字符串min(str)返回字符串中最小的字符(即返回ASCII碼值最小的字符)str:字符串判斷構成isalnum()判斷字符串是否只由字母和數字構成,是則返回True,否則返回False無參數isalpha()判斷字符串是否只由字母組成,是則返回True,否則返回 False無參數isdigit()判斷字符串是否只由數字組成,是則返回True,否則返回 False無參數islower()判斷字符串是否只由小寫字母組成,是則返回True,否則返回 False無參數isspace()判斷字符串是否只由空格組成,是則返回True,否則返回False無參數istitle()判斷字符串是否滿足:首字母大寫,其餘小寫,滿足則返回True,不滿足則返回False無參數isupper()判斷字符串是否所有字母都是大寫,是則返回True,否則返回False無參數替換replace(old, new[, max])把字符串中的old(舊字符串)替換成new(新字符串),如果指定第三個參數max,則替換不超過max次old:將被替換的子字符串。New:新字符串,用於替換old子字符串,max:最大替換次數expandtabs(tabsize=8)把字符串中的tab符號\t轉為空格,tab符號\t默認的空格數是8,在第 0、8、16...等處給出制表符位置,如果當前位置到開始位置或上一個制表符位置的字符數不足8的倍數則以空格代替tabsize:指定轉換字符串中的tab符號('\t')轉為空格的字符數str.maketrans(intab,outtab[,delchars])用於創建字符映射的轉換表,第一個參數是字符串,表示需要轉換的字符,第二個參數也是字符串,表示轉換的目標。兩個字符串的長度必須相同,為一一對應的關係。Python3中可以有第三個參數,表示要刪除的字符,也是字符串。注意maketrans()返回的是一個字符映射轉換表,需要用 translate()方法轉換intab:需要轉換的字符組成的字符串,outtab:轉換的目標字符組成的字符串,delchars:可選參數,表示要刪除的字符組成的字符串填充至指定長度zfill(width)返回指定長度的字符串,原字符串右對齊,前面填充0。width:指定返回字符串的總長,原字符串右對齊,前面填充0rjust(width[, fillchar])返回一個原字符串右對齊,並使用指定字符(默認空格)填充至長度width的新字符串。如果指定的長度小於字符串的長度則返回原字符串。width:指定填充指定字符後中字符串的總長,fillchar: 填充的字符,默認為空格center(width[, fillchar])返回一個原字符串居中,並使用指定字符(默認空格)填充至長度width的新字符串。如果指定的長度小於字符串的長度則返回原字符串。width:指定填充指定字符後中字符串的總長,fillchar: 填充的字符,默認為空格ljust(width[, fillchar])返回一個原字符串左對齊,並使用指定字符(默認空格)填充至長度width的新字符串。如果指定的長度小於字符串的長度則返回原字符串。width:指定填充指定字符後中字符串的總長,fillchar: 填充的字符,默認為空格檢查查找startswith(substr, beg=0,end=len(string))判斷字符串是否是以指定子字符串開頭,如果是則返回 True,否則返回 False。可選參數 beg 和 end 為檢索字符串的開始與結束位置str:檢測的字符串,substr:指定的子字符串,beg: 可選參數用於設置字符串檢測的起始位置,end:可選參數用於設置字符串檢測的結束位置endswith(suffix[, start[, end]])判斷字符串是否以指定後綴結尾,如果以指定後綴結尾返回True,否則返回False。可選參數start與end為檢索字符串的開始與結束位置suffix:該參數可以是一個字符串或者是一個元素,start:字符串中的開始位置,end:字符中結束位置find(str, beg=0, end=len(string))判斷字符串中是否包含子字符串str,如果指定beg和 end範圍,則檢查是否包含在指定範圍內,如果包含子字符串返回第一個查找到的子字符串的開始索引值,否則返回-1str:指定檢索的字符串,beg:開始索引,默認為0,end: 結束索引,默認為字符串的長度rfind(str, beg=0 end=len(string))返回字符串最後一次出現的位置,如果沒有匹配項則返回-1str:查找的字符串,beg:開始查找的位置,默認為0,end:結束查找位置,默認為字符串的長度index(str, beg=0, end=len(string))判斷字符串中是否包含子字符串str,如果指定beg和 end範圍,則檢查是否包含在指定範圍內,如果包含子字符串返回第一個查找到的子字符串的開始索引值,否則報錯,該方法與find()方法一樣,只不過如果str不在字符串中會報一個異常str:指定檢索的字符串,beg:開始索引,默認為0,end: 結束索引,默認為字符串的長度rindex(str, beg=0 end=len(string))返回字符串最後一次出現的位置,如果沒有匹配的字符串會報錯str:查找的字符串,beg:開始查找的位置,默認為0,end:結束查找位置,默認為字符串的長度刪除rstrip([chars])刪除字符串末尾的指定字符,默認為空格chars:指定刪除的字符,默認為空格lstrip([chars])刪除字符串開頭的指定字符,默認為空格chars:指定刪除的字符,默認為空格strip([chars])刪除字符串頭尾指定的字符,默認為空格或字符序列chars:移除字符串頭尾指定的字符序列。拼接與分割join(sequence)用於將序列中的元素以指定的字符連接生成一個新的字符串sequence:要連接的元素序列split(str="", num=string.count(str))通過指定分隔符對字符串進行切片,如果第二個參數 num 有指定值,則分割為 num+1 個子字符串。str:分隔符,默認為所有的空字符,包括空格、換行(\n)、制表符(\t)等,num:分割次數,默認為 -1, 即分隔所有統計數量或長度count(sub, start= 0,end=len(string))用於統計字符串裡某個字符出現的次數。可選參數為在字符串搜索的開始與結束位置。sub:搜索的子字符串,start:字符串開始搜索的位置,默認為第一個字符(第一個字符索引值為0),end:字符串中結束搜索的位置,默認為字符串的最後一個位置len(str)返回字符個數str:字符串
b.方法舉例
分類方法舉例輸出所有舉例設置全局變量str1 = "hello pYthon",str2 = "123 pYthon"字母大小寫capitalize()str1.capitalize()
str2.capitalize()Hello python
123 pythontitle()str1.title()
str2.title()Hello Python
123 Pythonupper()str1.upper()
str2.upper()HELLO PYTHON
123 PYTHONswapcase()str1.swapcase()
str2.swapcase()HELLO PyTHON
123 PyTHONmax(str)max(str1)t("t"的ASCII碼值是116)min(str)min(str1)返回空格(空格" "的ASCII碼值是32)判斷構成isalnum()str1.isalnum()Falseisalpha()str1.isalpha()Falseisdigit()str1.isdigit()Falseislower()str1.islower()Falseisspace()str1.isspace()Falseistitle()str1.istitle()Falseisupper()str1.isupper()False替換replace(old, new[, max])str1.replace("o","t")
str1.replace("o","t",1)'hellt pYthtn'
'hellt pYthon'expandtabs(tabsize=8)"abc\t123456789\tn".expandtabs()'abc 123456789 n'str.maketrans(intab,outtab[,delchars])test = "this is string example....wow!!!"
intab = "aeiou"
outtab = "12345"
deltab = "thw"
test.translate(str.maketrans(intab,outtab,deltab))'3s 3s sr3ng 2x1mpl2....4!!!'填充至指定長度zfill(width)str1.zfill(20)'00000000hello pYthon'rjust(width[, fillchar])str1.rjust(20,"1")'11111111hello pYthon'center(width[, fillchar])str1.center(20,"1")'1111hello pYthon1111'ljust(width[, fillchar])str1.ljust(20,"1")'hello pYthon11111111'檢查查找startswith(substr,beg=0,end=len(string))str1.startswith("o",4,8)Trueendswith(suffix[, start[, end]])str1.endswith("o",4,8)Falsefind(str, beg=0, end=len(string))str1.find("o",4,11)4rfind(str, beg=0 end=len(string))str1.rfind("o",4,11)10index(str, beg=0, end=len(string))str1.index("o",4,11)4rindex(str, beg=0 end=len(string))str1.rindex("o",4,11)10刪除rstrip([chars])str1.rstrip("on")'hello pYth'lstrip([chars])str1.lstrip("hel")
str1.lstrip("ehl")'o pYthon'
'o pYthon'strip([chars])str1.strip("hen")'llo pYtho'拼接與分割join(sequence)"-".join(str1)'h-e-l-l-o- -p-Y-t-h-o-n'split(str="", num=string.count(str))str1.split('o')
str1.split('o',1)['hell', ' pYth', 'n']
['hell', ' pYthon']統計數量或長度count(sub, start=0,end=len(string))str1.count('o')2len(str)len(str1)12
3)轉義字符
轉義字符是指使用反斜槓對一些特殊字符進行轉義,常用轉義字符如下表
轉義字符
描述
\
續行符
\n
換行符
\0
空
\t
橫向制表符
\v
縱向制表符
\"
雙引號
\'
單引號
\\
一個反斜槓
\f
換頁
\r
回車
\0dd
八進位數,dd表示字符,如\012表示換行
\xhh
十六進位數,hh表示字符,如\x0a表示換行
注意:在字符串界定符前面加上字母r或R,該字符串將原樣輸出,其中的轉義字符將不再進行轉義。
附錄:保留字和標識符解釋
保留字:Python中已經被賦予特殊意義的單詞,在寫代碼時不可以將這些保留字作為變量、函數、類、模塊及其他對象的名稱來使用。
使用以下代碼可以查找Python中的保留字:
import keyword
keyword.kwlist
標識符:指主要用來標識變量、函數、類、模塊及其他對象的名稱。
標識符命名規則:
1)由字母(A~Z 和 a~z)、下劃線和數字組成,不能包含空格、@、% 以及 $ 等特殊字符,但第一個字符不能是數字
2)不能使用Python中的保留字
3)標識符中的字母嚴格區分大小寫
4)Python中以下劃線開頭的標識符有特殊意義,我們儘量避免使用類似標識符:
a. 以單下劃線開頭的標識符(如_width),表示不能直接訪問的類屬性,其無法通過 from...import* 的方式導入
b. 以雙下劃線開頭的標識符(如__add)表示類的私有成員
c. 以雙下劃線作為開頭和結尾的標識符(如 __init__),是專用標識符