python入門筆記04

while循環(huán)

while 判斷語句:
語句

實例:

n = 100
 
sum = 0
counter = 1
while counter <= n:#條件為false是跳出
    sum = sum + counter
    counter += 1
 
print("1 到 %d 之和為: %d" % (n,sum))

寫一個無限循環(huán):

var = 1
while var == 1 :  # 表達式永遠為 true
   print('夢妍大佬你好!')
 
print ("Good bye!")

while & else

count = 0
while count < 5:
   print (count, " 小于 5")
   count = count + 1
else:
   print (count, " 大于或等于 5")

for語句

Python for循環(huán)可以遍歷任何序列的項目准颓,如一個列表或者一個字符串。

for <variable> in <sequence>:
    <statements>
else:
    <statements>

實例:

tester = ['myl', 'lnc', 'xg', 'zzl', 'qfl']
for x in tester:
    print(x)

使用break跳出循環(huán)

tester = ['myl', 'lnc', 'xg', 'zzl', 'qfl']
list = []
for name in tester:
    list.append(name)
    if name == 'xg':
        break
else:
    print('員工列表為空')
print('the old tester:',list)
print('完成循環(huán)')

循環(huán)到zzl之后就跳出循環(huán)

break和continue語句及循環(huán)中的else子句

break 語句可以跳出 for 和 while 的循環(huán)體圃郊。如果你從 for 或 while 循環(huán)中終止,任何對應(yīng)的循環(huán) else 塊將不執(zhí)行女蜈。 實例如下:

tester = ['myl', 'lnc', 'xg', 'qfl', 'zzl']
for name in tester:
    if name == 'myl':
        break
    print('大佬為:',name)
    
    
tester = ['myl', 'lnc', 'xg', 'qfl', 'zzl']
t = 0
while t < len(tester):
    print(t)
    if tester[t] == 'lnc':

        print('大佬為',tester[t])
        break
    t = t + 1
print('bye')
    

continue語句被用來告訴Python跳過當(dāng)前循環(huán)塊中的剩余語句持舆,然后繼續(xù)進行下一輪循環(huán)。

tester = ['myl', 'lnc', 'xg', 'zzl', 'qfl']
for name in tester:
    if name == 'qfl':
        continue
    print('tester中的大佬為:',name)

    

pass語句

Python pass是空語句伪窖,是為了保持程序結(jié)構(gòu)的完整性逸寓。

pass 不做任何事情,一般用做占位語句惰许,如下實例

for letter in 'Runoob': 
   if letter == 'o':
      pass
      print ('執(zhí)行 pass 塊')
   print ('當(dāng)前字母 :', letter)
 
print ("Good bye!")

Pyhon3 函數(shù)

函數(shù)是組織好的席覆,可重復(fù)使用的,用來實現(xiàn)單一汹买,或相關(guān)聯(lián)功能的代碼段。

函數(shù)能提高應(yīng)用的模塊性聊倔,和代碼的重復(fù)利用率晦毙。你已經(jīng)知道Python提供了許多內(nèi)建函數(shù),比如print()耙蔑。但你也可以自己創(chuàng)建函數(shù)见妒,這被叫做用戶自定義函數(shù)。

定義一個函數(shù)

你可以定義一個由自己想要功能的函數(shù)甸陌,以下是簡單的規(guī)則:

  • 函數(shù)代碼塊以 def 關(guān)鍵詞開頭须揣,后接函數(shù)標(biāo)識符名稱和圓括號 ()。
  • 任何傳入?yún)?shù)和自變量必須放在圓括號中間钱豁,圓括號之間可以用于定義參數(shù)耻卡。
  • 函數(shù)的第一行語句可以選擇性地使用文檔字符串—用于存放函數(shù)說明。
  • 函數(shù)內(nèi)容以冒號起始牲尺,并且縮進卵酪。
  • return [表達式] 結(jié)束函數(shù)幌蚊,選擇性地返回一個值給調(diào)用方。不帶表達式的return相當(dāng)于返回 None溃卡。

