Python基礎(chǔ)

Python基礎(chǔ)

lesson_1——Python介紹

print('-----lesson_1 快速入門-----')

知識(shí)匯總:

1-Python介紹

2-語(yǔ)言的執(zhí)行方式:

1-編譯執(zhí)行:c / c++ / java(javac編譯器)

1- 編譯+鏈接

2-一旦有語(yǔ)法錯(cuò)誤坡倔,不能運(yùn)行---筆譯

3-exe---執(zhí)行文件

2-解釋型:

1-口譯---邊執(zhí)行邊翻譯

3-python官網(wǎng):https://www.python.org/

4-從print開始:

1-hello.py去運(yùn)行 cmd -----python hello.py

2-在解釋器里面運(yùn)行

1-進(jìn)入解釋器 >>>

2-輸入 print('hello')

3-pycharm運(yùn)行

4-<u>嚴(yán)格區(qū)分大小寫</u>

5-第一條語(yǔ)句前面不能有空格 咏连,但可以空行

6- print在python3一定要有小括號(hào)()

lesson_2——對(duì)象+變量

print('---lesson_2對(duì)象+變量---')

知識(shí)匯總:

1-Python 語(yǔ)言里 一切數(shù)據(jù)都是對(duì)象

2-整數(shù):

1-python 2 :int ---- long(長(zhǎng)整數(shù))

2-python 3 :只有int 沒(méi)有l(wèi)ong

3-怎么查看類型---type(100)--有返回值--該類型---<class 'int'>

3-浮點(diǎn)數(shù)--小數(shù):type(3.0)---<class 'float'>---沒(méi)有double

4-數(shù)字的運(yùn)算:

1-加法 +

2-減法 -

3-乘法 *

4-除法 /

1-在python3 9/4 == 2.25 肯定帶小數(shù)點(diǎn) 等價(jià)python2- 9//4 == 2

2-在python2 9/4 == 2 等價(jià)python3------ 9.0/4 == 2.25

5-取余 %

6-求次方----2**4

5-字符串:

1-定義:<class 'str'>

1- ' a' " a" ''' ''' ——單引號(hào)拥刻、雙引號(hào)币砂、三引號(hào)

6-字面量--直接量-- 1 3.14 'a'

7-變量:

1-優(yōu)點(diǎn):

1-代碼比較簡(jiǎn)潔

2-修改方便

2-字符串之間的連接符: +

3-變量:一個(gè)名字---一個(gè)可以改變的

1-組成:字母+數(shù)字+下劃線

2-一般以字母(大寫孔祸,小寫均可)開頭---本身沒(méi)有語(yǔ)法錯(cuò)誤

3-數(shù)字不能開頭<摇7盍觥!

4-區(qū)分大小寫

5-英文單詞--建議

6-不能與關(guān)鍵字相同(關(guān)鍵字是Python語(yǔ)言里面的特殊字符串)

import keyword

print(keyword.kwlist)

7-不要與內(nèi)置函數(shù)相同---print

4-沒(méi)有任何變量引用的對(duì)象壹士,會(huì)被Python解釋器清除

5-查看對(duì)象的地址--id() print('a的值:',a,'a的地址', id(a))

8-退出python解釋器:

1-ctrl+ z--*

2-exit()

3-quit()

9-常見(jiàn)的幾種變量的賦值

1- a= 1

2- a += 1 ------- a = a + 1

3- a *= 2 ------- a = a * 2

4- a++ ++a a-- --a python語(yǔ)法里面沒(méi)有這些

10-ctrl + / --- 注釋/取消注釋

11- print(round(1/3,6))--精確小數(shù)位數(shù)

print(type(100.0)) #type()----查看類型---<class float'>

print(round(2/3,3)) #指定精度--四舍五入

print(2**4)

print('hello '+' python')

print('hello'+3) #TypeError: must be str, not int

print(3+'hello') #TypeError: unsupported operand type(s) for +: 'int' and 'str'

welcome = '歡迎來(lái)到自動(dòng)化班學(xué)習(xí)--python'

print('小A' + welcome)

print('小B' + welcome)

print('小C' + welcome)

print('小D' + welcome)

3a = 100 #數(shù)字不能開頭

_data = 100 #普遍變量----不建議下劃線

name = 'tom' #首選字母開頭

getName = ''

get_name = ''#

a = 1

b1 = ''

print('');print();print();print() #不建議

import keyword

print(keyword.kwlist)

name = 'tom'

name = 'jack'

print(name)

lesson_3——字符串

print('---lesson3_字符串---')

知識(shí)點(diǎn)匯總:

1-什么是字符串

2-字符串的定義:內(nèi)容元素不可改變

1- 單引號(hào) - '' -----type(name) <class 'str'>

2- 雙引號(hào) - "" -----"tom"

注意:不能混著 SyntaxError: EOL while scanning string literal

3- 三引號(hào) ''' ''' """ """

使用區(qū)別:

1- 如果字符串本身有' 那么就用雙引號(hào) "

2- 如果字符串本身有" 那么就用單引號(hào) '

3- 可以使用轉(zhuǎn)義 \

4- 三引號(hào):

1-字符串定義

2-注釋

3-多行 '3.14'

3-拼接:

1-多個(gè)字符串進(jìn)行連接:連接符 +

2-多個(gè)相同字符串連接:字符串*n

4-sequence(序列)

1-特性:

1-編號(hào)-序號(hào)-下標(biāo)--------唯一的

2-元素

3-空字符串 str1 = ''

2-字符串-序列類型

1-下標(biāo) :

1-正下標(biāo)---從左邊 0 開始 到 長(zhǎng)度-1

name = 'tom'---name[3]--- IndexError: string index out of range

2-負(fù)下標(biāo)---從右邊 -1開始

3-len()---計(jì)算序列的長(zhǎng)度---有返回值--就是計(jì)算的對(duì)象的長(zhǎng)度

4-切片: str1[start:end:step]

特性:1-下標(biāo) 磷雇; 2-左含右不含

1-取中間段

1-string1[start:end], 從start 開始,到end結(jié)束,但不包括end

2-str1[獲取內(nèi)容的首字符下標(biāo):該下標(biāo)+長(zhǎng)度] ---*

2-取尾部:

1-string1[start:], 從start 開始,到字符串結(jié)束

3-取頭部:

string1[:end], 從第一個(gè)字符 開始,到end位置結(jié)束躏救,但不包括end

4-什么時(shí)候用正下標(biāo)或者負(fù)下標(biāo)?

1-看被切對(duì)象

2-如果左右都變化--切片不好操作---后續(xù)講解----split

5-被切對(duì)象螟蒸,切完之后會(huì)不會(huì)改變盒使?---不會(huì)改變,只是切出來(lái)的對(duì)象七嫌,作為一個(gè)新對(duì)象少办!

1- 切中間某一段:str1[3:3+4]

2- 切前一段:str1[:7] --留前,寫尾

3- 切后一段:str1[7:] --留尾诵原,寫前

str1[第一個(gè)切點(diǎn)下標(biāo):第2個(gè)切點(diǎn)下標(biāo):步長(zhǎng)] #步長(zhǎng)默認(rèn)是1

注釋/取消注釋: ctrl + /

info = 'name is ' tom'

print(info)

print(len(info)) #求長(zhǎng)度

print('hello\n'*3)

print('hello','tom',sep='')

print(round(100/3,6)) #33.333333

info = 'name is tom' #字符串就是序列類型

print(len(info))

print(info[len(info)-1]) #獲取最后一個(gè)元素

負(fù)下標(biāo)---從右邊開始算--- -1 開始

print(info[0-len(info)]) #最前面一個(gè)元素

print(info[0],info[-1]) #推薦

1- 獲取中間一段 info[第1刀下標(biāo):第2刀下標(biāo)]---不會(huì)對(duì)原有字符串產(chǎn)生影響

print(info[5:5+2]) #左含右不含

print(info)

2- 獲取前半段--- 寫后面一個(gè)下標(biāo)

print(info[:4])

3- 獲取后半段-- 寫前面的一個(gè)下標(biāo)

print(info[4:])

str1 = '11:12:11> 001 enter chatroom, level 2'

print(str1[10:10+3])

print(info[::-1]) #字符串的倒序--【start:end:step】

print(info[0:4:2]) #nm

print(info.index('a')) #獲取下標(biāo)

lesson_4--——列表+元組

print('---lesson4_列表+元組---')

知識(shí)點(diǎn)匯總:

1-列表---List

1-特性:

1-列表也是一種Sequence 類型

2-下標(biāo)

3-能切片

4-可以存儲(chǔ)任何類型的數(shù)據(jù)英妓,每個(gè)元素是任意類型

5-內(nèi)容可以改變:增刪改查

1-改變?cè)刂?alist[0] = 9

2-個(gè)數(shù) alist.append(5)---增加后面---追加

3-增加元素--alist.append--尾部 -- insert()--任意位置

4-刪除元素 ----del alist[0]、del alist[0:2]绍赛、alist.pop(下標(biāo))蔓纠、alist.remove(alist[1])

2-列表的定義:

1- []---英文的中括號(hào)

2-type([])---- <class 'list'>

3- 例子: alist = [1,3.14,'abc',[100,200]]、一個(gè)元素 alist = [1]

3-列表的使用

1-獲取列表元素 -- 列表名[下標(biāo)]

2-每一個(gè)元素用 , 隔開

3-切片-切出來(lái)的對(duì)象跟被切對(duì)象類型一樣

2-元組:

1-元組跟我們大家熟悉的數(shù)組是一樣的嗎吗蚌?腿倚??

1-數(shù)組:同一類型

