07包羡榴、模塊碧查、函數(shù)與變量作用域

7-1 while循環(huán)與使用場(chǎng)景
循環(huán)、循環(huán)語(yǔ)句
主要看看兩個(gè)循環(huán) while和for

先看while

'''
CONDITION = True
while CONDITION:
    print('i am while') #按ctrl + c 結(jié)束運(yùn)行終端里的循環(huán)
'''
counter = 1    # 在遞歸的環(huán)境里用while的情況多點(diǎn)
while counter <= 10:
    counter += 1
    print(counter)
else:
    print('EOF')

while不僅可以單獨(dú)使用校仑,還可以和else一起使用忠售!

7-2 for與for-else循環(huán)

'''
主要是用來(lái)遍歷/循環(huán)  序列或者集合、字典

for target_list in expression_list: #for循環(huán)的形式
    pass

'''
# 簡(jiǎn)單的for循環(huán)
a = ['apple','orange','banana','grape']
for x in a:
    print(x)

如下列表中打印所有的列表元素

a = [['apple','orange','banana','grape'],(1,2,3)]
for x in a:
    print(x) 這種方法打印的是大列表中的一個(gè)列表和元組迄沫,并不是所有元素

看下列方法稻扬。稱為循環(huán)嵌套!Q虼瘛泰佳!

a = [['apple','orange','banana','grape'],(1,2,3)]
for x in a:
    for y in x:
        print(y)

打印的結(jié)果如圖

image

默認(rèn)的打印結(jié)果是按列排放的,那么如何改成按行排放呢尘吗?

a = [['apple','orange','banana','grape'],(1,2,3)]
for x in a:
    for y in x:
        print(y,end = '')

打印結(jié)果按行排放

image

# for也可以用來(lái)和else搭配

a = [['apple','orange','banana','grape'],(1,2,3)]
for x in a:
    for y in x:
        print(y)
else:
    print('fruit is gone')
#當(dāng)遍歷完才執(zhí)行else
# 想一想逝她,如何終止for循環(huán)? a = [1,2,3],當(dāng)x 遍歷到2的時(shí)候就終止睬捶,怎么操作黔宛?
a = [1,2,3]

for x in a:
    if x == 2:
        break #一旦遇到break,就會(huì)跳出循環(huán)侧戴,后面的都不會(huì)被遍歷了(強(qiáng)行終止)
    print(x)

# 想一想宁昭,如何終止for循環(huán)? a = [1,2,3],當(dāng)x不遍歷到2酗宋,直接遍歷到3积仗,怎么操作?

for x in a:
    if x == 2:
        continue#一旦遇到continue蜕猫,當(dāng)前的不會(huì)被執(zhí)行寂曹,后續(xù)的還是會(huì)被執(zhí)行出來(lái)
    print(x)

看看下面的代碼,回答問(wèn)題
for x in a:
    if x == 2:
        break 
    print(x)
else:
    print('EOF')

上述代碼中回右,通過(guò)break強(qiáng)制性打斷的隆圆,而非正常結(jié)束的,那么后面的else語(yǔ)句是不會(huì)再執(zhí)行了翔烁。
如果是continue渺氧,那么else語(yǔ)句將繼續(xù)會(huì)被執(zhí)行

再來(lái)看一個(gè)問(wèn)題,想一想為什么蹬屹?

a = [['apple','orange','banana','grape'],(1,2,3)]
for x in a:
    for y in x:
        if y == 'orange':
            break
        print(y)
else:
    print('fruit is gone')

image
a = [['apple','orange','banana','grape'],(1,2,3)]
for x in a:
    if 'banana' in x:
        break
    for y in x:
        if y == 'orange':
            break
        print(y)
else:
    print('fruit is gone')

這段代碼卻什么也沒(méi)打印出來(lái)B卤场!
出現(xiàn)上述兩種情況的原因是因?yàn)橛袃蓚€(gè)嵌套的for循環(huán)慨默,并不是一個(gè)for循環(huán)贩耐,第一段代碼跳出的是內(nèi)部的循環(huán),外部的循環(huán)照樣打印厦取,所以并不影響123的打印潮太,和else配對(duì)的是外面的循環(huán),里面的循終止虾攻,并不影響else的打印
第二段代碼是表示外部終止铡买,所以什么都不會(huì)被打印台谢!

7-3 for 與range

for x in range (0,10): # 0是起始寻狂,10是偏移量
    print(x)
#輸出0,1,2,3,4,5朋沮,6,7,8,9
# 若果想打印的數(shù)字有間隔蛇券,并不是連續(xù)的數(shù)字,怎么辦樊拓? 

