分支
elif?相當(dāng)于C語言的else if
條件表達(dá)式
- 一元操作符
- 負(fù)數(shù):-3
- 二元操作符
- 兩個(gè)變量:a = b
- 三元操作符
- 三個(gè)變量:
small = x if x < y else y #相當(dāng)于
if x < y: samll = x else: small = y
- 三個(gè)變量:
斷言
assert這個(gè)關(guān)鍵字稱為“斷言”堂鲤,當(dāng)這個(gè)關(guān)鍵字后邊的條件為假的時(shí)候,程序自動崩潰并拋出AssertionError的異常媒峡。
>>> assert 3 > 4
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
assert 3 > 4
AssertionError
一般來說我們可以用它在程序中置入檢查點(diǎn)瘟栖,確保程序中的某個(gè)條件一定為真才能讓程序正常工作的
for循環(huán)
語法:
for 目標(biāo) in 表達(dá)式:
?????循環(huán)體
a = 'TFBOYS'
for i in a:
print(i,end=' ')
#輸出
T F B O Y S
len()計(jì)算字符長度
member = ['王俊凱','王源'谅阿,'易烊千璽'半哟,'柏力源']
for each in member:
print(each,len(each))
#輸出
王俊凱 3
王源 2
易烊千璽 4
柏力源 3
range()
語法:
range( [start,] stop[, step=1] )
這個(gè)BIF有三個(gè)參數(shù),其中用括號括起來的兩個(gè)表示這兩個(gè)參數(shù)是可選的签餐。
step=1表示第三個(gè)參數(shù)默認(rèn)為1.
range這個(gè)BIF的作用是生成一個(gè)從start參數(shù)值開始到stop參數(shù)值結(jié)束的數(shù)字序列寓涨。
默認(rèn)從0開始
for i in range(10):
print(i,end=' ')
#輸出
0 1 2 3 4 5 6 7 8 9
默認(rèn)一次增加1
for i in range(3,10):
print(i,end=' ')
#輸出
3 4 5 6 7 8 9
range(開始數(shù)字氯檐,結(jié)束-1戒良,增加數(shù))
for i in range(3,10冠摄,2):
print(i,end=' ')
#輸出
3 5 7 9
跳出循環(huán)
break
終止當(dāng)前循環(huán)糯崎,跳出循環(huán)體
for i in range(5):
if i%2 !=0:
print(i,end=' ')
break
i +=2
print(i,end=' ')
#輸出
2 1
continue
終止本輪循環(huán)几缭,開啟下輪循環(huán),并進(jìn)行重新判斷
for i in range(5):
if i%2 !=0:
print(i,end=' ')
continue
i +=2
print(i,end=' ')
#輸出
2 1 4 3 6
課后習(xí)題
2. 假設(shè)有 x = 1沃呢,y = 2年栓,z = 3,請問如何快速將三個(gè)變量的值互相交換薄霜?
x, y, z = z, y, x
4. 你聽說過成員資格運(yùn)算符嗎某抓?
Python 有一個(gè)成員資格運(yùn)算符:in,用于檢查一個(gè)值是否在序列中黄锤,如果在序列中返回 True搪缨,否則返回 False。
>>> name = '小甲魚'
>>> '魚' in name
True
>>> '肥魚' in name
False
1. 下面的循環(huán)會打印多少次"I Love FishC"鸵熟?
for i in 5:
print('I Love FishC')
會報(bào)錯(cuò)副编,上節(jié)課的課后習(xí)題我們提到了 in 是“成員資格運(yùn)算符”,而不是像 C 語言那樣去使用 for 語法流强。Python 的 for 更像腳本語言的 foreach痹届。
1. 三元操作符
small = x if (x < y and x < z) else (y if y < z else z)
x, y, z = 6, 5, 4
if x < y:
small = x
if z < small:
small = z
elif y < z:
small = y
else:
small = z
0. 設(shè)計(jì)一個(gè)驗(yàn)證用戶密碼程序,用戶只有三次機(jī)會輸入錯(cuò)誤打月,不過如果用戶輸入的內(nèi)容中包含"星號"則不計(jì)算在內(nèi)队腐。
count = 3
password = 'FishC.com'
while count:
passwd = input('請輸入密碼:')
if passwd == password:
print('密碼正確,進(jìn)入程序......')
break
elif '*' in passwd:
print('密碼中不能含有"*"號奏篙!您還有', count, '次機(jī)會柴淘!', end=' ')
continue
else:
print('密碼輸入錯(cuò)誤!您還有', count-1, '次機(jī)會秘通!', end=' ')
count -= 1
1. 編寫一個(gè)程序为严,求 100~999 之間的所有水仙花數(shù)。
for i in range(100, 1000):
sum = 0
temp = i
while temp:
sum = sum + (temp%10) ** 3
temp //= 10 # 注意這里要使用地板除哦~
if sum == i:
print(i)
2. 有紅肺稀、黃第股、藍(lán)三種顏色的求,其中紅球 3 個(gè)话原,黃球 3 個(gè)夕吻,綠球 6 個(gè)。先將這 12 個(gè)球混合放在一個(gè)盒子中繁仁,從中任意摸出 8 個(gè)球涉馅,編程計(jì)算摸出球的各種顏色搭配。
print('red\tyellow\tgreen')
for red in range(0, 4):
for yellow in range(0, 4):
for green in range(2, 7):
if red + yellow + green == 8:
# 注意黄虱,下邊不是字符串拼接控漠,因此不用“+”哦~
print(red, '\t', yellow, '\t', green)
注釋:range(2, 7) 是產(chǎn)生 [2, 3, 4, 5, 6] 這 5 個(gè)數(shù),綠球不能是 1 個(gè),因?yàn)槿绻G球是 1 個(gè)的話盐捷,紅球 + 黃球需要有 7 個(gè)才能符合題意偶翅,而紅球和黃球每種只有 3 個(gè),因此是 range(2, 7)