日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python学习笔记(四)——流程控制

發(fā)布時間:2025/3/21 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python学习笔记(四)——流程控制 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

學(xué)控制流程的目的在哪?控制流程能夠?qū)崿F(xiàn)非常復(fù)雜的代碼邏輯,它可以實現(xiàn)更加智能的功能

目錄

  • 條件語句
    • if語句的基本形式
    • if語句多個判斷條件的形式
    • if語句多個條件同時判斷
    • if嵌套
  • 三目運算(語法糖)
  • 循環(huán)語句
    • while循環(huán)
    • for迭代循環(huán)
    • range()函數(shù)
    • for循環(huán)和while循環(huán)的區(qū)別
  • 案例

條件語句

Python 條件語句跟其他語言基本一致的,都是通過一條或多條語句的執(zhí)行結(jié)果( True 或者 False )來決定執(zhí)行的代碼塊。

Python 程序語言指定任何非 0 和非空(null)值為 True,0 或者 null 為 False。

if語句的基本形式

Python 中,if 語句的基本形式如下:

if 判斷條件:執(zhí)行語句…… else:執(zhí)行語句……

Python 語言有著嚴(yán)格的縮進(jìn)要求,因此這里也需要注意縮進(jìn),也不要少寫了冒號 :

if 語句的判斷條件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)來表示其關(guān)系。
示例:

results=59 if results>=60:print ('及格') else :print ('不及格')運行結(jié)果:不及格

上面也說到,非零數(shù)值、非空字符串、非空 list 等,判斷為 True,否則為 False。因此也可以這樣寫:

num = 6 if num:print('Hello Python')運行結(jié)果: Hello Python

那如果我們把 num 改為空字符串呢?

if '':print('hello python')

很明顯,空字符串是為 False 的,不符合條件語句,因此不會執(zhí)行到 print('Hello Python') 這段代碼。

注意:在條件判斷代碼中的冒號 : 后、下一行內(nèi)容是一定要縮進(jìn)的。不縮進(jìn)是會報錯的。冒號和縮進(jìn)是一種語法。它會幫助 Python 區(qū)分代碼之間的層次,理解條件執(zhí)行的邏輯及先后順序。

if語句多個判斷條件的形式

有些時候,我們的判斷語句不可能只有兩個,有些時候需要多個,比如上面的例子中大于 60 的為及格,那我們還要判斷大于 90 的為優(yōu)秀,在 80 到 90 之間的良好呢?

這時候需要用到 if 語句多個判斷條件,

語法格式:

if 判斷條件1:執(zhí)行語句1…… elif 判斷條件2:執(zhí)行語句2…… elif 判斷條件3:執(zhí)行語句3…… else:執(zhí)行語句4……

實例:

results = 89if results > 90:print('優(yōu)秀') elif results > 80:print('良好') elif results > 60:print ('及格') else :print ('不及格') 運行結(jié)果: 良好

if語句多個條件同時判斷

有時候我們會遇到多個條件的時候該怎么操作呢?

比如說要求 java 和 python 的考試成績要大于 80 分的時候才算優(yōu)秀,這時候該怎么做?

這時候我們可以結(jié)合 or 和 and 來使用。

or (或)表示兩個條件有一個成立時判斷條件成功

and (與)表示只有兩個條件同時成立的情況下,判斷條件才成功。

例如:

java = 86 python = 68if java > 80 and python > 80:print('優(yōu)秀') else :print('不優(yōu)秀')if ( java >= 80 and java < 90 ) or ( python >= 80 and python < 90):print('良好')輸出結(jié)果: 不優(yōu)秀 良好

注意:if 有多個條件時可使用括號來區(qū)分判斷的先后順序,括號中的判斷優(yōu)先執(zhí)行,此外 and 和 or 的優(yōu)先級低于 >(大于)、<(小于)等判斷符號,即大于和小于在沒有括號的情況下會比與或要優(yōu)先判斷。

if嵌套

if 嵌套是指什么呢?

就跟字面意思差不多,指 if 語句中可以嵌套 if 語句。

比如上面說到的例子,也可以用 if 嵌套來寫。

示例:

a = 81 b = 20if a > 80:if b > 90:print('優(yōu)秀')else:print('及格') else:print('差')輸出結(jié)果: 及格

