03.Python基础--控制流语句-顺序结构-判断结构-循环语句
文章目錄
- 1.控制流語句
- 1.1 if條件判斷
- 1.1.1 布爾類型和其他數(shù)據(jù)類型之間的轉(zhuǎn)換關(guān)系
- 1.1.2 if 嵌套
- 1.1.3 列表
- 1.2 循環(huán)語句
- 1.2.1 for循環(huán)
- 1.2.2 whlie循環(huán)
- 1.2.3打印-1到-20中所有3的倍數(shù)
- 1.2.4 break退出本"層"循環(huán)
- 1.2.5 continue結(jié)束本"次"循環(huán)
- 1.2.6 練習(xí) 尋找水仙花數(shù)
1.控制流語句
順序語句
- 從左到右, 從上到下
1.1 if條件判斷
計(jì)算機(jī)之所以能做很多自動(dòng)化的任務(wù),因?yàn)樗梢宰约鹤鰲l件判斷。
比如,輸入用戶年齡,根據(jù)年齡打印不同的內(nèi)容,在Python程序中,用if語句實(shí)現(xiàn):
方法一
if <條件判斷表達(dá)式>:
<當(dāng)上面的代碼成立時(shí),運(yùn)行代碼>
根據(jù)Python的縮進(jìn)規(guī)則,如果if語句判斷是True,就把縮進(jìn)的兩行print語句執(zhí)行了,否則,什么也不做。
也可以給if添加一個(gè)else語句,意思是,如果if判斷是False,不要執(zhí)行if的內(nèi)容,去把else執(zhí)行了:
age = 20 if age >= 18:print('your age is', age)print('adult') your age is 20 adult 例1 a = 1 # 只要看到if 了 , 就是進(jìn)入 分支語句 # if 后面 判斷表達(dá)式 # 判斷表達(dá)式后面 冒號: if a < 0:print(1) print(2)例2 a = 1 if a == 2:print(1) else:print('不成立')print('后面的代碼')方法二
if <條件判斷表達(dá)式>:
<當(dāng)上面的代碼成立時(shí),運(yùn)行代碼>
else:
<當(dāng)上面代碼不成立時(shí),運(yùn)行代碼>
方法三
elif是else if的縮寫,完全可以有多個(gè)elif,所以if語句的完整形式就是:
所以if語句的完整形式就是:
if <條件判斷1>:
<執(zhí)行1>
elif <條件判斷2>:
<執(zhí)行2>
elif <條件判斷3>:
<執(zhí)行3>
…
else:
<執(zhí)行4>
案例
# 1 - 4 歲 嬰兒 # 4 - 18 歲 兒童 # 18 - 35 青年 # 35 - 55 中年 # 55 以上 老年 age = int(input('請輸入您的年齡')) if age <= 4:print('你是一個(gè)小baby') elif age <= 18:print('你還未成年,不能去網(wǎng)吧') elif age <= 35:print('你已經(jīng)成年了, 可以去網(wǎng)吧玩游戲了') elif age <= 55:print('你是一個(gè)中年人了, 不需要去網(wǎng)吧了') else:print('您是一個(gè)老年人, 和網(wǎng)吧沒有關(guān)系了')請輸入您的年齡1 你是一個(gè)小baby1.1.1 布爾類型和其他數(shù)據(jù)類型之間的轉(zhuǎn)換關(guān)系
所有空值、0為假,其他為真
bool(0)
bool([])
bool(’’)
都是返回為假false
1.1.2 if 嵌套
if嵌套
通過學(xué)習(xí)if的基本用法,已經(jīng)知道了
當(dāng)需要滿足條件去做事情的這種情況需要使用if
當(dāng)滿足條件時(shí)做事情A,不滿足條件做事情B的這種情況使用if-else
想一想:
坐火車或者地鐵的實(shí)際情況是:先進(jìn)行安檢如果安檢通過才會(huì)判斷是否有車票,或者是先檢查是否有車票之后才會(huì)進(jìn)行安檢,即實(shí)際的情況某個(gè)判斷是再另外一個(gè)判斷成立的基礎(chǔ)上進(jìn)行的,這樣的情況該怎樣解決呢?
答:
if嵌套
if嵌套的格式
if 條件1:滿足條件1 做的事情1滿足條件1 做的事情2...(省略)...if 條件2:滿足條件2 做的事情1滿足條件2 做的事情2...(省略)... # 先檢票 , 如果有票, 則進(jìn)站 # 如果沒票, 不能進(jìn)站 # 如果成功進(jìn)站了, 進(jìn)行安檢 # 如果沒有危險(xiǎn)物品, 則可以上車 # 如果有危險(xiǎn)物品, 被抓到派出所 ticket = True danger_thing = True if not danger_thing:print('沒有危險(xiǎn)物品可以進(jìn)站')if ticket:print("恭喜上車")else:print('請出去') else:print('請跟我走一趟')練一練
情節(jié)描述:上公交車,并且可以有座位坐下
要求:輸入公交卡當(dāng)前的余額,只要超過2元,就可以上公交車;如果空座位的數(shù)量大于0,就可以坐下
money = float(input('請輸入公交卡的錢:')) setting = float(input('請輸入座位數(shù):'))if money >= 2:print('可以上車')if setting >= 1:print('請坐下')else:print('請站著') else:print('請下車')請輸入公交卡的錢:2 請輸入座位數(shù):3 可以上車 請坐下補(bǔ)充:
and not or的優(yōu)先級
or<and<not
1.1.3 列表
當(dāng)我們有一百個(gè)變量要儲(chǔ)存起來的時(shí)候,總不能弄一百個(gè)變量啊,怎么辦的,用列表.
我們可以對列表這樣去理解, 就把它當(dāng)成一個(gè)大桶, 當(dāng)我們有一堆東西需要找個(gè)地方臨時(shí)存放在一起, 以便后續(xù)進(jìn)行排序, 篩選,提取等操作時(shí), 就弄一個(gè)列表, 先放進(jìn)去.
列表中的元素,沒有數(shù)據(jù)類型的限制,可以為任何數(shù)據(jù)類型
1.2 循環(huán)語句
循環(huán)語句的使用場景
這一天老師讓你抄寫一百遍"我錯(cuò)了"
for循環(huán)
while循環(huán)
i = 0 while i <= 100:print("我錯(cuò)了")i += 11.2.1 for循環(huán)
for循環(huán)和編程語言中常見的循環(huán)不太一樣,它實(shí)際上不是一個(gè)循環(huán),而是一個(gè)遍歷功能,會(huì)依次對一個(gè)可迭代的數(shù)據(jù)中的每一個(gè)數(shù)據(jù)進(jìn)行操作.
在Python中 for循環(huán)可以遍歷任何序列的項(xiàng)目,如一個(gè)列表或者一個(gè)字符串等。
for循環(huán)的格式
for 臨時(shí)變量 in 列表或者字符串等:循環(huán)滿足條件時(shí)執(zhí)行的代碼range的使用
range(數(shù)字)表示生成0-多少的數(shù)組
range(a,b)表示生成a到b的數(shù)
# 例:list(range(10,20))表示生成10到19的數(shù) [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]range(a,b,c)表示生成a到b的數(shù),間距為c
# 例:list(range(10,20,2))表示生成10到20的偶數(shù) [10, 12, 14, 16, 18]利用for 循環(huán)實(shí)現(xiàn)1到100的累加
# 先定一個(gè)累加器 n = 0 for i in range(1, 101):# 每次把遍歷出來的i 的值 累加到 n 上面去n += i n1.2.2 whlie循環(huán)
while 條件表達(dá)式:條件滿足時(shí),做的事情1條件滿足時(shí),做的事情2條件滿足時(shí),做的事情3...(省略)...案例1
i = 0 while i<5:print("當(dāng)前第{}次執(zhí)行循環(huán)".format(i+1))print('i={}'.format(i))i += 1當(dāng)前第1次執(zhí)行循環(huán) i=0 當(dāng)前第2次執(zhí)行循環(huán) i=1 當(dāng)前第3次執(zhí)行循環(huán) i=2 當(dāng)前第4次執(zhí)行循環(huán) i=3 當(dāng)前第5次執(zhí)行循環(huán) i=4案例2
s = "也可以使用while循環(huán)對字符串進(jìn)行遍歷,不過就需要配合字符串的索引功能了" i = 0 while i < len(s):print(s[i])i += 1 也 可 以 使 用 w h i l e 循 環(huán) 對 字 符 串 進(jìn) 行 遍 歷 , 不 過 就 需 要 配 合 字 符 串 的 索 引 功 能 了1.2.3打印-1到-20中所有3的倍數(shù)
i = -1 while i >=-20:if i%3 == 0:print(i)i -= 1-3 -6 -9 -12 -15 -18對數(shù)字0 每次 加 7 , 然后把這個(gè)數(shù)字打印出來
一直運(yùn)行到 這個(gè)數(shù)字是 100的倍數(shù) 停止
i = 0 while (not(i%100 == 0)) or (i == 0):print(i)i += 7 0 7 14 21 28 35 42 49 56 63 70 77 84 91 98 105 112 119 126 133 140 147 154 161 168 175 182 189 196 203 210 217 224 231 238 245 252 259 266 273 280 287 294 301 308 315 322 329 336 343 350 357 364 371 378 385 392 399 406 413 420 427 434 441 448 455 462 469 476 483 490 497 504 511 518 525 532 539 546 553 560 567 574 581 588 595 602 609 616 623 630 637 644 651 658 665 672 679 686 6931.2.4 break退出本"層"循環(huán)
遇到break相當(dāng)于推出本層循環(huán)
name = '我想要去打游戲,不想學(xué)習(xí)' for i in name:if i == ',':breakprint(i)我 想 要 去 打 游 戲1.2.5 continue結(jié)束本"次"循環(huán)
continue的作用:用來結(jié)束本次循環(huán),緊接著執(zhí)行下一次的循環(huán)
name = '我想要去打游戲,不想學(xué)習(xí)' for i in name:# 如果遇到了逗號, 就不打印了if i == ',':continueprint(i)我 想 要 去 打 游 戲 不 想 學(xué) 習(xí)注意:
break/continue只能用在循環(huán)中,除此以外不能單獨(dú)使用
break/continue在嵌套循環(huán)中,只對最近的一層循環(huán)起作用
1.2.6 練習(xí) 尋找水仙花數(shù)
題目:打印出所有的"水仙花數(shù)",所謂"水仙花數(shù)"是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個(gè)"水仙花數(shù)",因?yàn)?53=1的三次方+5的三次方+3的三次方。
方法一
方法二
for i in range(100,1000):s = str(i)a = s[0]b = s[1]c = s[2]if int(a)**3 + int(b)**3 + int(c)**3 == i:print(i) 153 370 371 407總結(jié)
以上是生活随笔為你收集整理的03.Python基础--控制流语句-顺序结构-判断结构-循环语句的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 02.Python基础_标准数据类型_数
- 下一篇: 04.Python基础_列表_元组_字典