一、分支
1. if 語句
- a.語法:
if 條件語句:
代碼段 - b.說明:
if - 關鍵字
條件語句 - 任何有結果的表達式(不管是什么類型)
代碼段和if保持一個縮進的一條或者多條語句 - c.執(zhí)行過程:
先判斷條件語句的結果是否是True,如果是則執(zhí)行,反之則不執(zhí)行
注意:如果條件語句的結果不是布爾,會將結果轉化為布爾再判斷
賦值語句不能寫在if的后面
# 練習:隨機產(chǎn)生一個年齡值,如果大于18就打印 成年
import random # 導入生成隨機數(shù)的模塊
age = random.randint(0, 100) # 隨機生成0~100中的一個數(shù)(不包括100)
if age >= 18:
print("成年")
print("你的年齡是%d" % age)
2. if- else 語句
a.語法:
if 條件語句:
代碼段1
else:
代碼段2b.執(zhí)行過程:
先判斷條件語句是否為True,為True就執(zhí)行代碼段1:否則執(zhí)行代碼段2
# num = input("請輸入")
num = 12
# try,except,finally為異常捕獲
try: # 嘗試執(zhí)行的代碼
if num & 1 == 0:
print("我是偶數(shù)%d" % num)
elif num & 1 == 1:
print("你是奇數(shù)%d" % num)
except: # 發(fā)生異常執(zhí)行的代碼
print("非奇非偶吧你{0}".format(num))
finally: # 無論發(fā)不發(fā)生異常都會執(zhí)行的代碼
print("Hello python")
3. if - elif - else 語句
語法:
if 條件語句1:
代碼段1
elif 條件語句2:
代碼段2
elif 條件語句3:
代碼段3
...
else:
代碼段n執(zhí)行過程:
先判斷條件語句1是否為True,為True就執(zhí)行代碼段1;
否則,就判斷條件語句2是否為True,為True就執(zhí)行代碼段2
否則,就判斷條件語句3是否為True,為True就執(zhí)行代碼段3
...
如果全部條件語句都不執(zhí)行就執(zhí)行 else
注意:1.后面的條件判斷前提是前面的條件不成立
2.elif根據(jù)條件可以有多個,else也可以省略
import random
score = random.randint(40, 100)
print("你的考試成績:%d" % score)
print("你的綜合測評:", end="")
if score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 70:
print("C")
elif score >= 60:
print("D")
else:
print("留級")
4. if 的嵌套
- 可以在if ,else后面的代碼段中,都可以再寫其他的if語句
number = random.randint(0, 100)
if number & 1 == 0:
print("偶數(shù):%d" % number)
if number % 4 == 0:
print("4的倍數(shù):%d" % number)
else:
print("你是奇數(shù):%d" % number)
# 練習:輸入一個字符串,判斷是否第一個字符是字母,如果是 打印“一字母開頭”
# 如果這個字母是大寫的,再打印“大寫字母”
str1 = input("請輸入")
if str1[0].isalpha():
print("字母開頭")
if str1[0].isupper():
print("大寫字母")
else:
print(str1)
# 方法2
if "a" <= str1[0] <= "z" or "A" <= str1[0] <= "Z":
print("以字母開")
if "A" <= str1[0] <= "Z":
print("大寫字母")
else:
print(str1
二、for 循環(huán)
a.語法:
for 變量 in 序列:
循環(huán)體b.for - 關鍵字
變量 - 變量名,(滿足變量命名規(guī)范)
in - 關鍵字
序列 - 可以是字符串、列表、元組、字典、集合、迭代器、range
循環(huán)體 - 和for保持一個縮進的一條或者多條語句(需要重復執(zhí)行的代碼)c.執(zhí)行過程:
讓變量取序列中取值,一個一個的取,取完為止;每取一個值,依次執(zhí)行循環(huán)體
for循環(huán)中,序列中值的個數(shù),確定了循環(huán)的次數(shù)d.如果for后面取到的值,在循環(huán)體里面不使用,那么這個變量命令的時候,用一個_來命名
for i in "abc":
print(i)
range說明
- range(n) - 產(chǎn)生數(shù)字序列,序列中的內容是0~ n-1(結果是序列)
range(m,n) - 產(chǎn)生數(shù)字序列,序列中的內容是m~ n-1
range(m,n,step) - 產(chǎn)生數(shù)字序列,從m開始,每次增加step,直到n-1為止
range一般用在:
a.需要產(chǎn)生指定范圍的數(shù)字序列
b.單純的控制for循環(huán)的次數(shù)
for i in range(5):
print(i)
print("~"*20)
for i in range(10, 15):
print(i)
for i in range(20, 30, 2):
print(i)
練習:獲取一個字符串中數(shù)字的個數(shù),并在控制臺輸出
str1 = "sd454df5sd5f45dfd4f5dfdg"
count = 0
for char in str1:
# print(i)
if "0" <= char <= "9":
count += 1
print("數(shù)字個數(shù):%d" % count)
三、while 循環(huán)
a.語法:
while 條件語句:
循環(huán)體b. 說明:
while - 關鍵字
條件語句 - 有結果的表達式(除了賦值語句,一般的表達式都行)c.執(zhí)行過程:
先判斷條件語句是否為True,為True就執(zhí)行循環(huán)體;
執(zhí)行完循環(huán)體再判斷條件語句是否為True,為True就執(zhí)行循環(huán)體;
執(zhí)行完循環(huán)體再判斷條件語句是否為True,為True就執(zhí)行循環(huán)體;
...
直到判斷條件結果為False,整個循環(huán)結束
num = 1
result = 1
while num <= 10:
result *= num
num += 1
print(result)
str1 = "abc123"
num = 0
while num < len(str1):
print(str1[num])
num += 1
for循環(huán)和while循環(huán)的選擇
使用for循環(huán):
a. 獲取序列中的元素(值)
b. 循環(huán)次數(shù)確定while循環(huán):
a. 死循環(huán)
b. 循環(huán)次數(shù)不確定
# 不確定循環(huán)的次數(shù)
# 方法一
value = input('請輸入:')
while value != '0':
value = input('請輸入:')
print('結束!')
# 方法二
while True:
index = input("請輸入:")
if index == "0":
print("~~~~~~~~~")
break
四、continue、break和else
- continue 是一個關鍵字,只能寫在循環(huán)中
功能:當循環(huán)執(zhí)行過程中遇到continue,會結束當次循環(huán),直接今日下次循環(huán)的判斷
(直接進入下次循環(huán)的判斷:for循環(huán)就是用比那輛取下一個值
while就是直接判斷條件語句是否為True
for i in range(0, 10):
if i & 1 == 0:
continue
print("我是奇數(shù):%d" % i)
- break是一個關鍵字,只能寫在循環(huán)體中
功能:當循環(huán)過程中遇到可break,整個循環(huán)直接結束
for x in range(10):
print(x)
break
else
- a.語法:
while 條件語句:
循環(huán)
else:
代碼段
for 變量 in 序列:
循環(huán)體
else:
代碼段
- b.執(zhí)行過程:
else結構不會影響原循環(huán)的執(zhí)行過程。當循環(huán)自然死亡的時候,就會執(zhí)行else后邊的代碼段。
循環(huán)因為遇到break而結束的時候不會執(zhí)行else后邊的代碼段
for x in range(10):
print(x)
if x == 3:
break
else:
print('for循環(huán)結束了')