for x in range (0,10,2): # 0是起始纠亚,10是偏移量  第三個(gè)參數(shù)2 表示步長(zhǎng),間隔多少的意思
    print(x)

#如果將間隔的數(shù)列按行排列怎么辦筋夏?

for x in range (0,10蒂胞,2): # 0是起始,10是偏移量  第三個(gè)參數(shù)2 表示步長(zhǎng)条篷,間隔多少的意思
    print(x,end = ' | ')    #  end = ' | '  表示按行排列

#如果想打印遞減的等差數(shù)列怎么辦骗随?

for x in range (10,0蛤织,-2): # 10是起始,0是偏移量  第三個(gè)參數(shù) -2 表示步長(zhǎng)鸿染,間隔多少的意思
    print(x,end = ' | ')    #  end = ' | '  表示按行排列

#  思考題:有序列a = [1,2,3,4,5,6,7,8],也可能是無(wú)線長(zhǎng)指蚜,打印相間隔的數(shù)字出來(lái)!

a = [1,2,3,4,5,6,7,8]
for i in range(0,len(a),2):

    print(a[i],end=' | ' )

# 上述方法挺好涨椒,但是用切片的方法可以起到同樣的效果
 b = a[0:len(a):2]
 print(b)

image
image

7-4新篇章導(dǎo)言

會(huì)寫(xiě)代碼摊鸡,非常容易
難的是:高性能、封裝性(可服用)蚕冬、抽象
直白
美與不美

7-5Python工程的組織結(jié)構(gòu):包免猾、模塊、類

Python的項(xiàng)目組織結(jié)構(gòu)
包(可以理解成文件夾)
模塊(可以理解成文件)

函數(shù)囤热、變量

image

7-6Python包與模塊的名字

image

那么如何區(qū)分猎提,不同包的同名模塊呢?
采用命名空間 命名方式是:包的名字.模塊的名字
如:seven.c4 six.c4
包下面可以有子包
如果想讓一個(gè)文件夾編程Python的一個(gè)包赢乓,則必須含有init.py(本身就是個(gè)模塊.這個(gè)模塊的名字就是包名)文件
不能說(shuō)一個(gè)文件夾就是包

7-7import導(dǎo)入模塊

我們把公用的東西或者重復(fù)的東西提取出來(lái)放在同一個(gè)模塊里忧侧,我們只要調(diào)用即可。
import t.c7 #(包名.模塊名) import只能導(dǎo)入模塊牌芋,不能導(dǎo)入變量
print(t.c7.a)#(包名.模塊名.變量名)

以下有種快捷方法

import t.c7 as m # as 關(guān)鍵字可以把命名空間簡(jiǎn)化成一個(gè)很簡(jiǎn)單的字符
print(m.a)

7-8 from import 導(dǎo)入變量

導(dǎo)入的是具體的變量蚓炬,可以簡(jiǎn)化

#from import 導(dǎo)入變量
# import 導(dǎo)入的模塊
 
from module import a,def   # 可以是變量或者定義的函數(shù)

#如下兩種方式都是可以的
from t.c7 import a
print(a)

from t import c7 #導(dǎo)入t包中的c7模塊
print(c7.a) #導(dǎo)入模塊



#如果要引用的變量過(guò)多,怎么辦躺屁?看看下面的方法

from t.c7 import *  #(全部變量導(dǎo)入肯夏,不建議使用,導(dǎo)致引入不明確)
print(a)
print(b)
print(c)
#導(dǎo)入多個(gè)變量
#如果導(dǎo)入的變量過(guò)多犀暑,可以通過(guò)\來(lái)?yè)Q行驯击,python建議1行最多80個(gè)字符
#from c9  import a,b,v,v,c,c,c,c,c,v,v,v,b,f,f,d,d,d,d
#from c9 import a,b,v,\
#cccc.....兩個(gè)效果相同
#推薦使用 from c9 import (a,b,c,
#d,d)也可以達(dá)到相同效果

2、Python中的包和模塊有兩種導(dǎo)入方式:精確導(dǎo)入和模糊導(dǎo)入

以上圖為例耐亏,精準(zhǔn)導(dǎo)入徊都,假如A.py里有函數(shù)A1(),A2()广辰。

此時(shí)B.py需要引用它們暇矫,可以如下:

from hello.A import A1,A2
假如方法比較多,或許會(huì)偷懶择吊,用模糊導(dǎo)入:

from hello.A import *
all李根,則可以控制*所表示要引入的東西(模塊,函數(shù)几睛,類等):