2-元組:任意類型

特性:

1-元組也是一種Sequence 類型

2-下標(biāo)

3-能切片

4-可以存儲(chǔ)任何類型的數(shù)據(jù)蚯妇,每個(gè)元素是任意類型

5-內(nèi)容不可以改變7罅恰!箩言!

2-元組的定義:

1- 空元組 ()---type(())----<class 'tuple'>

2-一個(gè)元素的元組 tu1 = (1,)

3-元組的使用:

1- 下標(biāo)獲取值

2- 切片

3- 不能改變本身的內(nèi)容硬贯,否則

TypeError: 'tuple' object does not support item assignment

總結(jié):

1-字符串 和 元組不能改變值和數(shù)量,否則:

TypeError: 'str' object does not support item assignment

2-存儲(chǔ)角度:

1- 元組---任意類型

2- 列表---任意類型

3-元組和列表可以通過(guò)函數(shù)轉(zhuǎn)換:

1- 元組轉(zhuǎn)列表 alist = lsit(元組)

2- 列表轉(zhuǎn)元組 tu1 = tuple(列表)

4-列表和元組定義一個(gè)元素的時(shí)候區(qū)別

1- 列表 [1]

2- 元組 (1,)

5-使用場(chǎng)景:

1-列表---存儲(chǔ)的對(duì)象內(nèi)容是可以改變的 如 排序

2-元組---存儲(chǔ)的對(duì)象不想讓其他人去改變----- 配置參數(shù)

需求:

1- 保存全班學(xué)生的信息 - list tuple 都可以

2- 可以修改每一個(gè)學(xué)生信息 list

3- 可以增加/刪除-學(xué)生的信息 list

stu_info = [

[名字陨收,年齡饭豹,性別],

[名字,年齡,性別],

[名字墨状,年齡卫漫,性別]

]

alist = [10,3.14,'hello',[1,3,5]] #列表的定義

print(type(alist)) #<class 'list'>

print(len(alist))

print(alist[-1][-1]) #1- 查找元素

print(5 in alist[-1])

print(alist[0:0+1]) #列表切片出來(lái)是列表

print(alist[-1][0:0+2]) #[1, 3]

alist[0] = 20 #2- 修改值

alist.append(200) #3- 增加元素的操作---尾部增加

alist.insert(0,200) #4- 增加元素--任意位置

需求: 合并一個(gè)列表 [1,2,3,4,5]

alist = [1,2,3]

alist.append([4,5])

alist.extend(['hello',5]) #合并列表,永久

print(alist+[4,5]) #臨時(shí)

5- 刪除

del alist[0],alist[2] #IndexError: list assignment index out of range

del alist[0],alist[1] #不建議這樣寫

del alist[0:2] #[3]

res = alist.pop(0) #pop()返回一個(gè)被刪除的值

print(res)

alist.remove(alist[1]) #直接刪除值---效率比前面2種低

print(alist)

tu1 = (10,3.14,'hello',[1,3,5],(100,200)) #一個(gè)元素的時(shí)候肾砂,一定加一個(gè)逗號(hào)

print(type(tu1)) #<class 'tuple'>

print(tu1[0:1])

1-元組不支持修改元素的值--TypeError: 'tuple' object does not support item assignment

tu1[0] = 20

2-元組不能改變?cè)氐膫€(gè)數(shù)

alist = [1,2,3,4]

print(tuple(alist)) #列表轉(zhuǎn)元組--(1, 2, 3, 4)

tu2 = (10,20,30,40)

print(list(tu2)) #元組轉(zhuǎn)換成列表 [10, 20, 30, 40]

b = [1,2,3]

b.insert(1,[2]) #指定下標(biāo)位置插入元素

print(b)

print(alist .append(200)) #尾端插入元素

print(alist)

python垃圾回收機(jī)制

https://www.cnblogs.com/pinganzi/p/6646742.html

lesson_5——布爾表達(dá)式

print('---lesson5_布爾表達(dá)式---')

知識(shí)點(diǎn)匯總:

1-布爾類型:

特性:只有2種情況-- 真 / 假

1- True False

2- type(True)----- <class 'bool'>

2-布爾表達(dá)式:

1- 它的結(jié)果是bool

2- 關(guān)系運(yùn)算 3>1 關(guān)系的等價(jià) == 一個(gè)等號(hào)是賦值 不等價(jià) !=

3- 字符串的比較:

1- 是比較長(zhǎng)度嗎列赎?---- 不成立

2- 比較的是字符串對(duì)應(yīng)的ASCII值 A--65 a--97

4- 邏輯運(yùn)算

3- in not in 布爾結(jié)果

1- in 在里面

2- not in 不在里面

3- str tuple list

4- (1,3) in (1,3,5)---False

4-條件組合

1-且:條件1 and 條件2

1- 其中一個(gè)為False---整個(gè)表達(dá)式= False---一假全假,全真為真

2- 如果條件1 == True ,條件2镐确,一定會(huì)執(zhí)行(判斷)

3- 如果條件1 == False ,條件2包吝,一定不會(huì)執(zhí)行(判斷)

2-或:條件1 or 條件2

1- 其中一個(gè)為True---整個(gè)表達(dá)式=True--0- 一真全真,全假為假

2- 如果條件1 == True ,條件2源葫,一定不會(huì)執(zhí)行(判斷)

3- 如果條件1 == False ,條件2诗越,一定會(huì)執(zhí)行(判斷)

3- 不-- not

1- 取反 True--- False

4- 優(yōu)先級(jí)

1- 沒(méi)有任何括號(hào)的情況下 not > and > or

2- 建議多打括號(hào) (3(2(1)))---從里到外

3- 復(fù)雜的邏輯關(guān)系---建議注釋

isSelect = True

print(type(isSelect)) #<class 'bool'>

a = 257

b = 257

print(a == b) # 值相等 地址一樣嗎? -5 256 ---值相等 & 地址--也相等

print(a is b) # 值 + 地址都一樣

print(id(a),id(b))

print('abcd' > 'ab')

1- 字符串里: 1- 前面是后面的一個(gè)元素 2-也可以是連續(xù)一段

info = 'abcde'

print('ace' not in info)

2- 列表---1- 前面是后面的一個(gè)元素

alist = [1,3,5,7,[1,3]]

print([1,3] in alist)

def func():

print('我執(zhí)行了息堂!')

return True

func() #調(diào)用函數(shù)

if 3 == 1 or func(): # 全真為真----真

print('條件滿足嚷狞!---爬山')

print((not 3==1) and (4>2)) # 優(yōu)先級(jí): not and or

nameList = ['tom','jack','tim']

if 'jack' in nameList:

print('找到了')

if 'jack' not in nameList:

print('不調(diào)研!')

print(3==3 or 3<1 and 4>1)

print(3==3 or False)

lesson_6——條件判斷

print('---lesson6_條件判斷---')

知識(shí)點(diǎn)匯總

1-流程控制:

1-順序結(jié)構(gòu)--一步步執(zhí)行

2-選擇結(jié)構(gòu)--在某一步選擇性執(zhí)行

3-循環(huán)結(jié)構(gòu)--在一定條件下荣堰,一直執(zhí)行某段代碼(事情)

2-條件判斷

1- if --如果

1- if 條件==True: 執(zhí)行if里面的語(yǔ)句

2- if xxx: .... else: 如果--否則

1- 只有2種情況床未,肯定會(huì)執(zhí)行其中一個(gè)

2- 對(duì)立面的情況下使用

3- 多種分支 if.... elif..... else

1- 最后的else 選配

2- 只要滿足其中一個(gè)分支,就退出if的語(yǔ)句結(jié)構(gòu)

4-if的嵌套

1- 要執(zhí)行內(nèi)部的if 一定要外部的if 滿足才可以

2- 相當(dāng)于and

5-switch語(yǔ)句---沒(méi)有這個(gè)語(yǔ)法

6-多條件可以分行寫

7-注釋/取消注釋 ctrl + /

8-擴(kuò)展振坚;

1- if如果后面跟是 非0的數(shù)值薇搁、非空字符串 、非空元組渡八、非空列表啃洋,該if 的條件結(jié)果就為True

9-input()--函數(shù)--接收字符--返回的是字符串!

需求:判斷用戶輸入的手機(jī)號(hào)是否有效屎鳍,輸出對(duì)應(yīng)的運(yùn)營(yíng)商宏娄!

思路:

1- if(tel == 11):位數(shù)

if(是否純數(shù)字):1234567989a

if(號(hào)段==187) or (==139) or():前3位 in list:

移動(dòng)

elif(號(hào)段==132) or (==176) or():

聯(lián)通

elif(號(hào)段==199) or (==198) or():

電信

else:

提示:無(wú)此號(hào)段

else:

提示:有非法字符

else:

提示:位數(shù)有誤!

tel = input('輸入手機(jī)號(hào):') #控制臺(tái)輸入--返回是一個(gè)字符串

print(tel)

1- 單 if 語(yǔ)句

1- 如果是 : 后面一定要有語(yǔ)句---pass----空語(yǔ)句

2- 場(chǎng)景: 當(dāng)只需要對(duì)條件滿足的時(shí)候處理哥艇,不滿足不做任何處理

2- if -- else: 如果--否則

1- 一定會(huì)執(zhí)行其中一個(gè)

場(chǎng)景: 需要對(duì)條件不滿足的情況也進(jìn)行處理

3- if 多分支-- > 2種以上情況的選擇

4- else --根據(jù)自己需求來(lái)

1- if 單語(yǔ)句------場(chǎng)景:只需要對(duì)滿足條件的處理------不滿足的不需要處理

