一、分支結(jié)構(gòu):
Python中的分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)是編寫程序時常用的控制結(jié)構(gòu)。在Python中,分支結(jié)構(gòu)通過if、elif和else關(guān)鍵字來實現(xiàn)條件判斷。在使用if語句時,程序會根據(jù)條件表達(dá)式的真假執(zhí)行相應(yīng)的代碼塊。
if condition1:
# 如果條件1為真,則執(zhí)行這里的代碼
elif condition2:
# 如果條件1為假,條件2為真,則執(zhí)行這里的代碼
else:
# 如果以上條件都不滿足,則執(zhí)行這里的代碼
1.if語句的使用
在Python中,要構(gòu)造分支結(jié)構(gòu)可以使用if
、elif
和else
關(guān)鍵字。所謂關(guān)鍵字就是有特殊含義的單詞,像if
和else
就是專門用于構(gòu)造分支結(jié)構(gòu)的關(guān)鍵字,很顯然你不能夠使用它作為變量名。下面的例子中演示了如何構(gòu)造一個分支結(jié)構(gòu)。
username = input('請輸入用戶名: ')
password = input('請輸入口令: ')
# 用戶名是admin且密碼是123456則身份驗證成功否則身份驗證失敗
if username == 'admin' and password == '123456':
print('身份驗證成功!')
else:
print('身份驗證失敗!')
1.1if 語句
if語句是最簡單的條件判斷語句,它可以控制程序的執(zhí)行流程。
if 判斷條件:
滿足條件時要做的事情1…
滿足條件時要做的事情2…
...(省略)...
滿足條件時要做的事情n…
1.2if-else語句
if 條件:
滿足條件時要做的事情1
滿足條件時要做的事情2
...(省略)...
滿足條件時要做的事情3
else:
不滿足條件時要做的事情1
不滿足條件時要做的事情2
...(省略)...
不滿足條件時要做的事情n
1.3if-elif語句
if 判斷條件1:
滿足條件1時要做的事情
elif 判斷條件2:
滿足條件2時要做的事情
elif 判斷條件3:
滿足條件3時要做的事情
- 當(dāng)滿足判斷條件1時,執(zhí)行滿足條件1時要做的事情,然后整個if結(jié)束;
- 如果不滿足判斷條件1,那么判斷是都滿足條件2,如果滿足判斷條件2,就執(zhí)行滿足條件2時要做的事情,然后整個if結(jié)束
- 當(dāng)不滿足判斷條件1和判斷條件2,如果滿足判斷條件3,則執(zhí)行滿足判斷條件3時要做的事情,然后整個if結(jié)束。
1.4if嵌套
日常案例:坐車流程if嵌套
指的是在if或者if-else語句里面包含if或者if-else。
if 條件1:
滿足條件1 做的事情1
滿足條件1 做的事情2
...(省略)...
if 條件2:
滿足條件2 做的事情1
滿足條件2 做的事情2
...(省略)...
2.if語句實際操作
2.1英制單位英寸與公制單位厘米互換。
value = float(input('請輸入長度: '))
unit = input('請輸入單位: ')
if unit == 'in' or unit == '英寸':
print('%f英寸 = %f厘米' % (value, value * 2.54))
elif unit == 'cm' or unit == '厘米':
print('%f厘米 = %f英寸' % (value, value / 2.54))
else:
print('請輸入有效的單位')
2.2百分制成績轉(zhuǎn)換為等級制成績。
要求:如果輸入的成績在90分以上(含90分)輸出A;80分-90分(不含90分)輸出B;70分-80分(不含80分)輸出C;60分-70分(不含70分)輸出D;60分以下輸出E。
score = float(input('請輸入成績: '))
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'E'
print('對應(yīng)的等級是:', grade)
3.3輸入三條邊長,如果能構(gòu)成三角形就計算周長和面積。
a = float(input('a = '))
b = float(input('b = '))
c = float(input('c = '))
if a + b > c and a + c > b and b + c > a:
peri = a + b + c
print(f'周長: {peri}')
half = peri / 2
area = (half * (half - a) * (half - b) * (half - c)) ** 0.5
print(f'面積: {area}')
else:
print('不能構(gòu)成三角形')
二、循環(huán)結(jié)構(gòu):
我們在寫程序的時候,一定會遇到需要重復(fù)執(zhí)行某條指令或某些指令的場景。如果要實現(xiàn)每隔1秒中在屏幕上打印一次“hello, world”并持續(xù)打印一個小時,我們肯定不能夠直接把print('hello, world')
這句代碼寫3600遍,這里我們需要構(gòu)造循環(huán)結(jié)構(gòu)。所謂循環(huán)結(jié)構(gòu),就是程序中控制某條或某些指令重復(fù)執(zhí)行的結(jié)構(gòu)。Python提供了兩種主要的循環(huán)結(jié)構(gòu),分別是for循環(huán)和while循環(huán)。
1.while循環(huán)
while循環(huán)語法格式:
while 條件表達(dá)式:
條件滿足,執(zhí)行循環(huán)語句
條件表達(dá)式永遠(yuǎn)為true,無限循環(huán)。
如果要構(gòu)造不知道具體循環(huán)次數(shù)的循環(huán)結(jié)構(gòu),我們推薦使用while
循環(huán)。while
循環(huán)通過一個能夠產(chǎn)生bool
值的表達(dá)式來控制循環(huán),當(dāng)表達(dá)式的值為True
時則繼續(xù)循環(huán),當(dāng)表達(dá)式的值為False
時則結(jié)束循環(huán)。
下面我們通過一個“猜數(shù)字”的小游戲來看看如何使用while
循環(huán)。猜數(shù)字游戲的規(guī)則是:計算機(jī)出一個1
到100
之間的隨機(jī)數(shù),玩家輸入自己猜的數(shù)字,計算機(jī)給出對應(yīng)的提示信息(大一點、小一點或猜對了),如果玩家猜中了數(shù)字,計算機(jī)提示用戶一共猜了多少次,游戲結(jié)束,否則游戲繼續(xù)。
import random
# 產(chǎn)生一個1-100范圍的隨機(jī)數(shù)
answer = random.randint(1, 100)
counter = 0
while True:
counter += 1
number = int(input('請輸入: '))
if number < answer:
print('大一點')
elif number > answer:
print('小一點')
else:
print('恭喜你猜對了!')
break
# 當(dāng)退出while循環(huán)的時候顯示用戶一共猜了多少次
print(f'你總共猜了{counter}次')
2.for循環(huán)
Python中的for循環(huán)可以遍歷任何序列的項目:
語法格式:
for 變量 in 序列:
循環(huán)語句
例如:
for i in [0,1,2]:
print(i)
考慮到我們使用的數(shù)值范圍經(jīng)常變化,Python提供了一個內(nèi)置range()函數(shù)
,它可以生成一個數(shù)字序列。
語法格式:
for i in range(start,end):
執(zhí)行循環(huán)語句
- 程序在執(zhí)行for循環(huán)時:
- 循環(huán)計時器變量i被設(shè)置為start;
- 執(zhí)行循環(huán)語句;
- i 遞增
- 每設(shè)置一個新值都會執(zhí)行一次循環(huán)
- 當(dāng)i等于end時,循環(huán)結(jié)束。
3.while嵌套
while嵌套指的是while循環(huán)里面還包含while循環(huán)。
while 條件1:
條件1滿足時,做的事情1
條件1滿足時,做的事情2
條件1滿足時,做的事情3
...(省略)...
while 條件2:
條件2滿足時,做的事情1
條件2滿足時,做的事情2
條件2滿足時,做的事情3
...(省略)...
三、Python的其他語句
1.break語句
break語句用于結(jié)束整個循環(huán)
。 輪詢列表變量ls,當(dāng)輪詢到"深"這個字時候,直接結(jié)束整個for循環(huán),從而只打印"深"之前的"桃花潭水":
ls=["桃","花","潭","水","深","千","尺"]
s=""
for i in ls:
if i == "深":
break
s = s + i
print(s)
我們對比一下兩個程序:
第一個:
for i in range(5):
print("-------")
print (i)
第二個:
i=1
for i in range(5):
i+=1
print("-------")
if i==3:
break
print(i)
第一個是輸出五次-------
和數(shù)字,而第二次是循環(huán)前三次,第三次時i=3,觸發(fā)break語句,結(jié)束遍歷。
2.continue語句
continue的作用是用來結(jié)束本次循環(huán),緊接著執(zhí)行下一次的循環(huán)。for循環(huán)遍歷字符串s,當(dāng)遍歷到字符等于"l"的時候,continue關(guān)鍵字僅僅只結(jié)束當(dāng)前這一輪循環(huán),而不會結(jié)束全部循環(huán),所以當(dāng)?shù)谌谒拇伪闅v到"l"以后,for循環(huán)會繼續(xù)遍歷列表下一個字符,即"o"。所以最終納入n=n+1統(tǒng)計的字符是"heoword",一共7
個。
s="helloworld"
n=0
for i in s:
if i == "l":
continue
n = n + 1
print(n)
對比一下這兩個語句有啥不同:
第一個:
for i in range(5):
print("-------")
print i
第二個:
i=1
for i in range(5):
i+=1
print("-------")
if i==3:
continue
print(i)
第一個就是正常輸出五次-------
和數(shù)字,而第二次第三次遍歷因為受到continue語句影響,第三次循環(huán)中間中斷,不需要打印數(shù)字,直接進(jìn)行第四次循環(huán)。
3.pass語句
pass是空語句,它是為了保持程序結(jié)構(gòu)完整性。
pass語句不做任何事情,用作占位
。
for letter in 'Runoob':
if letter == 'o':
pass
print ('執(zhí)行 pass 塊')
print ('當(dāng)前字母 :', letter)
print ("Good bye!")
4.else語句
else語句可以和循環(huán)語句結(jié)合使用,并且else語句旨在循環(huán)完成后執(zhí)行。
四、嵌套的循環(huán)結(jié)構(gòu)
和分支結(jié)構(gòu)一樣,循環(huán)結(jié)構(gòu)也是可以嵌套的,也就是說在循環(huán)中還可以構(gòu)造循環(huán)結(jié)構(gòu)。下面的例子演示了如何通過嵌套的循環(huán)來輸出一個乘法口訣表(九九表)。
for i in range(1, 10):
for j in range(1, i + 1):
print(f'{i}*{j}={i * j}', end='\t')
print()
很顯然,在上面的代碼中,外層循環(huán)用來控制一共會產(chǎn)生9
行的輸出,而內(nèi)層循環(huán)用來控制每一行會輸出多少列。內(nèi)層循環(huán)中的輸出就是九九表一行中的所有列,所以在內(nèi)層循環(huán)完成時,有一個print()
來實現(xiàn)換行輸出的效果。
五、循環(huán)的例子
1.輸入一個正整數(shù)判斷它是不是素數(shù)。
提示:素數(shù)指的是只能被1和自身整除的大于1的整數(shù)。
num = int(input('請輸入一個正整數(shù): '))
end = int(num ** 0.5)
is_prime = True
for x in range(2, end + 1):
if num % x == 0:
is_prime = False
break
if is_prime and num != 1:
print(f'{num}是素數(shù)')
else:
print(f'{num}不是素數(shù)')
2.輸入兩個正整數(shù),計算它們的最大公約數(shù)和最小公倍數(shù)。
提示:兩個數(shù)的最大公約數(shù)是兩個數(shù)的公共因子中最大的那個數(shù);兩個數(shù)的最小公倍數(shù)則是能夠同時被兩個數(shù)整除的最小的那個數(shù)。
x = int(input('x = '))
y = int(input('y = '))
for factor in range(x, 0, -1):
if x % factor == 0 and y % factor == 0:
print(f'{x}和{y}的最大公約數(shù)是{factor}')
print(f'{x}和{y}的最小公倍數(shù)是{x * y // factor}')
break
如果知道循環(huán)的次數(shù),我們通常使用for
循環(huán);如果循環(huán)次數(shù)不能確定,可以用while
循環(huán)。在循環(huán)中還可以使用break
來提前結(jié)束循環(huán)。
通過合理地運用分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),可以使程序按照不同條件做出相應(yīng)的處理,并且重復(fù)執(zhí)行特定的代碼塊,從而實現(xiàn)更加復(fù)雜和靈活的邏輯控制。這些控制結(jié)構(gòu)是編寫Python程序時的基礎(chǔ),掌握好它們能夠幫助開發(fā)者編寫出更加高效、功能完善的程序。
文末免費送書:深度學(xué)習(xí)經(jīng)典案例解析(基于MATLAB) 人工智能 MATLAB
《深度學(xué)習(xí)經(jīng)典案例解析(基于MATLAB)》分為“基礎(chǔ)篇”“應(yīng)用篇”和“實戰(zhàn)篇”。通過17個案例循序漸進(jìn)地介紹了深度學(xué)習(xí)網(wǎng)絡(luò)的構(gòu)建、訓(xùn)練、應(yīng)用,以及如何基于MATLAB快速生成可執(zhí)行的C、C++代碼并在硬件上部署實現(xiàn),內(nèi)容講解由淺及深、層層遞進(jìn)。
《深度學(xué)習(xí)經(jīng)典案例解析(基于MATLAB)》所講解的案例均配有代碼實現(xiàn),并對代碼進(jìn)行了詳細(xì)注解,讀者可通過閱讀代碼對《深度學(xué)習(xí)經(jīng)典案例解析(基于MATLAB)》講解的內(nèi)容進(jìn)行更加深入的了解。
《深度學(xué)習(xí)經(jīng)典案例解析(基于MATLAB)》適合對人工智能、深度學(xué)習(xí)技術(shù)感興趣的工程技術(shù)人員閱讀,也適合人工智能、計算機(jī)科學(xué)技術(shù)相關(guān)專業(yè)的本科生、研究生學(xué)習(xí)參考。
抽獎方式
抽獎方式: 評論區(qū)隨機(jī)抽取9位小伙伴免費送出!
參與方式: 關(guān)注博主、點贊、收藏、評論區(qū)評論“人生苦短,我用Python!”(切記要點贊+收藏,否則抽獎無效,每個人最多評論三次?。?br>活動截止時間: 2024-3-25 10:00:00
京東: 購買鏈接傳送門
??????名單公布方式: 下期活動開始將在評論區(qū)和私信一并公布,中獎?wù)哒埲靸?nèi)提供信息??????文章來源:http://www.zghlxwxcb.cn/news/detail-841452.html
當(dāng)前,人工智能技術(shù)飛速發(fā)展,對我們的生活產(chǎn)生了深遠(yuǎn)的影響:“刷臉支付”讓交易變得快捷,“語音交互”讓生活變得方便,“智能推送”讓購物效率更高。在抗擊新冠肺炎疫情的過程中,人工智能技術(shù)也大顯身手,“智能胸片檢測”“智能口罩檢測”等技術(shù)得到了廣泛應(yīng)用。
深度學(xué)習(xí)是人工智能技術(shù)的重要組成部分,關(guān)于深度學(xué)習(xí)的新理論、新方法、新技術(shù)層出不窮,很多讀者加入到了深度學(xué)習(xí)技術(shù)的學(xué)習(xí)和科研的大軍中。如何更全面、高效地掌握深度學(xué)習(xí)技術(shù),是筆者一直關(guān)注和思考的問題。“實踐出真知”,要想真正掌握深度學(xué)習(xí)技術(shù),必須把它用起來,即“學(xué)以致用”。為此,筆者結(jié)合自身的教學(xué)和科研經(jīng)驗,對深度學(xué)習(xí)技術(shù)的理論、方法、應(yīng)用進(jìn)行了系統(tǒng)的總結(jié)與梳理,以案例的形式呈現(xiàn)給讀者。與其他同類書籍相比,本書的特點在于:
1)系統(tǒng)全面。本書分為“基礎(chǔ)篇”“應(yīng)用篇”和“實戰(zhàn)篇”。通過17個案例循序漸進(jìn)地介紹了深度學(xué)習(xí)網(wǎng)絡(luò)的構(gòu)建、訓(xùn)練、應(yīng)用,以及如何基于MATLAB快速地生成可執(zhí)行的C、C++代碼并在硬件上部署實現(xiàn),內(nèi)容講解由淺及深、層層遞進(jìn),符合讀者的認(rèn)知心理。
2)案例豐富。本書所講解的案例中,既有交通標(biāo)識檢測、語音識別、車輛檢測的深度學(xué)習(xí)經(jīng)典案例,又有新冠肺炎胸片檢測等多個貼近實際的案例,還講解了基于MATLAB如何快速地生成可執(zhí)行的C、C++代碼并在樹莓派上部署實現(xiàn),實用性更強。本書所講解的案例均配有代碼實現(xiàn),并對代碼進(jìn)行了詳細(xì)的注解,讀者可通過閱讀代碼,對本書講解的內(nèi)容進(jìn)行更加深入的了解。
3)生動形象。寫一本有溫度的書一直是筆者所追求的目標(biāo)。在本書的寫作過程中,筆者力求以生動形象的語言來解釋抽象的概念,如將“例題、作業(yè)、考試”與“訓(xùn)練集、驗證集、測試集”進(jìn)行類比,將“針灸”與“非激活函數(shù)”進(jìn)行類比,使語言更通俗、形象、易懂。
本書適合以下讀者閱讀學(xué)習(xí)。
對人工智能、深度學(xué)習(xí)技術(shù)感興趣的工程技術(shù)人員。
人工智能、計算機(jī)科學(xué)技術(shù)相關(guān)專業(yè)的本科生、研究生。
回首本書的編寫歷程,筆者感受頗多,感謝為本書付出辛勤勞動的同仁,尤其是何灝、朱鶴、梁冠豪、馬燕琳、劉瑩等人。感謝家人的支持!
文章來源地址http://www.zghlxwxcb.cn/news/detail-841452.html
到了這里,關(guān)于Python從0到100(五):Python分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!