當(dāng)然這只是為了說明 if 條件語句是可以嵌套的。如果是這個需求,還是不太建議這樣使用 if 嵌套的,因為這樣代碼量多了,而且嵌套太多,也不方便閱讀代碼。

默認(rèn)從上向下執(zhí)行,先整體掃描一下,沒有語法錯誤才會執(zhí)行。

代碼示例:

a=int(input('請輸入您的身高(cm):')) if a>=179:print('男神身高') elif a == 178:print('標(biāo)準(zhǔn)身高') elif 160 < a < 178:print('中等身高') else:print('身高不可說')運行示例: 請輸入您的身高(cm)181 男神身高

三目運算(語法糖)

語法糖:糖衣語法 英國計算機科學(xué)家彼得·約翰·蘭達(dá),通常來說使用語法糖能夠增加程序的可讀性,從而減少程序代碼出錯的機會。

語法格式:值1 if 判斷語句 else 值2
(解釋:語句成立 執(zhí)行值1 不成立 執(zhí)行值2)

a = 4 if a > 5:print(True) else:print(False)# 三目運算符 print(True) if a>5 else print(False) b = True if a > 5 else False執(zhí)行結(jié)果: False False# 糖->節(jié)省代碼格式 # 裝飾器

循環(huán)語句

一般編程語言都有循環(huán)語句,為什么呢?
那就問一下自己,我們弄程序是為了干什么?
那肯定是為了方便我們工作,優(yōu)化我們的工作效率啊。而計算機和人類不同,計算機不怕苦也不怕累,也不需要休息,可以一直做。你要知道,計算機最擅長就是做重復(fù)的事情。所以這時候需要用到循環(huán)語句,循環(huán)語句允許我們執(zhí)行一個語句或語句組多次。

在 Python 提供了 for 循環(huán)和 while 循環(huán)。
這里又有一個問題了,如果我想讓他運行了一百次之后停止,那該怎么做呢?
這時候需要用到一些控制循環(huán)的語句:

循環(huán)控制語句描述
break終止循環(huán),并且跳出整個循環(huán)
continue終止當(dāng)前循環(huán),跳出該次循環(huán),執(zhí)行下一次循環(huán)
passpass 是空語句,是為了保持程序結(jié)構(gòu)的完整性

這些控制語句是為了讓我們告訴程序什么時候停止,什么時候不運行這次循環(huán)。

while循環(huán)

While 循環(huán)和 for 循環(huán)的作用是一樣的。

我們先來看看 While 循環(huán)語句的樣子。

# 計算1-100 的和。高斯求和 count = 1 sum1 = 0 while count<=100:sum1 = sum1+ countcount = count + 1 print(sum1)執(zhí)行結(jié)果: 5050

while 循環(huán)嵌套語法

while expression:while expression:statement(s)statement(s)

有時候,我們只想統(tǒng)計 1 到 100 之間的奇數(shù)和,那么也就是說當(dāng) count 是偶數(shù),也就是雙數(shù)的時候,我們需要跳出當(dāng)次的循環(huán),不想加,這時候可以用到 break,例如:

count = 1 sum = 0 while (count <= 100):if ( count % 2 == 0): # 雙數(shù)時跳過輸出count = count + 1continuesum = sum + countcount = count + 1 print(sum)執(zhí)行結(jié)果: 2500

for迭代循環(huán)

基本的語法格式:

for iterating_var in sequence:statements(s) #sequence:可迭代對象

那么我們根據(jù)這個基本語法格式,隨便寫個例子測試一下:

for i in 'hello':print(i)執(zhí)行結(jié)果: h e l l o

從打印結(jié)果來看,它就是把字符串 hello 一個一個字符的打印出來。

那如果我們把字符串換為字典 dict 呢?

dict1 = {'name':'李四','age':'18','from':'福建'} for i in dict1:# i 是keyprint(i+':',dict1[i])執(zhí)行結(jié)果: name: 李四 age: 18 from: 福建

for遍歷列表去雙元素實例:

#取列表值——遍歷列表 #雙元素 l = [(1, 2), (3, 4), (5, 6)] for x, y in l:print(x, y)l = [(1, 2), (3, 4), (5, 6)] for x, y in enumerate(l):print(x, y)執(zhí)行結(jié)果: 1 2 3 4 5 6 0 (1, 2) 1 (3, 4) 2 (5, 6)

for 循環(huán)嵌套語法

實例:

for num in range(10,15): # 迭代 10 到 20 之間的數(shù)字for i in range(2,num): # 根據(jù)因子迭代if num%i == 0: # 確定第一個因子j=num/i # 計算第二個因子print ('%d 是一個合數(shù)' % num)break # 跳出當(dāng)前循環(huán)else: # 循環(huán)的 else 部分print ('%d 是一個質(zhì)數(shù)' % num)執(zhí)行結(jié)果: 10 是一個合數(shù) 11 是一個質(zhì)數(shù) 12 是一個合數(shù) 13 是一個質(zhì)數(shù) 14 是一個合數(shù)

當(dāng)然,這里還用到了 for … else 語句。

其實 for 循環(huán)中的語句和普通的沒有區(qū)別,else 中的語句會在循環(huán)正常執(zhí)行完(即 for 通過 break終止循環(huán),就不會執(zhí)行else中的語句)的情況下執(zhí)行。

當(dāng)然有 for … else ,也會有 while … else 。他們的意思都是一樣的。

range()函數(shù)

or 循環(huán)還常常和 range() 函數(shù)搭配使用的。

如果不知道 range() 函數(shù) , 我們直接通過一段程序來理解。

for i in range(3):print(i)執(zhí)行結(jié)果: 0 1 2

使用 range(x) 函數(shù),就可以生成一個從 0 到 x-1 的整數(shù)序列。

如果是 range(a,b) 函數(shù),你可以生成了一個左閉右開的整數(shù)序列。

其實例子中的 range(3) 可以寫成 range(0,3), 結(jié)果是一樣的。

其實使用 range() 函數(shù),我們更多是為了把一段代碼重復(fù)運行 n 次。

這里提個問題,你仔細(xì)觀察 range() 函數(shù),上面說到的不管是 1 個參數(shù)的,還是 2 個參數(shù)的都有什么共同的特點?

不知道你們有沒有發(fā)現(xiàn),他都是每次遞增 1 的。

range(3) 就是 0 ,1,2 ,每次遞增 1 。

range(3,6) 就是 3 ,4 ,5 ,也是每次遞增 1 的。

那能不能每次不遞增 1 呢?

比如我想遞增 2 呢?

在程序的編寫中,肯定會遇到這樣的需求的。而 python 發(fā)展至今,range 函數(shù)肯定也會有這種功能。

所以 range 函數(shù)還有一個三個參數(shù)的。

比如 range(0,10,2) , 它的意思是:從 0 數(shù)到 10(不取 10 ),每次間隔為 2 。

for循環(huán)和while循環(huán)的區(qū)別

之前也提到過了,如果一種語法能表示一個功能,那沒必要弄兩種語法來表示。

既然都是循環(huán),for 循環(huán)和 while 循環(huán)肯定有他們的區(qū)別的。

那什么時候才使用 for 循環(huán)和 while 循環(huán)呢?

  • for 循環(huán)主要用在迭代可迭代對象的情況。
  • while 循環(huán)主要用在需要滿足一定條件為真,反復(fù)執(zhí)行的情況。 (死循環(huán)+break 退出等情況。)
  • 部分情況下,for 循環(huán)和 while 循環(huán)可以互換使用。

for和while可以互用實例:

for i in range(0, 10):print(i)i = 0 while i < 10:print(i)i = i + 1

案例

1、打印九九乘法表

# 打印九九乘法表 for i in range(1, 10):for j in range(1, i+1):# 打印語句中,大括號及其里面的字符 (稱作格式化字段) 將會被 .format() 中的參數(shù)替換,注意有個點的print('{}x{}={}\t'.format(i, j, i*j), end='') print() #這里有換行的意思

執(zhí)行結(jié)果:

1x1=1 2x1=2 2x2=4 3x1=3 3x2=6 3x3=9 4x1=4 4x2=8 4x3=12 4x4=16 5x1=5 5x2=10 5x3=15 5x4=20 5x5=25 6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81

2、判斷是否是閏年

# 判斷是否是閏年 year = int(input("請輸入一個年份: ")) if (year % 4) == 0 and (year % 100) != 0 or (year % 400) == 0:print('{0} 是閏年' .format(year)) else:print('{0} 不是閏年' .format(year))

執(zhí)行示例結(jié)果:

請輸入一個年份: 2020 2020 是閏年

總結(jié)

以上是生活随笔為你收集整理的python学习笔记(四)——流程控制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。