語法

def 函數(shù)名(參數(shù)列表):
    函數(shù)體

實例:

def hello():
    print('Hello World')

復(fù)雜點的:

def cha(w, h):
    return w- h
l, f =4, 5
print(cha(w,h))#按順序
print(cha(h=5,w=4))#指定
def printinfo( name, age = 35 ):
   "打印任何傳入的字符串"
   print ("名字: ", name)
   print ("年齡: ", age)
   return
 
#調(diào)用printinfo函數(shù)
printinfo( age=24, name="lqf" )
print ("------------------------")
#不傳age溢豆,則使用定義時的默認值35
printinfo( name="lqf" )

不定長參數(shù)

加了星號(*)的變量名會存放所有未命名的變量參數(shù)。如果在函數(shù)調(diào)用時沒有指定參數(shù)瘸羡,它就是一個空元組漩仙。我們也可以不向函數(shù)傳遞未命名的變量。如下實例:

def printinfo( arg1, *vartuple ):
   "打印任何傳入的參數(shù)"
  
   print ("輸出:,"arg1)
   for var in vartuple:
      print (var)
   return
 
# 調(diào)用printinfo 函數(shù)
printinfo( 10 )
printinfo( 70, 60, 50 )

作用域

total = 0 # 這是一個全局變量
# 可寫函數(shù)說明
def sum( arg1, arg2 ):
    #返回2個參數(shù)的和."
    total = arg1 + arg2 # total在這里是局部變量.
    print ("函數(shù)內(nèi)是局部變量 : ", total)
    return total

#調(diào)用sum函數(shù)
sum( 10, 20 )
print ("函數(shù)外是全局變量 : ", total)

面向?qū)ο?/h4>

在python中犹赖,所有數(shù)據(jù)類型都可以視為對象队他,當(dāng)然也可以自定義對象,自定義對象數(shù)據(jù)類型就是面向?qū)ο笾械念悾╟lass)的概念冷尉;
student(有name漱挎,score)這種數(shù)據(jù)類型應(yīng)該被視為一個對象,這個對象擁有name和score這兩個屬性雀哨,如果要打印一個學(xué)生的成績磕谅,首先要創(chuàng)建出這個學(xué)生對應(yīng)的對象,然后給對象發(fā)一個print_score消息雾棺,讓對象自己把自己的數(shù)據(jù)打印出來膊夹。

class Student():
    def __init__(self,name,score):
        self.name = name
        self.score = score
    def print_score(self):
        print('%s: %s' % (self.name,self.score))

lqf = Student('luoqingfu',59)
lqf.print_score()

類(Class)和實例

面向?qū)ο笞钪匾母拍罹褪穷悾–lass)和實例(Instance),必須牢記類是抽象的模板捌浩,比如Student類放刨,而實例是根據(jù)類創(chuàng)建出來的一個個具體的“對象”,每個對象都擁有相同的方法尸饺,但各自的數(shù)據(jù)可能不同进统。

仍以Student類為例,在Python中浪听,定義類是通過class關(guān)鍵字:

class Student(object):
    pass

class后面緊接著是類名螟碎,即Student,類名通常是大寫開頭的單詞迹栓,緊接著是(object)掉分,表示該類是從哪個類繼承下來的,繼承的概念我們后面再講克伊,通常酥郭,如果沒有合適的繼承類,就使用object類愿吹,這是所有類最終都會繼承的類不从。
定義好了Student類,就可以根據(jù)Student類創(chuàng)建出Student的實例洗搂,創(chuàng)建實例是通過類名+()實現(xiàn)的:

lqf = Student()

由于類可以起到模板的作用消返,因此载弄,可以在創(chuàng)建實例的時候,把一些我們認為必須綁定的屬性強制填寫進去撵颊。通過定義一個特殊的init方法宇攻,在創(chuàng)建實例的時候,就把name倡勇,score等屬性綁上去:

class Student(object):
    def __init__(self, name, score):
        self.name = name
        self.score = score

注意到init方法的第一個參數(shù)永遠是self逞刷,表示創(chuàng)建的實例本身,因此妻熊,在init方法內(nèi)部夸浅,就可以把各種屬性綁定到self,因為self就指向創(chuàng)建的實例本身扔役。

繼承和多態(tài)

在面向?qū)ο蟮某绦蛟O(shè)計中帆喇,當(dāng)我們定義一個class的時候,可以從某個現(xiàn)有的class繼承亿胸,新的class稱為子類(Subclass)坯钦,而被繼承的class稱為基類、父類或超類(Base class侈玄、Super class)婉刀。

比如,我們已經(jīng)編寫了一個名為Animal的class序仙,有一個run()方法可以直接打油患铡:

class Animal(object):
    def run(self):
        print('Animal is running...')

當(dāng)我們需要編寫Dog和Cat類是,就可以從animal類中繼承

class Dog(Animal):
    pass

class Cat(Animal):
    pass

對于Dog來說潘悼,Animal就是它的父類律秃,對于Animal來說,Dog就是它的子類治唤。Cat和Dog類似友绝。

繼承有什么好處?最大的好處是子類獲得了父類的全部功能肝劲。由于Animial實現(xiàn)了run()方法,因此郭宝,Dog和Cat作為它的子類辞槐,什么事也沒干,就自動擁有了run()方法:

dog = Dog()
dog.run()

cat = Cat()
cat.run()

#結(jié)果
Animal is running...
Animal is running...

繼承的第二個好處需要我們對代碼做一點改進粘室。你看到了榄檬,無論是Dog還是Cat,它們run()的時候衔统,顯示的都是Animal is running...,符合邏輯的做法是分別顯示Dog is running...和Cat is running...,因此沪袭,對Dog和Cat類改進如下:

class Dog(Animal):

    def run(self):
        print('Dog is running...')

class Cat(Animal):

    def run(self):
        print('Cat is running...')

#結(jié)果
Dog is running...
Cat is running...

當(dāng)子類和父類都存在相同的run()方法時湾宙,我們說,子類的run()覆蓋了父類的run()伟恶。
筆者整理到這博秫,有些例子是參照菜鳥教程的,

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蒿叠,隨后出現(xiàn)的幾起案子市咽,更是在濱河造成了極大的恐慌,老刑警劉巖谷醉,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異遇八,居然都是意外死亡货矮,警方通過查閱死者的電腦和手機次屠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進店門掖桦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來涌穆,“玉大人,你說我怎么就攤上這事祝沸。” “怎么了涩惑?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵熬的,是天一觀的道長。 經(jīng)常有香客問我强戴,道長预烙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任镀脂,我火速辦了婚禮沙兰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘翘魄。我一直安慰自己鼎天,他們只是感情好暑竟,可當(dāng)我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著纱兑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪榜掌。 梳的紋絲不亂的頭發(fā)上优妙,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天,我揣著相機與錄音胞皱,去河邊找鬼邪意。 笑死,一個胖子當(dāng)著我的面吹牛反砌,可吹牛的內(nèi)容都是我干的雾鬼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼于颖,長吁一口氣:“原來是場噩夢啊……” “哼呆贿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起森渐,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤做入,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后同衣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體竟块,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年耐齐,在試婚紗的時候發(fā)現(xiàn)自己被綠了浪秘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡埠况,死狀恐怖耸携,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辕翰,我是刑警寧澤夺衍,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站喜命,受9級特大地震影響沟沙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜壁榕,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一矛紫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧牌里,春花似錦颊咬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缓呛。三九已至,卻和暖如春杭隙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背因妙。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工痰憎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人攀涵。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓铣耘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親以故。 傳聞我的和親對象是個殘疾皇子蜗细,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,629評論 2 354

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