Python條件語句與循環(huán)語句
1、條件語句
所謂的條件語句,就是通過指定的表達式的運行結果來判斷當前是執(zhí)行還是跳過某些指定的語句塊。簡答的說就是如果指定的表達式的運算結果為true
,則執(zhí)行指定的語句塊;如果運算結果為false
則跳過某個語句塊或者執(zhí)行其他的語句塊。
如下代碼如下:
# 通過input鍵入用戶名和密碼 user = input("請輸入用戶名:") passwd = input("請輸入密碼:") # 將默認的用戶名設置為admin 密碼123456 user_d = "admin" passwd_d = "123456" # 通過if,elif else梳理流程 if user == user_d and passwd == passwd_d: print("登陸成功") elif user != user_d: print("用戶名不存在") else: print("密碼錯誤")
1.1 if語句
在Python
中,要構造分支結構可以使用if、elif
和else
關鍵字。所謂關鍵字就是有特殊含義的單詞,像if和else就是專門用于構造分支結構的關鍵字,很顯然你不能夠使用它作為變量名(事實上,用作其他的標識符也是不可以)。
我們上面的代碼中,解析如下:
- 每個條件后面要使用冒號 : ,表示接下來是滿足條件后要執(zhí)行的語句塊。
- 一個登陸系統(tǒng)存在3中情況,1. 用戶名和密碼都吻合,登陸成功;2. 用戶名不存在,登陸失?。?. 密碼錯誤,登陸失敗
- 如果用戶名和密碼都吻合,打印登陸成功
- 用戶名不吻合打印用戶名不存在
- 前兩種都排除了,就剩密碼錯誤這一個條件了
值得注意的是Python中是使用縮進來表示代碼結構的,也就是說想要在if語句中執(zhí)行某條語句,只要賦予它相同的縮進即可??s進可以使用任意數(shù)量的空格,但通常使用4個空格
2、嵌套的分支語句
示例代碼如下如下:
user_key = int(input("輸入1進入登陸系統(tǒng),輸入0退出系統(tǒng)")) # 通過if,elif else梳理流程 if user_key == 1: # 只要用戶輸入1才能進入登陸系統(tǒng)界面 # 通過input鍵入用戶名和密碼 user = input("請輸入用戶名:") passwd = input("請輸入密碼:") # 將默認的用戶名設置為admin 密碼123456 user_d = "admin" passwd_d = "123456" if user == user_d and passwd == passwd_d: print("登陸成功") elif user != user_d: print("用戶名不存在") else: print("密碼錯誤") elif user_key == 0: print("已退出") else: print("輸入錯誤")
因為此時外層多了一層結構,所以就需要在if的內部構造出一個新的分支結構,同理elif
和else
中也可以再構造新的分支,稱之為嵌套的分支結構
但是如果如果可以不是用嵌套結構就盡量不使用,嵌套結構影響代碼的可讀性
3、案例練習
英制單位英寸與公制單位厘米互換(1英寸(in)=2.54厘米(cm))
value = float(input("請輸入數(shù)值:")) unit = input("請輸入單位(英寸或in和厘米或cm):") if unit == "in" or unit == "英寸": print("%.2f英寸=%.2f厘米" % (value, value * 2.54)) elif unit == "cm" or unit == "厘米": print("%.2f厘米=%.2f英寸" % (value, value / 2.54)) else: print("單位錯誤")
百分制成績轉換為等級制成績
要求:如果輸入的成績在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('對應的等級是:', grade)
4、循環(huán)語句
循環(huán)語句就是對某些語句的重復執(zhí)行,這個重復執(zhí)行是通過指定表達式來控制的。簡單來說就是指定表達式轉換為boolean
類型的值后的結果為true
,哪些語句就要一直重復執(zhí)行,直到指定表達式轉換為boolean
類型的值后的結果為false
時才會停止執(zhí)行。
4.1 for-in循環(huán)
for 循環(huán)用于迭代序列(即列表,元組,字典,集合或字符串)。語法結構如下所示:
for <variable> in <sequence>: <statements>
4.2 range()函數(shù)
生成一組數(shù)列,range()的幾種用法:
range(101):
可以用來產(chǎn)生0到100范圍的整數(shù),需要注意的是取不到101。range(1, 101):
可以用來產(chǎn)生1到100范圍的整數(shù),相當于前面是閉區(qū)間后面是開區(qū)間。range(1, 101, 2):
可以用來產(chǎn)生1到100的奇數(shù),其中2是步長,即每次數(shù)值遞增的值。range(100, 0, -2):
可以用來產(chǎn)生100到1的偶數(shù),其中-2是步長,即每次數(shù)字遞減的值。
4.3 實例1:計算1-100的和
# 用來存儲每次計算的結果 sum = 0 for i in range(101): sum += i # 這里等同于sum=sum+1 print(sum)
4.4 實例2:計算1-100偶數(shù)的和
# 用來存儲每次計算的結果 sum = 0 for i in range(0, 101, 2): sum += i print(sum)
從0開始,每次步長為2,就跳過了單數(shù)
4.5 實例3:計算1-100奇數(shù)的和
可以從1開始,步長為2,這樣就跳過了偶數(shù),也可以通過嵌套分支結構來實現(xiàn),例如
# 用來存儲每次計算的結果 sum = 0 for i in range(101): if i % 2 == 1: # 因為單數(shù)除2余1,所以只有滿足這個條件,才可以進行累加計算 sum += i print(sum)
5、while循環(huán)
while
循環(huán)通過一個能夠產(chǎn)生或轉換出bool
值的表達式來控制循環(huán),表達式的值為True
則繼續(xù)循環(huán);表達式的值為False
則結束循環(huán)。
語法結構如下所示:
while 判斷條件:
執(zhí)行語句……
通過while
語句來實現(xiàn)1-100
累加的結果
# 用來存儲每次計算的結果 sum = 0 # 設置開始的值 i = 1 # 設置允許循環(huán)的最大值 n = 100 while i <= n: sum += i i += 1 print(sum)
6、break 和 continue 語句
break
語句可以跳出 for
和 while
的循環(huán)體。如果你從 for
或 while
循環(huán)中終止。
continue
語句被用來告訴 Python
跳過當前循環(huán)塊中的剩余語句,然后繼續(xù)進行下一輪循環(huán)。
代碼執(zhí)行流程:
6.1 實例:猜字游戲
規(guī)則:計算機出一個1到100之間的隨機數(shù),玩家輸入自己猜的數(shù)字,計算機給出對應的提示信息(大一點、小一點或猜對了),如果玩家猜中了數(shù)字,計算機提示用戶一共猜了多少次,游戲結束,否則游戲繼續(xù);如果次數(shù)大于5次,則退出循環(huán)。
import random # 導入隨機數(shù)模塊 answer = random.randint(1, 100) # 生成1-100的隨機數(shù) counter = 0 # 將次數(shù)初始為0 while True: number = int(input('請輸入: ')) if number < answer: print('大一點') counter += 1 elif number > answer: print('小一點') counter += 1 else: print('恭喜你猜對了!') break # 如果猜對了 就跳出循環(huán) if counter >= 5: # 次數(shù)大于5則退出這個系統(tǒng) print('你的智商余額明顯不足') break print('你總共猜了%d次' % counter)
7、循環(huán)嵌套
和分支結構一樣,循環(huán)結構也是可以嵌套的,也就是說在循環(huán)中還可以構造循環(huán)結構
7.1 實例1:通過for...in語句打印99乘法表
for x in range(1, 10): for y in range(1, x+1): print("%d * %d = %d" % (y, x, x*y), end=" ") print()
7.2 實例2:通過while語句打印99乘法表
x = 1 y = 1 while x <= 9: y = 1 # 每執(zhí)行完一次子循環(huán),y重置為1 while y <= x: print("%d * %d = %d" % (y, x, x*y), end=" ") y += 1 x += 1 print() # 每一句結束一個換行
到此這篇關于Python條件語句與循環(huán)語句的文章就介紹到這了,更多相關Python條件語句 循環(huán)語句內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python定時檢查啟動某個exe程序適合檢測exe是否掛了
定時檢查啟動某個exe程序這種情況下適合檢測某個exe程序是否掛了,感興趣的朋友可以了解下,希望本文對你有所幫助2013-01-01python selenium 執(zhí)行完畢關閉chromedriver進程示例
今天小編就為大家分享一篇python selenium 執(zhí)行完畢關閉chromedriver進程示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11使用 Python 讀取電子表格中的數(shù)據(jù)實例詳解
這篇文章主要介紹了使用 Python 讀取電子表格中的數(shù)據(jù),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04python中如何使用xml.dom.minidom模塊讀取解析xml文件
xml.dom.minidom模塊應該是內置模塊不用下載安裝,本文給大家介紹python中如何使用xml.dom.minidom模塊讀取解析xml文件,感興趣的朋友一起看看吧2023-10-10Python實現(xiàn)將數(shù)據(jù)框數(shù)據(jù)寫入mongodb及mysql數(shù)據(jù)庫的方法
這篇文章主要介紹了Python實現(xiàn)將數(shù)據(jù)框數(shù)據(jù)寫入mongodb及mysql數(shù)據(jù)庫的方法,結合具體實例形式分析了Python針對mongodb及mysql數(shù)據(jù)庫的連接、寫入等操作實現(xiàn)技巧,需要的朋友可以參考下2018-04-04matlab和Excel的數(shù)據(jù)交互操作(非xlsread和xlswrite)
在使用MATLAB時,可能會遇到很多表格數(shù)據(jù)的處理,有時MATLAB也需要利用現(xiàn)存的表格數(shù)據(jù)實現(xiàn)操作目的,下面這篇文章主要給大家介紹了關于matlab和Excel的交互操作的相關資料,非xlsread和xlswrite,需要的朋友可以參考下2021-08-08flask框架使用orm連接數(shù)據(jù)庫的方法示例
這篇文章主要介紹了flask框架使用orm連接數(shù)據(jù)庫的方法,結合實例形式分析了flask框架使用flask_sqlalchemy包進行mysql數(shù)據(jù)庫連接操作的具體步驟與相關實現(xiàn)技巧,需要的朋友可以參考下2018-07-07