如果將all里的sayA2去掉房轿,B.py里就會(huì)報(bào)sayA2查找不到的錯(cuò)誤。

image.png

image.png

7-9 init.py 的用法

當(dāng)一個(gè)包被導(dǎo)入的時(shí)候箩退,init.py首先會(huì)被自動(dòng)執(zhí)行
通常用于包初始化工作
導(dǎo)入模塊

7-10 包與模塊的幾個(gè)常見(jiàn)錯(cuò)誤

包的導(dǎo)入不是重復(fù)的
避免循環(huán)導(dǎo)入(在p1中導(dǎo)入p2盔粹,在p2中導(dǎo)入p1,重復(fù)循環(huán)報(bào)錯(cuò))
【看視頻看懵逼了】


image

7-13 name的經(jīng)典應(yīng)用


import sys
infos = dir(sys) #dir函數(shù)里傳入?yún)?shù)慢味,可以打印出想要查詢模塊的變量
print(infos)

image
if __name__ == '__main__':
    print('this is app')

# make a script both importable and executable 經(jīng)典定義
print('this is a moudule')

image

也可以作為導(dǎo)入纷妆,打印結(jié)果如下:

import c15

image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末钻蹬,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子凭需,更是在濱河造成了極大的恐慌,老刑警劉巖肝匆,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件粒蜈,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡旗国,警方通過(guò)查閱死者的電腦和手機(jī)枯怖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)能曾,“玉大人度硝,你說(shuō)我怎么就攤上這事∈倜幔” “怎么了蕊程?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)驼唱。 經(jīng)常有香客問(wèn)我藻茂,道長(zhǎng),這世上最難降的妖魔是什么玫恳? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任辨赐,我火速辦了婚禮,結(jié)果婚禮上京办,老公的妹妹穿的比我還像新娘掀序。我一直安慰自己,他們只是感情好惭婿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布不恭。 她就那樣靜靜地躺著,像睡著了一般审孽。 火紅的嫁衣襯著肌膚如雪县袱。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,541評(píng)論 1 305
  • 那天佑力,我揣著相機(jī)與錄音式散,去河邊找鬼。 笑死打颤,一個(gè)胖子當(dāng)著我的面吹牛暴拄,可吹牛的內(nèi)容都是我干的漓滔。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼乖篷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼响驴!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起撕蔼,我...
    開(kāi)封第一講書(shū)人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤豁鲤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后鲸沮,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體琳骡,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年讼溺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了楣号。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡怒坯,死狀恐怖炫狱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情剔猿,我是刑警寧澤视译,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站归敬,受9級(jí)特大地震影響憎亚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜弄慰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一第美、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧陆爽,春花似錦什往、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至驴剔,卻和暖如春省古,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背丧失。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工豺妓, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓琳拭,卻偏偏與公主長(zhǎng)得像训堆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子白嘁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • MYSQL 基礎(chǔ)知識(shí) 1 MySQL數(shù)據(jù)庫(kù)概要 2 簡(jiǎn)單MySQL環(huán)境 3 數(shù)據(jù)的存儲(chǔ)和獲取 4 MySQL基本操...
    Kingtester閱讀 7,815評(píng)論 5 116
  • 1 順序語(yǔ)句 語(yǔ)句:使用分號(hào)分隔的代碼稱作為一個(gè)語(yǔ)句坑鱼。 注意:沒(méi)有寫(xiě)任何代碼只是一個(gè)分號(hào)的時(shí)候,也是一條語(yǔ)句絮缅,...
    哈哈哎呦喂閱讀 381評(píng)論 0 0
  • 今天是最重要的一個(gè)日子鲁沥,我們班煦文寶貝的六歲生日,爸爸陪在身邊見(jiàn)證六歲的時(shí)刻耕魄!親愛(ài)的孩子,愿你如春草蓬勃生長(zhǎng),如夏...
    AAAA假如閱讀 398評(píng)論 0 0
  • 這天黍析,我回家晚了。 要按時(shí)回家是父母清晨對(duì)我的叮囑屎开,我也總是記在心里,實(shí)現(xiàn)在腳下马靠⊙俪椋可是有一天卻突然有了想要不一樣的...
    七寶匠閱讀 326評(píng)論 0 0
  • 市面上很多公司不缺好的產(chǎn)品 市面上很多公司不缺好的項(xiàng)目 市面上很多公司不缺好的盈利 市面上很多公司不缺商業(yè)模式 但...
    金浩俊閱讀 590評(píng)論 0 0