score = 80

if score >= 60:

print('及格了')

# pass#空語(yǔ)句---頂個(gè)位置

print('run--over!')

2- if else :場(chǎng)景: 滿足需要處理绝编,不滿足也需要處理

score = 80

if score >= 60:

print('及格了')

# pass#空語(yǔ)句---頂個(gè)位置

else:

print('再接再厲')

3- if else :場(chǎng)景: 滿足需要處理,不滿足也需要處理

tab---往后縮進(jìn) shift+tab----往前縮進(jìn)

score = 85

if score >= 90:

print('A等級(jí)')

elif score >= 80:

print('B等級(jí)')

elif score >= 70:

print('C等級(jí)')

elif score >= 60:

print('D等級(jí)')

else:#選配

print('再接再厲')

print('run--over!')

----------不建議如下寫法

score = 85

if score >= 90:

print('A等級(jí)')

if score >= 80 and score < 90:

print('B等級(jí)')

if score >= 70 and score < 80:

print('C等級(jí)')

if score >= 60 and score < 70:

print('D等級(jí)')

if score < 60:#選配

print('再接再厲')

print('run--over!')

擴(kuò)展---if 嵌套結(jié)構(gòu)---一個(gè)場(chǎng)景需要分階段(層次)做出不同處理

score = 85

if score >= 60:

if score >= 90:

print('A等級(jí)')

else:

if score >= 80:

print('B等級(jí)貌踏!')

else:

pass

else:

print('不及格十饥!')

print('run--over!')

score = input('請(qǐng)輸入分?jǐn)?shù):') #1- 只要敲回車才結(jié)束! 2- 接收是字符串

print(type(score)) #字符串

print(int(score)+20)

sex = input('請(qǐng)輸入性別:')

if int(score) >= 90 \ #尾部加’\’換行寫

and sex == 'M':

print('A---男同學(xué)')

if 如果這個(gè)條件要是 True

: True 祖乳、非零數(shù)值逗堵、非空字符串、非空元組眷昆、非空列表

if ' ':

print('條件滿足蜒秤!')

lesson_7——函數(shù)

print('----lessson 7-函數(shù)----')

知識(shí)點(diǎn)匯總:

1-函數(shù)的概念:

1-就是一段代碼

2-一段操作流程

優(yōu)點(diǎn):

1- 代碼量少-簡(jiǎn)潔

2- 維護(hù)起來(lái)方便---在函數(shù)的定義進(jìn)行修改

2-函數(shù)的定義:

1-def 函數(shù)名():

函數(shù)內(nèi)容

2- 函數(shù)的定義是不會(huì)執(zhí)行函數(shù)內(nèi)容的代碼的汁咏!

3-案例:

def func():

print('step1')

print('step2')

4- type(func) ----<class 'function'>

3-函數(shù)的調(diào)用

1- func()

2- 調(diào)用的時(shí)候才去執(zhí)行

3- 函數(shù)的定義一定要在函數(shù)的調(diào)用前面

4- 參數(shù)

1- 形參:

1-在函數(shù)定義的參數(shù) def func(a,b): a , b 都是形參

2-在pycharm 形參如果沒(méi)有被使用是灰色的,使用了的是黑色

3-def func(a,b): 一般只要參數(shù)名的參數(shù)---必填形參作媚,沒(méi)有限制類型

2- 實(shí)參

1- 在函數(shù)調(diào)用的時(shí)候?qū)嶋H傳入的參數(shù) func(1,2) 1, 2都是實(shí)參

3-函數(shù)的調(diào)用的時(shí)候不能使用如下寫法:func(a=1,2)

5- 返回值

1- 函數(shù)調(diào)用完成后攘滩,會(huì)有返回值

2- 在函數(shù)里面有 return 值

3- 返回值類型:

1- None----沒(méi)有return

2- 任意類型

3- 函數(shù)的返回值類型--取決于return 后面的類型

4- 在return 后面的語(yǔ)句不會(huì)執(zhí)行--函數(shù)一旦執(zhí)行到return該函數(shù)已經(jīng)調(diào)用完成

6- 全局變量+局部變量

1- 全局變量:在一個(gè).py文件里面,一旦定義好一個(gè)變量纸泡,后面的所有代碼都可以使用

2- 局部變量:在函數(shù)內(nèi)部的

7- 類型轉(zhuǎn)換-內(nèi)置函數(shù)

1- int()---轉(zhuǎn)換成int

1- 被轉(zhuǎn)換的內(nèi)容一定是純數(shù)值

2- str()--轉(zhuǎn)換成字符串

3- float()--轉(zhuǎn)換成浮點(diǎn)數(shù)

注意事項(xiàng):

a = 3.14---float類型

print(int(a))----舍棄小數(shù)部分取整---3

a ='3.14'---str類型

print(int(a))----報(bào)錯(cuò)漂问,不能是小數(shù)的數(shù)值內(nèi)容

8- input()---返回值是str

函數(shù):在次序上,先定義再調(diào)用-----函數(shù)調(diào)用前女揭,一定是定義了

def func(): #函數(shù)定義---不會(huì)執(zhí)行函數(shù)里面的代碼

print('step1')

print('step2')

print('step3')

func()#函數(shù)的調(diào)用蚤假!----執(zhí)行函數(shù)的代碼

print('run--over!')

def func(a,b):

print(a,b)

func((),[]) #函數(shù)調(diào)用

def get_sum(a,b):

print(a+b)

get_sum('hello','world')

def func(a,b):

# print(a+b)

return a+b

res = func(1,2)+10

print(res)

print(func(1,2))

def get_res(a,b):

if a > b:

return 1

elif a < b:

return -1

else:

return 0

res = get_res(1,2)

if res != 0:

print('兩數(shù)不等于!')

def func():

return (1,2,3)

print(func())

a = [100,200]

b = str(a) #把xxx轉(zhuǎn)換成str

print(type(b))

a = '3.14'

b = int(a) #把里面的內(nèi)容轉(zhuǎn)成int: 要求:字符串里面的內(nèi)容:一定是整型的數(shù)值---不能是小數(shù)

print(type(b))

a = 3.999

b = int(a) #把里面的內(nèi)容轉(zhuǎn)成int: 只取整數(shù)部分

print(type(b))

print(b)

lesson_8——對(duì)象方法

print('----lesson8_對(duì)象方法----')

知識(shí)點(diǎn)匯總:

1- 對(duì)象的方法:

這個(gè)對(duì)象類型在標(biāo)準(zhǔn)庫(kù)里面就有的方法

2- 對(duì)象的方法調(diào)用

對(duì)象.方法

3- 字符串---str

1-count() 計(jì)算字符串中包含的多少個(gè)指定的子字符串

str1 = 'abcaaa' ----str1.count('a') - 結(jié)果 4

2-endswith() 檢查字符串是否以指定的字符串結(jié)尾 --返回值 bool

3-startswith() 檢查字符串是否以指定的字符串開頭 --返回值 bool

4-find() 返回指定的子字符串在字符串中出現(xiàn)的位置

1- 只返回查找第一個(gè)出現(xiàn)的位置

2- str1.find('a',3) 指定開始查找下標(biāo)位置

3- 如果要查找的內(nèi)容吧兔,不在該對(duì)象里面磷仰,那么該方法返回 -1

5-isalpha() 檢查字符串中是否都是字母 ---返回值 bool

6-isdigit() 檢查字符串中是否都是數(shù)字 ---返回值 bool

7-str.join() 將 sequence類型的參數(shù)的元素字符串合并(連接)到一個(gè)字符串,string 作為分隔符

alist = ['i','like', 'football']

print('*'.join(alist))

8-split(‘str’) 將字符串分割為幾個(gè)子字符串境蔼。參數(shù)為分隔符

str1 = 'abc,def,hijk'

print(str1.split(','))

1- 返回類型是list--列表

2- 那個(gè)切點(diǎn)還有嗎灶平? 切點(diǎn)會(huì)被切掉

9-lower() 將字符串里面如果有大寫字母的全部轉(zhuǎn)為小寫字母

10-upper() 將字符串里面如果有小寫字母的全部轉(zhuǎn)為大寫字母

11-replace(‘old’,’new’,n) 替換字符串里面指定的n個(gè)子字符串

str1 = 'abcaa'

print(str1.replace('a','x',2))

注意點(diǎn): n省略則替換全部

12-strip() 將字符串前置空格和后置空格刪除 不能去中間空格

13-lstrip將字符串前置空格刪除

14-rstrip將字符串后置空格刪除

4- 列表

1-append(),給列表添加一個(gè)元素 在列表尾部

2-insert()箍土,給列表指定位置插入一個(gè)元素

alist.insert(需要插入的位置的下標(biāo),插入的值)

3-列表刪除元素

1- del alist[下標(biāo)]

2- alist.pop(下標(biāo)) 該方法有返回值民逼,是被刪元素

3- alist.remove(元素) ----效率最低,無(wú)返回值

4- alist.clear()--清空列表

5- reverse()涮帘,將列表里面元素倒序排列

str1 = 'abcdefabbbb'

# print(str1.count('x'))

print(str1.find('a',2)) #返回是元素a的下標(biāo)---如果元素不存在----返回-1

if str1.find('x') != -1: #判斷是否存在

print('該元素存在')

print('\n'.join(['i','like','play','football']))

1-里面填入--切點(diǎn) ;2- 切點(diǎn)會(huì)消失 笑诅; 3- 返回是 list;

4- 如果切點(diǎn)不存在--不操作--變成列表

info = ' name is tom '

resList = info.split('x')

print(resList)

print(resList[1])

