1.1 設(shè)置代碼格式,養(yǎng)成一個(gè)良好的Python代碼編寫習(xí)慣 2.1變量 3.1輸入和輸出 4.1運(yùn)算符 5.1 數(shù)據(jù)類型:整型 5.2 數(shù)據(jù)類型:浮點(diǎn)型 5.3 數(shù)據(jù)類型:字符串 5.3.1 字符串方法,注意字符串方法的用法,str.方法 5.4 數(shù)據(jù)類型:布爾值 6.1 容器內(nèi)容一:列表 6.1.1:列表的方法 6.2 容器二:元組 6.3容器三:字典 6.3.1.字典的方法 7.1 容器四:集合 8.1 控制流語(yǔ)句if,while,for 9.1函數(shù) 10.1函數(shù)編寫指南 1.1 設(shè)置代碼格式,養(yǎng)成一個(gè)良好的Python代碼編寫習(xí)慣1. 縮進(jìn) 建議每級(jí)縮進(jìn)都使用四個(gè)空格 2. 行長(zhǎng) 每行不超過80個(gè)字符 3. 空行 合理使用空行來(lái)讓代碼更利于閱讀 2.1變量例子1:變量的定義,通過=賦值,命名原則如下: 1)變量名只能包含 數(shù)字、字母、下劃線; 2)變量名不能使用數(shù)字開頭; 3)變量名不能包含空格,但可以使用下劃線_來(lái)區(qū)分不同意義的單詞; 4)變量名應(yīng)該既簡(jiǎn)單又具有描述性; 5)變量名最好使用小寫。 6)不要將Python關(guān)鍵字和函數(shù)名用作變量名。 例子2: 整型賦值給變量 >>> spam= 40 >>> spam 40 例子3: 字符串賦值給變量 >>> spam= 'Hello' >>> spam 'Hello' 例子4: 函數(shù)返回值賦值給變量 >>>myName = input() I am Olivia >>>myName 'I am Olivia' 例子5: 列表,元組,字典,集合賦值給變量,列表賦值給多個(gè)變量 >>>girlName, boyName, itName = ['Olivia', 'Jerry', 'dog'] >>>girlName 'Olivia' >>>boyName 'Jerry' >>>itName 'dog' >>> spam= (1, 2, 4) >>> spam (1, 2, 4) >>> myCat= {'size':'fat', 'color':'gray', 'disposition':'loud'} >>> myCat {'size':'fat','color':'gray', 'disposition':'loud'} >>>treeName = {'a', 'b', 'c'} >>>treeName {'b', 'a', 'c'} 例子6: 注意變量的特性,可以將復(fù)雜的表達(dá)式或者計(jì)算式賦值給變量,后續(xù)只通過使用變量名來(lái)完成復(fù)雜的表達(dá)或者計(jì)算過程。 >>>first_name = 'ada' >>>last_name = 'lovelace' >>>full_name = first_name + '' + last_name >>>message = 'hello' + full_name.title() + '!' >>>print(message) 例子7:變量的一個(gè)重要特性,變量代表的是一種引用(只對(duì)可變數(shù)據(jù)類型來(lái)說(shuō),變量賦值的是引用;對(duì)于不可變類型比如數(shù)值、字符串、元組,變量保存的是值非引用),并不是把真實(shí)值賦值給了變量 >>>treeName = ['a', 'b', 'c'] >>>myName = treeName >>>myName ['a', 'b', 'c'] >>> treeName[1]= treeName[0] >>>myName ['a', 'a', 'c'] 例子8:增強(qiáng)賦值,利用變量自己給自己賦值 >>> spam= 'Jerry' >>> spam= spam + 'Olivia' >>> spam 'JerryOlivia' 用變量自己給自己賦值,有以下幾種符號(hào):+=,-=,*=,/=,%= >>> spam+= 'Olivia' >>> spam 'JerryOliviaOlivia' 3.1輸入和輸出例子1:print()輸出,print在用逗號(hào)分隔的情況下,會(huì)自動(dòng)用空格分隔; +連接2個(gè)字符串的時(shí)候,之間是沒有空格的 >>>print('I am a good girl.') I am a good girl. >>> a ='Jerry' print('I am a goodgirl' + 'and' + a) I am a goodgirlandJerry >>>print('I am a good girl', 'and', a) I am a good girland Jerry 例子2:改變print在有逗號(hào)的情況下默認(rèn)空格分隔的行為 >>>print('cat', 'dog', 'mouse', seq = ',') #注意一下這句代碼,結(jié)果出錯(cuò) cat,dog,mouse
例子3:改變print的另一個(gè)默認(rèn)行為:在每一個(gè)字符串后面添加換行符 >>> deftest(): print('hello') print('world') 上面這個(gè)代碼有問題,注意格式,正確代碼如下: >>> deftest(): print('hello') print('world') >>>test() hello world >>> defotest(): print('hello', end = '') #添加的是空字符,而不是空格字符 print('world') >>>otest() helloworld >>> defatest(): print('hello', end = '+') print('world') >>> atest() hello+world
例子4:format函數(shù), 是一個(gè)字符串方法str.format() >>> age =25 >>> name= 'Caroline' str.format()中str的參數(shù)使用{num}進(jìn)行表示,0表示第一個(gè)參數(shù),1表示第二個(gè)參數(shù), >>>print('{0} is {1} years old.'.format(name, age)) #輸出參數(shù) Caroline is 25years old. >>>print('{0} is a girl.'.format(name)) # Caroline is agirl. :代表元素需要的操作,{:.3}代表小數(shù)點(diǎn)后需要三位,{:8}占8個(gè)字符串空間,沒有的用空格填充 >>>print('{0:.3} is a decimal.'.format(1/3)) #小數(shù)點(diǎn)后三位 0.333 is a decimal >>>print('{0:_^11} is a 11 length.'.format(name)) #使用_補(bǔ)齊空位 _Caroline__ is a11 length >>> print('{first}is as {second}.'.format(first=name, second='Wendy')) #別名替換 Caroline is asWendy >>>print('My name is {0.name}'.format(open('out.txt', 'w'))) #調(diào)用方法 My name is out.txt >>>print('My name is {0:8}.'.format('Fred')) #指定寬度 My name isFred . 4.1運(yùn)算符例子1:運(yùn)算符本身的計(jì)算結(jié)果,+、-、*、/、//、%、** >>> 2 + 2 4 >>> 4 - 2 2 >>> 4 * 5 20 >>> 6 / 3#除法,即使能整除,也是浮點(diǎn)數(shù)結(jié)果 2.0 >>> 8 //3 #商數(shù)取整 2 >>> 9 % 2 1 >>> 2 **2 #指數(shù) 4 例子2:運(yùn)算符之間是存在優(yōu)先級(jí)別的,詳細(xì)優(yōu)先級(jí)(優(yōu)先級(jí)排序:1.指數(shù) 2.%,/,//,* 3.-,+ 4.&,5.比較操作符 6.賦值操作符 7.標(biāo)示操作符 8.成員操作符 9.邏輯操作符 ) >>> 5 **2 // 4 % 3 0 >>> 5 **2 / 4 % 3 0.25 >>> (5 **2) / ( 4 % 3) 25 轉(zhuǎn)義字符的用法 >>>print('Hello there!\nHow are you?\nI\'m doing fine.') Hello there! How are you? I'm doing fine. 5.1 數(shù)據(jù)類型:整型例子1:整型自帶的整型轉(zhuǎn)換器int(),不同用法 >>>int(34.5) 34 >>>int('ox2d', 16) 45 >>> int('0o55',8) 45 >>>int('ob101101', 2) 45 >>>int(0b101101) 45 >>>int(0o55) 45 >>> x =0b101101 >>>int(x) 45 >>> x =0x2d >>>int(x) 45 例子2:將整型轉(zhuǎn)化成二進(jìn)制、八進(jìn)制、十六進(jìn)制 >>> x =45 >>>bin(x) '0b101101' >>>oct(x) '0o55' >>>hex(x) '0x2d' 例子3:如果輸出結(jié)果不想帶0b、0x、0o,可以使用format()函數(shù) >>> x =45 >>>format(x, 'b') '101101' >>>format(x, 'x') '2d' >>>format(x, 'o') '55' 5.2 數(shù)據(jù)類型:浮點(diǎn)型例子1:利用float()函數(shù)將其他類型轉(zhuǎn)換成浮點(diǎn)型 >>>float(True) 1.0 >>>float(False) 0.0 >>>float(98) 98.0 >>>float('99') 99.0 >>>float('98.0') #將包含有效浮點(diǎn)數(shù)的字符串轉(zhuǎn)換為真正的浮點(diǎn)型數(shù)字 98.0 5.3 數(shù)據(jù)類型:字符串例子1:創(chuàng)建字符串,注意:字符串不可變 >>>'Snap' 'Snap' >>>'Crackle' 'Crackle'
例子2:雙引號(hào)的作用體現(xiàn)在當(dāng)創(chuàng)建本身就包含單引號(hào)的字符串 >>>''Nay, ' said the naysayer.' ''Nay, ' saidthe naysayer.' 例子3:當(dāng)字符串中單引號(hào)和雙引號(hào)都有的時(shí)候,需要用到轉(zhuǎn)義符\'' >>> '\'do you know \'' ''do youknow'' #備注:三元引號(hào)'''或者'''用于創(chuàng)建多行字符串 例子4:用+連接2個(gè)字符換類型的數(shù)據(jù),注意+連接的2個(gè)必須都是字符串類型 >>>'Alice'+'Olivia' 'AliceOlivia' >>> x =99 >>> y =str(x) >>> z=str(x) + y >>> z '9999' 例子5:當(dāng)字符串和*相遇的時(shí)候,*代表復(fù)制 >>>'Alice'*6 'AliceAliceAliceAliceAliceAlice' 例子6:原始字符串,忽略字符串中的轉(zhuǎn)義符號(hào),打印出原始字符串 >>>print(r'That is Carol\'s cat.') That is Carol\'scat.
例子7:用下標(biāo)可以獲取子字符串,下標(biāo)注意:從開始下標(biāo)開始,從結(jié)束下標(biāo)-1結(jié)束。 >>> spam= 'Hello world!' >>>spam[0] 'H' >>>spam[4] 'o' >>>spam[-1] '!' >>>spam[0:5] 'Hello' >>>spam[6:] 'world!'
>>> fizz= spam[0:5] >>> fizz 'Hello' 通過切片并將結(jié)果子字符串保存在另一個(gè)變量中,就可以同時(shí)擁有完整的字符串和子字符串,便于快速簡(jiǎn)單的訪問。 例子8:字符串中in和not in >>>'Hello' in 'Hello world' True >>>'cats' not in 'cats and dogs' False 5.3.1 字符串方法,注意字符串方法的用法,str.方法例子1:upper()和lower() >>> spam= 'Hello world!' >>> spam= spam.upper() >>> spam 'HELLO WORLD!' >>> spam= spam.lower() >>> spam 'hello world!' upper()和lower()方法,返回的是一個(gè)新的字符串,不會(huì)改變?cè)瓉?lái)的字符串,若想改變?cè)瓉?lái)的字符串可以把返回的新的字符串賦值給原來(lái)的變量,如上面的例子。 >>> spam= 'My name is Olivia.' >>>spam.upper() 'MY NAME ISOLIVIA.' >>> spam 'My name isOlivia.' 例子2:isupper()和islower() >>> spam= 'Hello world!' >>>spam.islower() False >>>spam.isupper() False >>>'HELLO'.isupper() True >>>'abc12345'.islower() #只判斷所有的字母都是小寫或大寫 True >>>'12345'.islower() False >>>'12345'.isupper() False
例子3:綜合應(yīng)用,返回True和False的方法關(guān)注一下,可以應(yīng)用到if或者while循環(huán)中用于判斷 while True: print('Enter your age:') age = input() if age.isdecimal(): break print('Please enter a number for yourage.')
while True: print('Select a new password (letters andnumbers only):') password = input() if password.isalnum(): break print('Passwords can only have lettersand numbers.')
例子4:startswith()、endswith(),當(dāng)只是檢查字符串的開頭或結(jié)束部分的時(shí)候,這兩個(gè)方法很好用 >>>'Hello world!'.startswith('Hello') True >>>'Hello world!'.endswith('world!') True >>>'abc123'.startswith('abcdef') False >>>'abc123'.endswith('12') False >>>'Hello world!'.startswith('Hello world!') True >>>'Hello world!'.endswith('Hello world!') True
例子5:isalpha():如果字符串只包含字母,返回true,無(wú)參數(shù),注意用法str.isalpha() >>> str1= 'my name is Olivia' >>> str1.isalpha() >>>str1.isalpha() False #str1字符串中包含空格了 >>> str2= 'my' >>>str2.isalpha() True
例子6:isalnum():如果字符串只包含字母和數(shù)字,返回true,無(wú)參數(shù),注意用法str.isalnum() >>> str3= 'myname 123' >>>str3.isalnum() False #包含空格 >>> str4= 'myname123' True >>> str5= '123' >>> str5.isalnum() True >>> str6= 'my' >>>str6.isalnum() True
例子7:isdecimal():如果字符串只包含數(shù)字字符,返回true,無(wú)參數(shù),注意用法str.isdecimal() >>> str7= '123 4' >>>str7.isdecimal() False #包含空格 >>> str8= 'my' >>>str8.isdecimal() False >>> str9= '123' >>>str9.isdecimal() True
例子8:isspace():如果字符串只包含空格、制表符、換行,返回true,注意用法,str.isspace()
例子9: istitle():如果字符串只包含以大寫字母開頭,后面都是小寫字母的單詞,返回true,注意用法str.istitle() >>> str10= 'My name is olivia' >>>str10.istitle() False >>> str11= 'Mynameisolivia' >>>str11.istitle() True
例子10: title()方法可以修改字符串中單詞的大小寫 >>> name= 'ada lovelace' >>>print(name.title()) Ada Lovelace 總結(jié):三種方法可以修改字符串的大小寫, title(), upper(),lower()因?yàn)槲覀儫o(wú)法依靠用戶來(lái)正確的輸入字符串的大小寫,所以可以通過這幾種方法對(duì)字符串進(jìn)行處理后 再執(zhí)行別的代碼。
例子11: join():將一個(gè)字符串列表中的值連接起來(lái)形成一個(gè)單獨(dú)的字符串,使用方法:連接符號(hào).join(列表或列表變量) >>> ','.join(['cats', 'rats', 'bats']) 'cats, rats, bats' >>> ''.join(['My', 'name', 'is', 'Simon']) 'My name is Simon' >>>'ABC'.join(['My', 'name', 'is', 'Simon']) 'MyABCnameABCisABCSimon'
例子12:split():針對(duì)字符串調(diào)用,返回字符串列表,有參數(shù),參數(shù)是分隔符(即確定按照字符串中什么符號(hào)進(jìn)行分割),注意用法str.split(參數(shù))默認(rèn)的分隔符:空格、制表符、換行符 >>> 'Myname is Simon'.split() ['My', 'name','is', 'Simon'] 也可以向split()中輸入一個(gè)分割字符串 >>>'MyABCnameABCisABCSimon'.split('ABC') ['My', 'name','is', 'Simon'] split()一個(gè)常見的用法,按照換行符分割多行字符串 >>> spam= ''' Dear Alice, How have you been?I am fine. There is acontainer in the fridge that is labeled'Milk Experiment'.
Please do notdrink it. Sincerely, Bob''' >>>spam.split('\n') ['Dear Alice,','How have you been? I am fine.', 'There is a container in the fridge', 'that islabeled 'Milk Experiment'.','','Please do not drink it.','Sincerely,','Bob']
例子13:rjust():用于對(duì)齊字符串(右對(duì)齊),有兩個(gè)參數(shù),第一個(gè)參數(shù)是整數(shù),代表字符串長(zhǎng)度;第二個(gè)參數(shù)是填充字符,在沒有第二個(gè)參數(shù)的情況下默認(rèn)填充字符是空格 ljust()代表左對(duì)齊,始終記住字符串方法的用法str.rjust() >>>'Hello'.rjust(20, '*') '***************Hello' >>>'Hello'.ljust(20, '-') 'Hello---------------'
例子14:center()字符串方法與ljust()與rjust()方法類似,讓文本居中
例子15:strip():返回一個(gè)新字符串,把字符串左邊、右邊或兩邊的空白字符(空格、制表符、換行符)刪除掉,lstrip()刪除左邊的,rstrip()刪除右邊的 strip()有一個(gè)可選參數(shù),代表刪除字符串兩端中出現(xiàn)參數(shù)的字符 >>> spam= 'SpamSpamBaconSpamEggsSpamSpam' >>>spam.strip('ampS') 'BaconSpamEggs' #注意參數(shù)中的字符順序并不重要,ampS,Spam,mapS是一樣的
>>> name= ' python' >>>name.lstrip() #只是輸出了新的字符串,但是并沒有修改原來(lái)的name 'python' >>> name ' python' >>> name= name.lstrip() #若想要永久的保存刪除空格后的字符串,需要將新字符串賦值到原來(lái)的變量中 >>> name 'python'
例子16:用pyperclip模塊拷貝粘貼字符串,pyperclip()模塊有copy()和paste()函數(shù),模塊非自帶,需要安裝,安裝完成后要導(dǎo)入 >>>import pyperclip >>>pyperclip.copy('Hello World!') >>>pyperclip.paste() 'Hello World!'
例子17:pop(),獲取列表中指定偏移量的元素,在獲取之后,改元素自動(dòng)被刪除;返回值是被刪除的值,參數(shù)是偏移量,如果不指定偏移量,默認(rèn)參數(shù)為-1
5.4 數(shù)據(jù)類型:布爾值布爾值只有2個(gè)值False和True,注意區(qū)分大小寫,都可以保存在變量里,0,0.0,''被認(rèn)為是False
數(shù)據(jù)類型:NoneType,只有一個(gè)值None
總結(jié),上面介紹的是Python原子內(nèi)容,下面總結(jié)Python容器相關(guān)的內(nèi)容,主要包括:元組、列表、字典、集合 |
|