零基礎學Python 讀《編程小白的第一本 Python 入門書》筆記三

第五章 循環(huán)與判斷

5.1 邏輯控制與循環(huán)

邏輯判斷一一True & False

布爾類型(Boolean)的數(shù)據(jù)只有兩種,True 和 False (需要注意的是首字母大寫)辉阶。人類以真?zhèn)蝸砼袛嗍聦崳谟嬎銠C世界中真?zhèn)螌膭t是1和0谆甜。

1 > 2              # False
1 < 2 <3           # True
42 != '42'         # True
'Name' == 'name'   # False
'M' in 'Magic'     # True
number = 12 
number is 12       # True
  • 這里“==”是等于,一個等號是賦值规辱,不等于用“谆棺!=”這個表示
  • 字符串和數(shù)字不能比較
  • 字符串比較區(qū)分大小寫
  • True是1,F(xiàn)alse是0按摘,所以True>False
成員運算符與身份運算符
  • in, not in a in b, a是否在b的里面(歸屬關系)
    • 列表 album = [],像這樣就是創(chuàng)建了一個列表,append()可以添加元素到集合的最后

字符串包券、浮點纫谅、整數(shù)、布爾類型溅固、變量甚至是另一個列表都可以儲存在列表中

album = []
album = ['Black Star', 'David Bowie', 25, True]
album.append('new song')
print(album[0], album[-1])
print('Black Star' in album)
  • is, is not a is b, a是b嗎(身份鑒別)
the_Eddie = 'Eddie'
name = 'Eddie'  
the_Eddie == name   #True
the_Eddie is name    #True

在 Python 中任何對象都可判斷其布爾值付秕,除了 0、None 和所有空的序列與集合(列表侍郭,字典询吴,集合)布爾值為 False 之外,其它的都為 True

bool(0)      #False
bool([])     #False
bool('')     #False
bool(False)  #False
bool(None)   #False
布爾運算符

and亮元、or 用于布爾值的之間的運算

1 < 3 and 2 < 5  #True
1 < 3 and 2 > 5  #False
1 < 3 or 2 > 5   #True
1 > 3 or 2 > 5   #False

5.2 條件控制

if...else

if 條件為True時冒號猛计,做……,條件為False時爆捞,做……

  • 例子奉瘤,做個登錄的函數(shù),輸入密碼為12345時顯示密碼正確煮甥,除此以外顯示密碼錯誤并提示重新輸入密碼
def account_login():
    password = input('Password:')  # input輸入的是字符串
    if password == '12345':  # 輸入的密碼等于12345
        print('Login success!')
    else:
        print('Wrong password or invalid input!')
        account_login()  # 重新輸入密碼


account_login()
elif

多條件判斷同樣很簡單盗温,只需在 if 和else 之間增加上 elif,用法和 if 是一致的成肘。而且條件的判斷也是依次進行的卖局,首先看條件是否成立,如果成立那么就運行下面的代碼双霍,如果不成立就接著順次地看下面的條件是否成立砚偶,如果都不成立則運行 else 對應的語句。

上面的例子加個重置密碼的功能

password_list = ['*#*#', '12345']


def account_login():
    password = input('Password:')
    password_correct = password == password_list[-1]
    password_reset = password == password_list[0]
    if password_correct:
        print('Login success!')
    elif password_reset:
        new_password = input('Enter a new password')
        password_list.append(new_password)
        print('Your password has changed successfully!')
        account_login()
    else:
        print('Wrong password or invalid input!')
        account_login()


account_login()

5.3 循環(huán)

for 循環(huán)
for every_letter in 'Hello world':
    print(every_letter)

把 for 循環(huán)所做的事情概括成一句話就是:于...其中的每一個元素洒闸,做...事情染坯。

  • 例子1 試著用for循環(huán)打印
    1 + 1 = 2
    2 + 1 = 3
    .
    .
    10 + 1 = 11
    (這里會用到一個range(a,b)括號中填上數(shù)字,就可以得到一個具有連續(xù)整數(shù)的序列)
for num in range(1, 11):
    print(str(num) + ' + 1' + ' = ' + str(num + 1))
    print('{} + 1 = {}'.format(num, num+1))  #也可以這樣寫
  • 例子2 把 for 和 if 結合起來使用顷蟀。實現(xiàn)這樣一個程序:歌曲列表中有三首歌“Holy Diver, Thunderstruck, Rebel Rebel”酒请,當播放到每首時骡技,分別顯示對應的歌手名字“Dio, AC/DC, David Bowie”鸣个。