print(info.replace('tom','jack')) #默認(rèn)全部替換

alist = [1,2,3]

alist.insert(5,100) #插入下標(biāo)大于長(zhǎng)度调缨,則在末尾插入

print(alist)

print(alist[::-1]) #翻轉(zhuǎn),相當(dāng)于 alist.reverse()吆你,但alist.reverse()改變了alist

lesson_9——字符串格式化輸入輸出

print('---lesson9_字符串格式化輸出+輸入---')

知識(shí)點(diǎn)匯總;

1-字符串格式化輸出方法一: %

1-print('名字是 %s,年齡是%s' % (name ,age))

2- %s ---字符串-----相當(dāng)于執(zhí)行了str()

3- (name ,age) 只能是元組弦叶,不能是列表

4-多個(gè)數(shù)據(jù)的打印,一定是元組

5- %d--十進(jìn)制

6- %f--6位小數(shù)

7- %x—16進(jìn)制

8-指定長(zhǎng)度打印----數(shù)值和字符串一樣的

1- %5d 右對(duì)齊妇多,不足左邊補(bǔ)空格

2- %-5d 左對(duì)齊伤哺,不足右邊補(bǔ)空格

3- 補(bǔ)0 %05d

9- 十六進(jìn)制:%#x # 加一個(gè) 0x

10-小數(shù)--float

1- 默認(rèn)是6位

2- 指定保留小數(shù)位數(shù)- %.3f-----進(jìn)行了四舍五入

3- %6.3f ---- 6代表總長(zhǎng)度(包括 . )

4- %08.3f ---- 補(bǔ)0

2-字符串格式化輸出方法二: format()---固定的 {}

1- 順序填坑:

1- 可以有元素多,不能有元素少者祖!

print('****名字是 {},年齡是 {}'.format(name ,age))

2- 下標(biāo)填坑:

1- 不能下標(biāo)越界 IndexError: tuple index out of range

print('名字是 {1},年齡是 {0}'.format(name ,age))

3- 變量方法

1- print('名字是 {name},年齡是 {age}'.format(name='tom' ,age = 18))

4-指定長(zhǎng)度輸出:

1- {:長(zhǎng)度}

1- 數(shù)值型:右對(duì)齊立莉,左補(bǔ)齊

2- 字符串:左對(duì)齊,右補(bǔ)齊

2- > 右對(duì)齊

3- < 左對(duì)齊

4- ^ 中間對(duì)齊 --- print('我叫:{:0^10},年齡是:{:0<5}'.format(name,age))

5- 數(shù)值補(bǔ)0 七问,一般是右對(duì)齊 蜓耻,左補(bǔ)0 ,不改變值

6- 字符串本身帶花括號(hào) {{}}

3- python 3.6 以后 f''

print(f'名字是{name}械巡,年齡是{age}')

4- 轉(zhuǎn)義符 \

print('name is \n tom')

5- input()---控制臺(tái)的終端輸入

1- 有返回值---str

2- 如果對(duì)得到的值進(jìn)行算術(shù)---int()刹淌、float()

3- 用戶的輸入是以一個(gè)回車符結(jié)束---不敲回車就死等

name = 'tom'

age = 20

print('名字是: '+name+'年齡是: '+str(age))

info = '名字是: '+name+'年齡是: '+str(age) #字符串格式化

print(info)

print('名字是:%s , 年齡是:%6s ' % (name,age)) #%s---字符串#

print('%06s' % name)

print('%#x' % 108) # 108/16----商6 余數(shù) 12--c----0x6c

print('%#X' % 108)

print('%1.3f' % 3.1415926) # %f 保留3位小數(shù)饶氏,格式輸出默認(rèn)是6位---四舍五入

------------------format格式化----------------------

1-補(bǔ)齊符號(hào),對(duì)齊方式

info = '名字是:{:^6},年齡是:{:^6}'.format(name,age)

print(info)

2- 下標(biāo)填坑

info = '名字是:{0},年齡是:{4}'.format(name,100,1,3,4,5)

print(info)

3- 變量填坑

info = '名字是:{name},年齡是:{age},{{}}'.format(name = 'tom',age = 18)

print(info)

info = f'名字是:{name:>6},年齡是:{age:>6}' #python3.6之后有的

print(info)

lesson_10——循環(huán)

print('---lesson10_循環(huán)---')

知識(shí)點(diǎn)匯總;

1-循環(huán)概念

1-在一定條件下有勾,重復(fù)做某件事件(代碼)

2- while循環(huán)

1- while 條件表達(dá)式:

循環(huán)體

2- 當(dāng) 條件表達(dá)式 == True 疹启,才執(zhí)行循環(huán)內(nèi)容

3- 有循環(huán)遞增變量

sumData = 0

cnt = 1

while cnt < 101:

sumData += cnt

cnt += 1

print(sumData)

4- 死循環(huán) 一定是bug?---不一定

1- 有優(yōu)點(diǎn)

2- 一般功能的死循環(huán)都是結(jié)合一定條件下的 break

while True:

psw = input('請(qǐng)輸入密碼:')

print('你再循環(huán)!蔼卡,按 q 退出!')

if psw == 'q':

break

3- for 循環(huán)--遍歷的手法

1- for name in alist:

print(name)

2- 打印 1---10

range(1,11)---左含右不含

for one in range(1,11):

print(one)

4- break 跳出本層循環(huán)喊崖!

alist = ['Mike', 'Jack', 'Mary', 'Pat','Will','Lisa']

for one in range(0,2): # 2次 0 1

for name in alist:

print(name)

if name == 'Jack':

break

5- continue --結(jié)束本次循環(huán)

1- 當(dāng)continue的條件滿足的時(shí)候,它后面的語(yǔ)句要執(zhí)行嗎菲宴? -- 不要贷祈!

6- 注釋

1- 作用:

1- 備注

2- 不執(zhí)行

2- 方法:

1- # 單行

1- 在該行代碼前面,不執(zhí)行該行代碼

2- 在該行代碼后面--備注

2- 多行

1- 注釋/取消注釋 ctrl+ /

2- 三引號(hào)

3- 函數(shù)內(nèi)容注釋

def func():

'this is func doc'

print('函數(shù)喝峦!')

print(func.doc)

7-循環(huán):

1- while:循環(huán)次數(shù)不定势誊,循環(huán)靠條件結(jié)束

2- for:遍歷操作--指定次數(shù)循環(huán)

1+2+3+4+....100

def get_sum(start,end):

cnt = start

sumData = 0 #結(jié)果

while cnt <= end: #重復(fù)執(zhí)行里面的代碼

sumData += cnt

cnt += 1

return sumData

print(get_sum(1,10))

while True: #不考慮循環(huán)次數(shù)--循環(huán)結(jié)束靠條件觸發(fā)

password = input('請(qǐng)輸入密碼:')

if password == '123':

print('密碼正確!')

break #結(jié)束循環(huán)谣蠢!

nameList.append('lili')

while

def name_print(inList):

indx = 0 #下標(biāo)

while indx < len(inList):

print(inList[indx])

indx += 1

name_print(nameList)

for name in (1,3,5,7): #遍歷操作

print(name)

for one in range(0,10): #取次數(shù)--范圍值 左含右不含

print('hello')

for one in range(0,10,2): #取次數(shù)--范圍值 左含右不含 0 2 4 6 8

print(one)

nameList = ['Mike', 'Jack', 'Mary']

for name in nameList:

if name == 'Jack':

# break #結(jié)束本層循環(huán)

continue #結(jié)束本次循環(huán)粟耻,繼續(xù)下次循環(huán)

print(name)

for one in range(0,2): #循環(huán)2次 0 1_-外循環(huán)

for name in nameList: #內(nèi)層循環(huán)

if name == 'Jack':

break

print(name)

---------------------下面是我的xxx代碼------------

---------------------get_sum函數(shù)------------

def get_sum(start,end):

'''

:param start:

:param end:

:return:

'''

cnt = start

sumData = 0 #結(jié)果

while cnt <= end: #重復(fù)執(zhí)行里面的代碼

sumData += cnt

cnt += 1

return sumData,1,2,3,4

------------------------over--------------------

print(get_sum.doc)#函數(shù)的說(shuō)明

print(print.doc)

課堂作業(yè): 9*9------乘法表

lesson_11——文件讀寫

print('---lesson11_文件讀寫---')

知識(shí)點(diǎn)匯總

1-文件

1- Python2 File -- Python3 TextIOWrapper

2-文件的打開:

1- fo = open(file,mode)-----函數(shù)---有返回值--文件對(duì)象

2- 一定要有file文件路徑(路徑、文件名眉踱、文件格式) 否則

TypeError: Required argument 'file' (pos 1) not found

3- fo = open(fileDir)---只讀

4- 路徑的寫法

1- fileDir = 'G:/pyTest1.txt'

2- fileDir2 = 'G:\pyTest1.txt'

3- fileDir3 = r'G:\pyTest1.txt'--取消轉(zhuǎn)義

5- 路徑

1- 絕對(duì)路徑--根目錄開始的 G:/pyTest1.txt

2- 相對(duì)路徑 ./當(dāng)前位置 ../ 上一級(jí)

6- 讀模式

0- 如果該文件不存在會(huì)報(bào)錯(cuò)挤忙!

1- fo = open(fileDir,'r') === fo = open(fileDir)

2- fo.tell()---獲取文件指針位置,返回當(dāng)前指針下標(biāo)谈喳,默認(rèn)為0

3- fo.read(2)----讀2個(gè)字符

4- fo.read()--讀全部?jī)?nèi)容

5-文件中的換行是2個(gè)長(zhǎng)度 \n ‘a(chǎn)\nb’---字符串中是一個(gè)

6- fo.close()--關(guān)閉文件

7- 移動(dòng)文件指針位置: seek()

1- 0模式---絕對(duì)位置模式册烈,從0開始---配套 ‘r’ fo.seek(1,0)

2- 1模式---當(dāng)前位置開始移動(dòng) fo.seek(移動(dòng)的位數(shù),模式1)

移動(dòng)的位數(shù) 正數(shù):向后移 負(fù)數(shù):向前移

前提:python3 一定在'rb'模式下---二進(jìn)制模式

3- 2模式---從尾部位置開始---rb--- 讀二進(jìn)制(bin)

1- fo.seek(-1,2)

2- 移動(dòng)的位數(shù) 正數(shù):向后移 負(fù)數(shù):向前移

案例:

fileDir = 'G:/pyTest1.txt'

fo = open(fileDir,'rb')

print('讀前',fo.tell())

print(fo.read(2))

print('讀后',fo.tell())

fo.seek(2,2)

print('移動(dòng)后',fo.tell())

8- readline() 讀取一行

1- 該方法返回是 print(type(fo.readline()))-- <class 'str'>

2- 文件指針會(huì)做相應(yīng)的偏移

9- readlines() 讀取所有行

1- 該方法返回是 print(type(fo.readlines()))-- <class 'list'>

區(qū)別:

1- fo.read()----返回str

2- fo.readlines()---返回是list---每一行是里面一個(gè)元素!

2- fo.read().splitlines()---返回list婿禽,而且去掉換行符

7- 文件寫模式:

1- fo = open(fileDir,'w')

2- 如果該路徑下的文件存在---會(huì)清空赏僧!

3- 如果該路徑下的文件不存在---會(huì)新建!

4- 在pycharm里面扭倾,你執(zhí)行了fo.write('123')--可以直接寫進(jìn)去

5- fo.write('123')--返回值---寫的字符長(zhǎng)度

6- fo.flush() 刷新寫入文件,語(yǔ)法上無(wú)此操作不會(huì)寫入磁盤淀零,但pycharm優(yōu)化會(huì)寫入

7- fo.close() 關(guān)閉文件會(huì)強(qiáng)行寫入文件

8- 追加模式 a

1- 只是為了在文件末尾追加內(nèi)容而打開文件

9- With open 方式

1- with open(fileDir) as rFile:----rF = open(fileDir)

2- 可以省略fo.close()

3- 操作多個(gè)文件

3-windows 文件里面的換行--\r\n--2個(gè)byte linux文件換行--'\n'---1個(gè)byte

fileDir = r'G:\pyTest1.txt' #'G:\pyTest.txt'

file_object = open(fileDir,'r') #有返回值

print(file_object)

print(file_object.tell()) #獲取文件指針位置---默認(rèn)是0

讀操作

# print(type(file_object.read(2))) #--str類型--<class 'str'>

print(file_object.read()) #全部元素

print(file_object.tell())

file_object.close() #關(guān)閉文件---不能讀寫

seek---移動(dòng)文件指針

print(file_object.read(2))

print(file_object.tell())

file_object.seek(1,0) #0 模式--都是從絕對(duì)零點(diǎn)開始的--文件--r模式

file_object.seek(2,2) #2 模式--需要以‘rb’模式打開文件

print(file_object.tell())

print(file_object.readlines()) #讀所有行返回是--list,‘\n’也讀取出來(lái)

print(file_object.read().splitlines()) #去換行符用的---split('\n')

文件寫操作

1- 如果文件不存在--會(huì)新建 2- 文件存在----會(huì)清空打開

fileDir = r'G:\pyTest1.txt' #'G:\pyTest.txt'

file_object = open(fileDir,'w') #有返回值

file_object.write('123456\nABCDE\nabcde') #字符串---類型

print(file_object.read(2)) #寫模式是不能讀文件--io.UnsupportedOperation: not readable

file_object.flush() #刷新寫入---建議不要省略

file_object.close()

pycharm優(yōu)化---只要需要結(jié)束--會(huì)自動(dòng)寫入

with open(fileDir,'r') as rFile,open('路徑','w') as wFile:

好處: 1- 可以打開多個(gè)文件膛壹,2- 可以省略close()

rFile.read()

wFile.write('')

print('里面代碼塊---寫文件操作代碼驾中!')

lesson_12——算法

print('---lesson12_算法---')

知識(shí)點(diǎn)匯總:

1-嵌套循環(huán)

2-列表生成式:

1-aftertax=[one*0.9 for one in beforetax]

2-aftertax=[循環(huán)體 for語(yǔ)句]

3-alist.sort(默認(rèn)正序) alist.sort(reverse=True)

4-冒泡排序:

1-確認(rèn)要排序的對(duì)象:alist--升序 / 降序

2-思維分解:

1-每一次找一個(gè)最大值

1- 找7 -對(duì)比 len -1

1- [3,1,7,0]

2- [1,3,7,0]

3- [1,3,0,7]

2- 找3 -對(duì)比 len -2 2次

1- [1,3,0,7]

2- [1,0,3,7]

3- 找1 -對(duì)比 1次

1- [1,0,3,7]

2- [0,1,3,7]

alist = [3,1,7,0]

for i in range(0,len(alist)-1): # 0 1 2--左含右不含---找最大值的次數(shù)

for j in range(0 , len(alist)-i-1): #對(duì)比次數(shù)

if alist[j] > alist[j+1]:

alist[j],alist[j+1] = alist[j+1],alist[j]

print(alist)

5-思維擴(kuò)展

1- alist = [3,1,7,0]

2- 每一次找一個(gè)最小值,不使用---min()------假設(shè)法

3- data = [] ------ data.append(最小值)

** 每一次找到最小值要記得刪除模聋!

a ,b = 3,4

核心思路:

1- 每一次找一個(gè)較大值

2- 相鄰元素比較肩民!

1- 找3次較大值---剩下的一個(gè)不就是最小值

2- 過(guò)程:

1- 找第1個(gè)較大值---8---交換了3次

1- [8,2,6,0] ---- 8 和 2 比較 -- 8大- 交換位置--[2,8,6,0]

2- [2,8,6,0] ---- 8 和 6 比較 -- 8大- 交換位置--[2,6,8,0]

3- [2,6,8,0] ---- 8 和 0 比較 -- 8大- 交換位置--[2,6,0,8]

2- 找第2個(gè)較大值---6---交換了2次

1- [2,6,0,8] ---- 2 和 6 比較 -- 6大- 交換位置--[2,6,0,8]

2- [2,6,0,8] ---- 6 和 0 比較 -- 6大- 交換位置--[2,0,6,8]

3- 找第3個(gè)較大值---2---交換了1次

1- [2,0,6,8] ---- 2 和 0 比較 -- 2大- 交換位置--[0,2,6,8]

嵌套循環(huán)的運(yùn)行邏輯:

1- 先執(zhí)行外層循環(huán)1次---

2- 全部執(zhí)行完內(nèi)循環(huán)所有--第1次

3- 再執(zhí)行外循環(huán) 第2 次

4- 全部執(zhí)行完內(nèi)循環(huán)所有--第2 次

5- 再執(zhí)行外循環(huán) 第3 次

6- 全部執(zhí)行完內(nèi)循環(huán)所有--第3 次

boys = ['Mike','Jack','Tom']

girls = ['Lisa','Linda','Mary']

for girl in girls: #3次

for boy in boys: #3次

print(girl,boy)

99乘法表 9行9列

for i in range(1,10): # 1--9 行

for j in range(1,i+1): #列

print('{}x{}={}'.format(j,i,i*j),end='\t') #在同一行里面的列不需要換行

print() #換行

beforetax=[10000,15000,8000,4000,5000]

for one in beforetax:

aftertax.append(one*0.9)

aftertax=[int(one*0.9) for one in beforetax if one > 8000] #列表生成式

print(aftertax)

def foo():

print ('in foo()')

bar()

def bar():

print ('in bar()')

foo()

def t2(para):

para = 3

b= 'a'

t2(b)

info = 'A girl come in, the name is Jack, level 955'

def getName(srcStr):

name = srcStr.split(',')[1].split(' ')[-1].strip()

return name

return srcStr.split('the name is')[1].split(',')[0].strip()

print(getName(info))

lesson_13_14——作業(yè)講解

print('---編程題1---')

需求分析:

1- 程序開始的時(shí)候提示用戶輸入學(xué)生年齡信息 格式如下:

Jack Green , 21 ; Mike Mos, 9;

2- 用戶輸入的規(guī)則:

1-學(xué)生信息之間用分號(hào)隔開(分號(hào)前后可能有不定數(shù)量的空格),

2-每個(gè)學(xué)生信息里的姓名和年齡之間用逗號(hào)隔開(逗號(hào)前后可能有不定數(shù)量的空格)

3- 按格式打忧瞬邸:

學(xué)生的姓名要求左對(duì)齊此改,寬度為20,年齡信息右對(duì)齊侄柔,寬度為2位共啃,不足前面補(bǔ)零

Jack Green : 21;

思路分解:

1- 獲取每一個(gè)學(xué)生的名字占调、年齡

1- 接收數(shù)據(jù)

info = input() #--字符串

2- 提取數(shù)據(jù)---每一個(gè)學(xué)生的 名字、年齡

1- tempList = info.split(';') #---列表-['Jack Green , 21 ','Mike Mos, 9']

2- 每一個(gè)學(xué)生的信息就是列表的里面每一個(gè)元素 Jack Green , 21

3- for 循環(huán)去遍歷