song_list = ['Holy Diver', 'Thunderstruck', 'Rebel Rebel']
for song in song_list:
    if song == 'Holy Diver':
        print(song, ' - Dio')
    elif song == 'Thunderstruck':
        print(song, ' - AC/DC')
    elif song == 'Rebel Rebel':
        print(song, ' - David Bowie')

!2茧囤萤!這里的print(song, ' - David Bowie')中的逗號解釋
'+'號是進行拼接,參與'+'的參數(shù)類型必須是同類型的數(shù)據(jù)
',' 號是將變量分隔開是趴,可以是不同類型的數(shù)據(jù)

比如:

    print  'abc'+'123'   # result: abc123 
    print  'abc', '123'    # result: abc 123 
嵌套循環(huán)
  • 打印個乘法口訣表
for i in range(1, 10):
    for j in range(1, 10):
        print('{} × {} = {}'.format(i, j, i * j))

變量 i 每取一次值涛舍,內(nèi)層循環(huán)就要依次將 1~9 中存儲在變量 j 中

While 循環(huán)

只要…條件成立,就一直做…唆途。

while 1 < 3:
    print('1 is smaller than 3')

這個循環(huán)會一直循環(huán)下去富雅,要及時停止,像這種循環(huán)我們叫死循環(huán)

  • 如何控制while循環(huán)毕贼,其中一種方式就是:在循環(huán)過程中制造某種可以使循環(huán)停下來的條件
count = 0
while True:
    print('Repeat this line !')
    count = count + 1
    if count > 5:
        break
  • 如何控制while循環(huán)鬼癣,另外一種方法是:改變使循環(huán)成立的條件
count = 0
while count < 5:
    print('Repeat this line !')
    count = count + 1
  • 在登錄函數(shù)基礎上啤贩,改成輸入密碼錯誤3次就不許再輸入了
def account_login():
    tries = 3
    while tries > 0:
        password = input('Password:')
        password_correct = password == password_list[-1]
        password_reset = password == password_list[0]
        if password_correct:
            print('Login success!')
            break
        elif password_reset:
            new_password = input('New Password:')
            password_list.append(new_password)
            print('Your password has changed successfully')
            account_login()
            break
        else:
            print('Wrong password or invalid input!')
            tries = tries - 1
            print(tries, 'times left')

    else:
        print('Your account has been suspended')
account_login()

這里用了個while…else痹屹,
意思是當 while/for 循環(huán)正常執(zhí)行完的情況下志衍,執(zhí)行 else 輸出;
如果當 while/for 循環(huán)中執(zhí)行了跳出循環(huán)的語句雄驹,比如 break淹辞,將不執(zhí)行 else 代碼塊的內(nèi)容

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末象缀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子霞怀,更是在濱河造成了極大的恐慌毙石,老刑警劉巖颓遏,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叁幢,死亡現(xiàn)場離奇詭異,居然都是意外死亡鳞骤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門贝咙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來庭猩,“玉大人蔼水,你說我怎么就攤上這事录肯。” “怎么了优炬?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵蠢护,是天一觀的道長养涮。 經(jīng)常有香客問我,道長懈凹,這世上最難降的妖魔是什么悄谐? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任爬舰,我火速辦了婚禮洼专,結果婚禮上孵构,老公的妹妹穿的比我還像新娘。我一直安慰自己蜡镶,他們只是感情好,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布芹橡。 她就那樣靜靜地躺著林说,像睡著了一般屯伞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上珠移,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天钧惧,我揣著相機與錄音勾习,去河邊找鬼。 笑死追逮,一個胖子當著我的面吹牛粹舵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播巴席,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼漾唉,長吁一口氣:“原來是場噩夢啊……” “哼堰塌!你這毒婦竟也來了?” 一聲冷哼從身側響起般此,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤铐懊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后壁畸,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茅茂,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡空闲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年进副,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片给赞。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡片迅,死狀恐怖皆辽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情耻台,我是刑警寧澤空另,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布扼菠,位于F島的核電站,受9級特大地震影響析恢,放射性物質(zhì)發(fā)生泄漏秧饮。R本人自食惡果不足惜泽篮,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一咪辱、第九天 我趴在偏房一處隱蔽的房頂上張望椎组。 院中可真熱鬧历恐,春花似錦、人聲如沸闷旧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽庇勃。三九已至,卻和暖如春鸳兽,著一層夾襖步出監(jiān)牢的瞬間罕拂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工衷掷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人棍鳖。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓渡处,卻偏偏與公主長得像,于是被迫代替她去往敵國和親医瘫。 傳聞我的和親對象是個殘疾皇子旧困,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

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