for one in tempList:

4- 再進(jìn)行切割 alist=one.split(',')

5- 名字 = alist[0].strip()

6- 年齡 = alist[1].strip()

3- 驗(yàn)證數(shù)據(jù)

print(name,age)

2- 按照要求格式化輸出

'{:<20}移剪,{:0>2}究珊;'.format(name,age)

'''

1- 獲取學(xué)生的信息--Jack Green , 21 ; Mike Mos, 9;

info = input('請(qǐng)輸入學(xué)生的信息:')

2- 把每一個(gè)學(xué)生的信息分開-----每一個(gè)學(xué)生的信息之間是以 ; 隔開

stuList = info.split(';') #返回是list---里面每一個(gè)元素就是一個(gè)學(xué)生的信息

print(stuList)

3- 遍歷列表

for one in stuList:

if one == '': # 讀取空信息則不需要處理---結(jié)束本次

continue

4- 非有效的信息則跳過(guò)

if ',' not in one: #----one.count(',') == 1:

print('缺少---- , ')

continue

獲取每一行的名字、年齡

tempList = one.split(',') #------保證這個(gè)切點(diǎn)存在

name = tempList[0].strip()

age = tempList[1].strip()

5-驗(yàn)證數(shù)據(jù)

print(name,age)

6-格式化輸出

print('{:<20}:{:0>2};'.format(name,age))

print('---編程題2---')

需求分析:

1- log---一個(gè)多行字符串---第一列:文件類型 第二列:大小

2- 統(tǒng)計(jì)相同文件的大小

思路分解:- 目標(biāo)導(dǎo)向

1- 獲取每一行的信息里面的 文件類型纵苛、文件大小

1- 理解多行---每一行有 \n

2- 獲取每一行信息 lineList = log.split('\n')-----返回列表

3- 對(duì)列表每一行的元素進(jìn)行遍歷

for line in lineList:

print(line)------每一行信息

4- 對(duì)每一行進(jìn)行獲取類型--大小

temp = line.split('\t')

fileType = temp[0].split('.')[1]

fileSize = temp[1].strip()

5- 驗(yàn)證數(shù)據(jù)

print(fileType,fileSize)

2- 統(tǒng)計(jì)相同類型文件

1- 判斷是否同類型:累加文件大小

resList = [] # [[類型1剿涮,大小1],[類型2,大小2],[類型3攻人,大小3]]

1- 拆分多行字符串--讓每一行變成獨(dú)立的一個(gè)字符串

lineList = log.split('\n') #----list-----第一列和第二列之間是制表符 \t

print(lineList)

2- 去獲取每一行的信息----for

for line in lineList:

if line == '': #不執(zhí)行空行的操作

continue

3- 說(shuō)明都是有效行信息

4- 對(duì)每一行進(jìn)行獲取類型取试、大小

tempList = line.split('\t') #---list

fileType = tempList[0].split('.')[1]

fileSize = int(tempList[1].strip())

print(fileType,fileSize)

5-統(tǒng)計(jì)----累加文件大小---int

inFlag = False #初始化---一開始認(rèn)為不存在

6- 先去匹配,這個(gè)結(jié)果列表 resList 有沒(méi)有存在該類型

[[類型1怀吻,大小1],[類型2瞬浓,大小2],[類型3,大小3]]

for one in resList:

if fileType == one[0]: #匹配上

one[1] += fileSize

inFlag = True #表明已經(jīng)累加完成---存在

break

7-for --做匹配類型---執(zhí)行for完成后--匹配結(jié)束

如果沒(méi)有匹配上類型:

if inFlag == False:

是不是需要 resList 新增該類型

resList.append([fileType,fileSize]) #[['jpeg' ,169472],['json' ,1036]]

print(resList)

print('---編程題3---')

需求分析:

請(qǐng)定義一個(gè)函數(shù) mySort蓬坡,參數(shù)為一個(gè)列表猿棉,參數(shù)列表中的元素都是整數(shù).

mySort 函數(shù)需要將參數(shù)列表中的元素按從小到大排序,最終返回一個(gè)新的list屑咳。

思路分解:

1. 創(chuàng)建一個(gè)新的列表newList

2. 先找出所有元素中最小的萨赁,append在newList里面

3. 再找出剩余的所有元素中最小的,append在newList里面

4. 依次類推兆龙,直到所有的元素都放到newList里面

alist = [8,3,0,9,1]

def mySort(inList):

newList = []

while len(inList) > 0: #循環(huán)次數(shù)

minData = min(inList) #找最小值

inList.remove(minData) #刪掉最小值

newList.append(minData) #最小值增加到新列表里面去

return newList

print(mySort(alist))

alist.sort()

def mySort(inList):

newList = []

while len(inList) > 0:

#假設(shè)法--第一個(gè)元素最小

minData = inList[0]

# minIndx = 0

# idx = 0 #總列表的下標(biāo)

#驗(yàn)證假設(shè)

for one in inList:

if minData > one: #假設(shè)的最小值不是最小--更新最小值

minData = one #-更新最小值

# minIndx = idx

# idx += 1 #下標(biāo)更新

newList.append(minData)

inList.remove(minData)

# del inList[minIndx]

return newList

print(mySort([1,8,9,0,2]))

print('---編程題4---')

需求分析:

1- 格式如下----一個(gè)file1.txt文件里面內(nèi)容

name: Jack ; salary: 12000

name :Mike ; salary: 12300

2- 格式規(guī)范

每個(gè)員工一行杖爽,記錄了員工的姓名和薪資,

每行記錄原始文件中并不對(duì)齊紫皇,中間有或多或少的空格

3- 計(jì)算出所有員工的稅后工資(薪資的90%)和扣稅明細(xì)掂林,

1- 存入新的文件 file2.txt中

2- tax表示扣稅金額和income表示實(shí)際收入,注意扣稅金額和實(shí)際收入要取整數(shù)

3- 輸出格式

name: Jack ; salary: 12000 ; tax: 1200 ; income: 10800

思路分解:

rfileDir = 'G:/pyTest1.txt'

wFileDir = 'G:/pyTest2.txt'

xinxi = ''

with open(rfileDir) as rFile,open(wFileDir,'w') as wFile:

1- 讀取文件---名字坝橡、工資

info_list = rFile.read().splitlines() #list---

for line in info_list:

if ';' in line: #有分號(hào)才處理

temp = line.split(';') #[ 'name: Jack ',' salary: 12000' ]

if ':' in temp[0] and ':' in temp[1]:

name = temp[0].split(':')[1].strip()

salary = temp[1].split(':')[1].strip()

if salary.isdigit():

salary = int(salary)

2 - 寫入文件 - --按一定格式寫

outStr = 'name:{:<6};salary:{:<6};tax:{:<6};income:{:<6};'.format(name,salary,int(salary0.1),int(salary0.9))

else:

outStr = 'this line salary is not digit'

else:

outStr = 'this line has not :'

else:

outStr = 'this line has not ;'

wFile.write(outStr + '\n')

lesson_15——字典

print('---lesson_15-字典---')

'''

1-字典的定義:

1-dict1 = {} # --空字典

2-type({}) # -----<class 'dict'>

3-字典名 = {鍵名:值,鍵名2:值2}

2-字典的優(yōu)勢(shì):

1-描述清楚

2-查找方便

3-擴(kuò)展性好

3-字典的特性:

1-它沒(méi)有下標(biāo)---不是序列類型!

2-一種映射--map

3-字典是mutable 的---可以改變

4-字典的常用操作----dict1 = {'name': 'Jack', 'age': 40}

1-獲取值:dict1['name']

2-改變值:'name'已經(jīng)存在精置,dict1['name'] = 'tom'

3-新增:這個(gè)鍵名不存在:dict1['weight'] = 160

1-python 3 ----從尾部增加

2-python 2 ----無(wú)序的

4-如果需要獲取的值對(duì)應(yīng)的鍵不存在计寇,那么-- KeyError: 'weight'

5-字典內(nèi)部元素不存在順序的概念

6-字典內(nèi)部不會(huì)存在相同鍵名

7-相同鍵名時(shí)候,后面的值會(huì)覆蓋前面的值---唯一的

8-鍵脂倦、值的類型:

1-鍵的類型:

1-數(shù)值

2-字符串

3-元組

4-列表---*不能作為鍵--TypeError: unhashable type: 'list'

5-字典---*不能作為鍵

6-鍵一定是哈希類型--不能改變的番宁!

2-值的類型:任意類型

9-鍵值對(duì)一定要成對(duì)出現(xiàn)嗎?--鍵值對(duì)

10- 'name' in dict1 --- bool

5-字典的技巧:

1-刪除字典元素:

1-del 字典名[鍵]

2- pop---有返回值

3-沒(méi)有remove()方法

4- dict1.clear() 與 dict1 = {} 不等價(jià)赖阻,地址不一樣

6-字典的遍歷:

1-for one in students: # ---one 依次取-key 鍵

2-students.items()---鍵值對(duì)

1- [(鍵1蝶押,值1),(鍵2火欧,值2)]

3- for name , info in students.items():

7-len()--鍵值長(zhǎng)度

8-d.clear()---只改變?cè)摰刂返膬?nèi)容

9-d = {}----重新指向

10-得到所有的key返回在類List中 students.keys() ['jack', 'tom']

11-得到所有的value返回在類List中 students.values()

12-增加元素---d.update({4:'4',5:'5'})

'''

字典的定義要求:

1- 鍵:可以的類型:字符串棋电、int 茎截、float、元組赶盔、

不可以是:列表企锌、字典 ---TypeError: unhashable type: 'list'---不可以改變的類型

2- 值:任意類型

'''

注意:

1- 鍵名是不是唯一的?---唯一的 后者覆蓋前者

2- 字典能不能改變?cè)氐闹担?-可以的--dict1[鍵名] = 值--這個(gè)鍵是存在的--修改值

3- 怎么在字典里增加元素于未?---可以的--dict1[鍵名] = 值--這個(gè)鍵不存在的--新增鍵值對(duì)

4- 怎么獲取字典元素值:--print(dict1['name'])

5- 這個(gè)鍵不存在撕攒,獲取這個(gè)鍵的值會(huì)怎么樣?--KeyError: 'age'

6- 我們?cè)趺丛谧值涞闹付ㄎ恢迷黾釉兀?-做不到

1- 沒(méi)有必要---字典是無(wú)序的-----不通過(guò)下標(biāo)獲取值

2- python3語(yǔ)法----增加鍵值對(duì)在--尾部

python2語(yǔ)法----增加鍵值對(duì)在--隨機(jī)

7- 刪除鍵值對(duì):

1- del dict1['name']

2- dict1.pop('name')

3- 沒(méi)有remove()方法

8- 字典是無(wú)序的--沒(méi)有下標(biāo):嫫帧6镀骸!

'''

del dict1['name']

dict1.pop('name')

print(dict1[0])

dict1['age'] = 20

print(dict1['age'])

print(dict1)

students = {

'Mike': {

'age':25,

'height':180,

'weight':80,

'nickname':'Mi'

},

'tom': {

'age':18,

'height':180,

'weight':80,

'nickname':'mm'

}

}

print(students)

import pprint #完美打印

pprint.pprint(students)

print(students['tom'])

print('age' in students) #判斷鍵是否在字典里

for one in students: #字典的遍歷其實(shí)就是對(duì)鍵的遍歷

print(students[one])

print(students.items())

鍵值對(duì)---[(鍵闷叉,值),(鍵擦俐,值)]--類列表

不能直接使用下標(biāo)--TypeError: 'dict_items' object does not support indexing

通過(guò)for遍歷

for one in students.items():

print(one)

print(list(students.items())[1]) #轉(zhuǎn)換成列表--再下標(biāo)取值---(鍵,值)--鍵值對(duì)

for name ,info in [(1,2),(3,4)]: #students.items()---鍵值對(duì)

print(name,info)

print(students.keys()) #所有鍵

print(students.values()) #所有值

print(students.items()) #所有鍵值對(duì)

d = {1:'1',2:'2'}

d.update({4:'4',5:'5'})

print(d)

passWord = {'admin':'123321','user1':'123456'}

userName = ''

psw = ''

if (userName,psw) in passWord.items():

print('該組賬號(hào)密碼存在片习!')

lesson_16——函數(shù)

print('---lesson_16 函數(shù)---')

'''

1-變量的作用域:

0-全局變量捌肴,可以在函數(shù)內(nèi)部被引用!

1-局部變量:函數(shù)內(nèi)部--只能在函數(shù)里面使用藕咏,在函數(shù)外部不能使用

2-全局變量:函數(shù)外

3-在函數(shù)內(nèi)部修改全局變量:global x

2-缺省參數(shù):

1-在函數(shù)定義的時(shí)候状知,給了初始值 def func(a,b,c=0)

2-c這個(gè)參數(shù),在函數(shù)調(diào)用的時(shí)候可以不傳值孽查,就是默認(rèn)值饥悴;如果傳,那就是傳的值

3-定義參數(shù)的時(shí)候盲再,可缺省不能放在必填參數(shù)前面

SyntaxError: non-default argument follows default argument

4- 案例:

def func(score,sex='M'):

if score > 60:

print(sex+'--及格西设!')

else:

print(sex+'--不及格')

func(80,'W')

3-可變數(shù)量參數(shù):(必填,可缺省答朋,可變數(shù)量)----寫法正確--print

1-數(shù)量可變4俊:可以n個(gè) 也可以0個(gè)

2- def calc(*numbers):

3-type(numbers)

4-如果傳值的是元組/列表--用*展開!

5-封裝成一個(gè)元組形式

6-建議定義順序: 必填梦碗,可缺省禽绪,可變數(shù)量

4-關(guān)鍵字可變數(shù)量:--dict

1-關(guān)鍵字

2-可變數(shù)量

3-**d

4-是個(gè)字典類型

5-傳值:鍵值對(duì)

6-傳入字典: **字典---展開 {1:100,2:200} 1=100 2=200 一定是str

7- **展開的話,key一定是string----TypeError: func() keywords must be strings

總結(jié):必填參數(shù)洪规、缺省參數(shù)印屁、可變參數(shù)和關(guān)鍵字參數(shù)

'''

'''

1- 必填一定在可缺省的前面--語(yǔ)法規(guī)定

2- 缺省參數(shù):

1- 不給實(shí)參---就默認(rèn)初始值

2- 傳實(shí)參----實(shí)際傳入的參數(shù)

3- 必填參數(shù)在可缺省的前面!U独雄人!

def print(self, *args, sep=' ', end='\n', file=None)

file, mode='r'

3- 可變數(shù)量參數(shù):

1- 數(shù)量可變--數(shù)量不定!D罡稀础钠!--可以是N個(gè)

2- * 的作用

1- 在形參里面---包裝一個(gè)元組

2- 在實(shí)參里面---展開作用

4- 關(guān)鍵字可變數(shù)量:

1- **d

2- func(1,2,3,4,5,6,"abc",**dict1)---dict1的key都是str

'''

'''

1- 必填一定要在可缺省前面:SyntaxError: non-default argument follows default argument

2- 當(dāng)def getSum(a,inList,b=100,*c) 我們需要將一個(gè)字典進(jìn)行傳入恰力,那么這個(gè)字典的keys

一定是str,否則 TypeError: getSum() keywords must be strings

'''

全局變量:在一個(gè).py(模塊)里面定義一個(gè)變量---從這一行開始,后面都可以使用這個(gè)變量

x = 2

def func():

global x #聲明一下

x = 9

#局部變量:在函數(shù)內(nèi)部的變量---它只能在函數(shù)內(nèi)部使用

print ("this x is in the func----1:-->",x)

func()

print ("--------------------------")

print ("this x is out of func:-------2>",x)

'''

1- 必填參數(shù):def func(a,b,c): #函數(shù)定義的時(shí)候只是變量名--必填形參

2- 可缺省參數(shù):def func(a,b,c=100)

1- 概念:

1- 函數(shù)調(diào)用的時(shí)候傳入的一個(gè)c的值---以實(shí)際傳入的為準(zhǔn)

2- 函數(shù)調(diào)用的時(shí)候不傳入的一個(gè)c的值---以默認(rèn)(定義的時(shí)候)的為準(zhǔn)

2- 作用:

1- 方便省事

2- 這個(gè)默認(rèn)值一般考慮到調(diào)用者大部分時(shí)候的---使用的場(chǎng)景(值)

3- 位置:

可缺省參數(shù)----在必填參數(shù)之后

3- 可變數(shù)量參數(shù):

1- 引入:雖然可缺省的參數(shù)可以代碼帶來(lái)省事效果--但是有個(gè)數(shù)的限制

2- 解決當(dāng)前困境:

成功案例:print(沒(méi)有個(gè)數(shù)限制)

3- 定義:

1- def func(a,*args,c=3):

2- 封裝成一個(gè)元組形式

3- 數(shù)量可以是 0 個(gè)

4- * 封裝元組的效果

4- 定義格式:

建議:定義函數(shù)參數(shù)的時(shí)候:必填珍坊、可變數(shù)量牺勾、缺省參數(shù)

5- 函數(shù)調(diào)用--如果需要傳入一個(gè)元組類型數(shù)據(jù):

  • 元組 --展開的效果

4- 關(guān)鍵字可變數(shù)量參數(shù):

1- 概念:

1- def func(a,b,c=3,*kwargs):

2- ** 封裝一個(gè)---字典(鍵-值)

3- 傳入形式: 變量 = 值

2- 作用:

如同字典的效果:方便查找

3-函數(shù)調(diào)用時(shí)候我們需要把一個(gè)完整字典傳進(jìn)去

**字典名:鍵名一定是字符串

匯總:定義字典的鍵名一般都用字符串

'''

def func(a,b,c=3,*kwargs): #函數(shù)定義的時(shí)候只是變量名--必填形參

print(a,b,c,kwargs)

dict1 = {'name':'tom',10:200} # ** 把鍵名作為變量名,值還是值 鍵 = 值

func(1,2,3,c= 4,name = '')

def func(a, b, c=0, *args, **kw):

print(a,b,c,args,kw)

func(1,2,5,3)

def addSum(start=1,end=100,step=1): #默認(rèn)是1 ---必填參數(shù)一定在缺省參數(shù)前面

i = start

sumData = 0

while i <= end:

sumData += i

i += step

return sumData

print(addSum(10,200))

print('hello',end='***')

print('hello','world',sep='---')

lesson_17——模塊+包

print('-----lesson—17+18_模塊+包----')

'''

1-模塊的概念:---試卷

一個(gè).py文件就稱之為一個(gè)模塊(Module)

2-包的概念:---試卷夾

這些組織存放模塊文件的目錄阵漏,我們稱之為包(Package)

3-模塊與包的優(yōu)勢(shì):

1-方便別人調(diào)用

2-避免同名變量/函數(shù)

3-每個(gè)模塊中的變量名作用域只在本模塊中

4-模塊的使用:

1-同一個(gè)包內(nèi)的調(diào)用:

1- import 模塊名--- 相當(dāng)于執(zhí)行了一遍導(dǎo)入的模塊

2-使用變量/函數(shù):模塊名 . 函數(shù)/變量

3-如果我們模塊名很長(zhǎng)---as 取別名

from 包.模塊名 import 函數(shù) as 別名

1-優(yōu)勢(shì):可以減少字符長(zhǎng)度

2-避免導(dǎo)入對(duì)象的沖突,避免同時(shí)導(dǎo)入多個(gè)模塊里面有同名函數(shù),出現(xiàn)覆蓋情況

4-from 模塊名 import 函數(shù)/變量

from mathFunction import sumFunNew

sumFunNew(1,2)

導(dǎo)入全部:from mathFunction import * === import mathFunction

優(yōu)勢(shì):可以節(jié)省字符長(zhǎng)度描述

劣勢(shì):導(dǎo)一個(gè)用一個(gè)驻民,如果還有需求,增加下

區(qū)別:

1- import xx---全部導(dǎo)入

2- from 模塊 import 函數(shù)/變量 ,指定內(nèi)容導(dǎo)入履怯,如果后期有增加的話回还,再增加imnport后面的內(nèi)容

2-不同包的調(diào)用:

1- import testP.pTest

testP.pTest.func()

3-init.py模塊:

1-初始化模塊

2-只要你調(diào)用這個(gè)包,那么該包的init.py叹洲,就會(huì)被執(zhí)行柠硕!

5-標(biāo)準(zhǔn)庫(kù)的使用:

1-不需要程序員去 import---直接使用變量和函數(shù)---print / open() / len()

2-import time

print(time.strftime("%Y_%m_%d %H:%M:%S"))

3- 標(biāo)準(zhǔn)庫(kù)

1- 內(nèi)置類型& 內(nèi)置函數(shù)--直接使用,不需要import

2- 內(nèi)置模塊--要使用import

案例:

from datetime import date

now = date.today()

print(now)

6-模塊搜索規(guī)則:

1-import sys----sys.path

2- sys.path---第一個(gè)是空地址----當(dāng)前目錄

7-增加路徑:

1-import sys---臨時(shí)的

sys.path.append('g:/file')

2-cmd--set PYTHONPATH=g:/file

8- pip install命令行安裝第三方庫(kù)pip install selenium -i https://pypi.douban.com/simple/

9- pip list 查看安裝的第三方庫(kù)

'''

import mathFunction # 執(zhí)行了這個(gè)整個(gè)模塊mathFunction---

mathFunction.sumFun(1,2)

import newP.sonP.sonPT as sP

sP.son()

from mathFunction import sumFun,version

sumFun(1,2)

print(version)

from mathFunction import sumFun

from newP.newPTest import sumFun as SF

SF(1,2)

sumFun(1,2)

'''

import time

print(time.strftime("%Y_%m_%d %H:%M:%S"))

import sys

sys.path.append("H:\") #臨時(shí)

print(sys.path)

print('當(dāng)前模塊名是:',name) # name 模塊的名字

if name == 'main': # 如果在當(dāng)前模塊運(yùn)行的話

print('我是調(diào)試代碼--自己?jiǎn)为?dú)運(yùn)行可以使用--其他調(diào)用者用不了运提!')

lesson_18——Pycharm使用技巧

('2017-03-13 11:50:09', 271, 131),

1-思路分析:

1- 獲取每一行有效數(shù)據(jù):時(shí)間蝗柔、課程id、學(xué)生id

1- 分析文件類型--txt

2- 打開文件---open('路徑') with open('路徑') as fo:

3- 獲取每一行信息

linesList = fo.read().splitlines() # 去換行符-----返回list類型-

每一個(gè)元素是一行內(nèi)容---字符串

4- 對(duì)每一行進(jìn)行遍歷---對(duì)每一行進(jìn)行提取數(shù)據(jù)

for line in linesList:

line--------"('2017-03-13 11:50:09', 271, 131),"

對(duì)這個(gè)每一行數(shù)據(jù)進(jìn)行一個(gè)簡(jiǎn)單的處理:替換()

5- 已經(jīng)是每一行相對(duì)比較簡(jiǎn)潔的數(shù)據(jù) --"2017-03-13 11:50:09, 271, 131,"

6- 對(duì)每一行進(jìn)行split(',') --返回是list 4個(gè)元素--前3個(gè)有效民泵,

7- 進(jìn)行去空格處理下-strip()--- 以下三個(gè)元素--字符串

checkTime 2017-03-13 11:50:09

lessonId 271---int()

ueserId 131---int()

2- 按格式統(tǒng)計(jì)輸出

1- 先組織格式:

1- 每一行的課程id 時(shí)間 組合成--字典

{'lessonid': 271,'checkintime':'2017-03-13 11:50:09'}

2- infoDict = {'lessonid': lessonId,'checkintime':checkTime}

2- 統(tǒng)計(jì):同一個(gè)學(xué)生id

1- if userId not in resDict:

新增該學(xué)生id---鍵值對(duì)----

2- else

append

3- 返回

'''

def func():

print('step1')

print('step2')

print('step3')

print('step4')

fileDir = r'G:\0005_1.txt'

def putInfoToDict(fileName):

resDict = {} #保存結(jié)果的字典

1- 打開文件

with open(fileName) as fo:

2- -讀所有行

linesList = fo.read().splitlines()

for line in linesList:

line = line.replace('\t','').replace('(','')\

.replace(')','').replace("'",'').replace(';',',')

tempList = line.split(',')

checkTime = tempList[0].strip()

lessonId = int(tempList[1].strip())

userId = int(tempList[2].strip())

組織格式

infoDict = {'lessonid':lessonId,'checkintime':checkTime}

統(tǒng)計(jì)--匯總

func()

if userId not in resDict: #增加 學(xué)生id :[] 鍵值對(duì)

resDict[userId] = [] #增加鍵值對(duì)的

resDict---{ 131:[{第一次也要進(jìn)去}]}

resDict[userId].append(infoDict)

return resDict

res = putInfoToDict(fileDir)

import pprint

pprint.pprint(res)

import logging

log_file = "G:/basic20190429.log"

logging.basicConfig(filename=log_file, level=logging.DEBUG)

logging.debug("this is a debugmsg!")

logging.info("this is a infomsg!")

logging.warn("this is a warn msg!")

logging.error("this is a error msg!")

logging.critical("this is a critical msg!")

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末癣丧,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子栈妆,更是在濱河造成了極大的恐慌胁编,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鳞尔,死亡現(xiàn)場(chǎng)離奇詭異嬉橙,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)寥假,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門市框,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人糕韧,你說(shuō)我怎么就攤上這事拾给。” “怎么了兔沃?”我有些...
    開封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)级及。 經(jīng)常有香客問(wèn)我听系,道長(zhǎng)糙臼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任宅楞,我火速辦了婚禮,結(jié)果婚禮上席纽,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好伟件,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著议经,像睡著了一般斧账。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上煞肾,一...
    開封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天咧织,我揣著相機(jī)與錄音,去河邊找鬼籍救。 笑死习绢,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蝙昙。 我是一名探鬼主播闪萄,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼奇颠!你這毒婦竟也來(lái)了败去?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤大刊,失蹤者是張志新(化名)和其女友劉穎为迈,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缺菌,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡葫辐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了伴郁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耿战。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖焊傅,靈堂內(nèi)的尸體忽然破棺而出剂陡,到底是詐尸還是另有隱情,我是刑警寧澤狐胎,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布鸭栖,位于F島的核電站,受9級(jí)特大地震影響握巢,放射性物質(zhì)發(fā)生泄漏晕鹊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望溅话。 院中可真熱鬧晓锻,春花似錦、人聲如沸飞几。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)屑墨。三九已至躁锁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绪钥,已是汗流浹背灿里。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留程腹,地道東北人匣吊。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像寸潦,于是被迫代替她去往敵國(guó)和親色鸳。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 主題:變量名和字符串 變量:變量名就像我們現(xiàn)實(shí)社會(huì)中的名字见转,把一個(gè)值賦值給一個(gè)名字時(shí)命雀,ta會(huì)存儲(chǔ)在變量名中,稱之為...
    米果_57d5閱讀 187評(píng)論 0 0
  • 主題:變量名和字符串 變量:變量名就像我們現(xiàn)實(shí)社會(huì)中的名字斩箫,把一個(gè)值賦值給一個(gè)名字時(shí)吏砂,ta會(huì)存儲(chǔ)在變量名中,稱之為...
    米果_57d5閱讀 113評(píng)論 0 1
  • 基礎(chǔ)語(yǔ)法: 一.馮諾依曼體系架構(gòu): 五大部件: CPU:包括運(yùn)算器和控制器乘客,CPU只和一件設(shè)備狐血,內(nèi)存打交道。 運(yùn)算...
    vampire6閱讀 264評(píng)論 0 1
  • 41,memoryview內(nèi)存視圖易核,不復(fù)制內(nèi)容前提下再數(shù)據(jù)結(jié)構(gòu)間共享內(nèi)存這里只演示簡(jiǎn)單用法匈织,這個(gè)內(nèi)建函數(shù)還是很復(fù)雜...
    派神教主閱讀 228評(píng)論 0 0
  • 編程就是你發(fā)指令給電腦,讓它幫你處理數(shù)據(jù)牡直。數(shù)據(jù)處理過(guò)程中缀匕,需要臨時(shí)存在內(nèi)存上,直到最終結(jié)果存回硬盤碰逸。臨時(shí)使用內(nèi)存區(qū)...
    吳加明閱讀 491評(píng)論 0 0