第五章:流程控制

"""

第五章:流程控制

所謂的流程控制就是程序執(zhí)行的過程

三種結(jié)果:

順序執(zhí)行:按部就班

選擇:根據(jù)條件不同執(zhí)行不同的代碼段

循環(huán):體現(xiàn)的是重復(fù)性的執(zhí)行一件事

"""

# 縮進(jìn):python使用每行前面的空白(縮進(jìn))來決定當(dāng)前代碼的層次。

"""

同一個(gè)層次的語句必須要有相同的縮進(jìn)

通常情況下使用四個(gè)空格(tabs)來表示一個(gè)縮進(jìn)層次

"""

# 一、選擇判斷

# 背景,有的時(shí)候希望程序是根據(jù)條件來按照不同的條件執(zhí)行不同的代碼,而不是按部就班的一行

#?????? 一行執(zhí)行。

# 所有的關(guān)鍵字

import keyword

print(keyword.kwlist)

# 1. if條件:當(dāng)if條件成立的時(shí)候,會(huì)執(zhí)行的代碼段

"""

語法結(jié)構(gòu)

if 條件(布爾類型):

??? 當(dāng)條件返回True,會(huì)執(zhí)行的代碼段

??? 當(dāng)條件返回True,會(huì)執(zhí)行的代碼段

??? 當(dāng)條件返回True,會(huì)執(zhí)行的代碼段

??? ....

else:(else的后面沒有條件)???

??? 當(dāng)if條件返回False,會(huì)執(zhí)行的代碼段

??? 當(dāng)if條件返回False,會(huì)執(zhí)行的代碼段

??? 當(dāng)if條件返回False,會(huì)執(zhí)行的代碼段

其他代碼段

用法注意:

(1)if可以單獨(dú)存在,但是else不可以

(2)if后面有條件,else后面沒有條件

"""

a=101

if a<=100:

??? print("我現(xiàn)在很瘦")

??? print("我可以繼續(xù)胡吃海塞")

else:

??? print("我不能吃飯了")

??? print("還得去減肥")

print("其他的代碼段")

# 練習(xí):

# 1. 輸入一個(gè)成績,如果>=60就輸出及格了,否則輸出:這次得交掛科費(fèi)了,回家還不能吃飯。

# score=int(input("請輸入你的成績"))

# if score>=60:

#???? print("及格了")

# else:

#???? print("交掛科費(fèi)")

#???? print("回家不能吃飯")

# 2.根據(jù)今天是星期幾(1-7),輸入星期幾,輸出要做的事情:

# 周一-周五 上課

# 周六????? 自習(xí)

# 周日????? 休息

# day=int(input("請輸入星期幾:"))

# if day==6:

#???? print("自習(xí)")

# if day==7:

#???? print("休息")

# if 1<=day<=5:

#???? print("上課")

#問題:

# 1. 效率,當(dāng)條件符合了一個(gè)if之后,還會(huì)走其他的if條件

# 2. 如果輸入的8

# 解決:

# 1.使用嵌套if來解決多次執(zhí)行if問題

# 2.將概率大的放在前面

# 小知識(shí):debug

# 1. 設(shè)置斷點(diǎn):當(dāng)使用debug模式執(zhí)行的時(shí)候,代碼就會(huì)停止在斷點(diǎn)的位置

# 2. F8鍵,會(huì)使程序一行 一行執(zhí)行

# 3. F9鍵,能夠使得程序走完(走到下一個(gè)斷點(diǎn))

# 4. 鼠標(biāo)懸停在變量的位置,會(huì)顯示變量值

"""

if 布爾條件:

?? if 布爾條件:

????? 語句體

?? else:

????? 語句體

else:

?? if 布爾條件:

????? 語句體

?? else:

????? 語句體

"""

# day=int(input("請輸入星期幾:"))

# if 5>=day>=1:

#???? print("上課")

# else:

#???? if day==6:

#???????? print("自習(xí)")

#???? else:

#???????? if day==7:

#???????????? print("休息")

#???????? else:

#???????????? print("輸入錯(cuò)誤")

# 3. 輸入一個(gè)工資,如果工資<=5000,輸出我很窮;

# 如果<=10000,輸出可以溫飽;如果<=20000,輸出我是土豪

# salary=int(input("請輸入一個(gè)工資:"))

# if salary<=5000:

#???? print("我很窮")

# else:

#???? if salary<=10000:

#???????? print("可以溫飽")

#???? else:

#???????? if salary<=20000:

#???????????? print("我是土豪")

# if salary<=5000:

#???? print("我很窮")

# else:

#???? if 10000<=salary<=20000:

#???????? print("我是土豪")

#???? else:

#???????? print("可以溫飽")

"""

二、循環(huán)

1. for

for 循環(huán):依據(jù)任意序列中的子項(xiàng),按其在序列中的順序進(jìn)行迭代

"""

# 背景:

# print("hello world")

# print("hello world")

# print("hello world")

# print("hello world")

# print("hello world")

?需要重復(fù)五次的輸入,耗時(shí)耗力,可以用for循環(huán)來解決

"""

for循環(huán)的語法

# 變量名:是序列中的每一個(gè)元素

迭代對象:序列(字符串、字節(jié)、列表、元組)和其他可迭代對象

遍歷:指將一個(gè)可迭代的對象每個(gè)元素都查看一遍。


for 變量名 in 序列(字符串、字節(jié)、列表、元組)和其他可迭代對象:

?? 循環(huán)體

"""

# 使用for循環(huán)輸出5次hello world

# for i in "11111":

#???? print("hello world")


# 可迭代對象可以換成其他的,只要滿足可迭代對象是五次就可以。

# for i in "12345":

#???? print("開始:")

#???? print("hello world")


# 將可迭代對象中的每一個(gè)元素都加1

for i in "11111":

??? # print(i,type(i))

??? n=int(i)

??? n+=1

??? print(n)


# 1+2+3+4+5

s=0

for i in "12345":

??? n=int(i)

??? s=s+n

print(s)


#1+2+3+...100

# range(start,end,step)函數(shù):能夠產(chǎn)生一個(gè)列表

# 包含start不包含end

# step:默認(rèn)1:方向是從左到右

# print(range(1,5))? # [1,2,3,4]? python2x

# print(list(range(1,5)))???????? python3x

a=range(1,5)

print(type(a))

for i in a:

??? print(i)


print(list(range(1,101)))


# 1+...+100累加和

s=0

for? i? in range(1,101):

??? # s=s+i

??? s+=i

print(s)


# 練習(xí)

"""

1. 定義字符串、定義字節(jié),使用for循環(huán)對其進(jìn)行遍歷,計(jì)算長度


"""

s="hello world python"

l=0

for i in s:

??? print(i)

??? l=l+1

print("通過for循環(huán)計(jì)算出的l={}".format(l))

# 0 1 2 3? ... len(s)-1

# for i in range(0,len(s)):

for i in range(len(s)):# 簡化

??? print("通過索引訪問每一個(gè)元素",s[i])



# 字節(jié)的遍歷是ascii

# 通過索引訪問的也是ascii

l1=0

b=b"helloworldpython"

for i in b:

??? l1+=1

??? # print(i)

print("通過for循環(huán)計(jì)算出的l1={}".format(l1))

for i in range(len(b)):

??? print("通過索引的方式訪問字節(jié)元素",b[i])



#2. 輸出1-100以內(nèi)所有的奇數(shù) 使用兩種辦法

# print(list(range(1,101,2)))

for i in range(1,101):

??? if i%2!=0:

??????? print(i,end=" ")

print()

#3.輸出1-100以內(nèi)所有的偶數(shù)

for i in range(1,101):

??? if i%2==0:

??????? print(i,end=" ")


print()

#4.有一些列的溫度數(shù) 30? 50? 66? 99? 58? 20代表華氏溫度

?? #希望將這些溫度變成攝氏溫度: 攝氏溫度=(華氏溫度-32)/1.8

# (1)需要將每個(gè)溫度變成攝氏溫度

#(2)希望得到的結(jié)果仍然是字符串

"""

思路:

(1)如何將字符串處理成單個(gè)元素(溫度),split(",")

?(2) 使用for循環(huán)處理每一個(gè)溫度

??? 處理之前需要將溫度轉(zhuǎn)換float

(3)+可以拼接字符串

??? format也能組裝字符串

"""

s="30,50,66,99,58,20"

print(s.split(","))

t=s.split(",")

a=""

for? i in t:

??? # print(i)攝氏溫度=(華氏溫度-32)/1.8

??? x=(float(i)-32)/1.8

??? # print(x)

??? # a+=str(x)+","

??? a+="{},".format(x)

s=a.rstrip(",")

print(s)

s="1.2,1.5,1.65892......."



# 2.循環(huán)的嵌套

"""

語法:

for? i? in 外循環(huán)對象:

?? for j in 內(nèi)循環(huán)對象:

????? 循環(huán)體

外循環(huán)每執(zhí)行一次,內(nèi)循環(huán)都會(huì)完整的執(zhí)行一輪。

"""

#打印星星*

# print("******")

# print("*"*6)

#

# for i in? range(6):

#???? print("*",end="")


# 需要打印10行,每行6個(gè)星星

for j in range(10):

??? for i in range(6):

??????? print("*", end="")

??? print()

# 寫代碼,通常先寫內(nèi)循環(huán),再寫外循環(huán)



#3. 跳出循環(huán)

# break:終止當(dāng)前循環(huán)

# 希望在字符中檢測有沒有*

for i in "hel*djlkgdljgklgdjdkgj":

??? if "*"==i:

??????? print("找到*")

??????? break


#輸入一個(gè)數(shù),判斷是不是質(zhì)數(shù)

# 質(zhì)數(shù):只能被自己和1整除

# 判斷不是質(zhì)數(shù)更容易

# num%(2...n-1) !=0 是質(zhì)數(shù)

# num%(2...n-1) ==0 不是質(zhì)數(shù) break

import math

num=int(input("請輸入一個(gè)數(shù)"))

tag=True

# print(math.sqrt(7))

for i in range(2,int(math.sqrt(num))+1):

??? if num%i==0:

??????? print("不是質(zhì)數(shù)")

??????? tag=False

??????? break

??? # else:

??? #???? print("是質(zhì)數(shù)")

# if tag==True:

if tag:#(簡化)

??? print("是質(zhì)數(shù)")


# 因式分解

# 8=2*4

# 8=4*2

# 16=2*8

# 16=4*4

# 16=8*2

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,854評(píng)論 0 10
  • 看過許多文章,都在鼓吹女孩們要找個(gè)成熟的男人在一起。 她們說“成熟的男人總是能把女孩們照顧的很好,不會(huì)做傻逼的事情...
    春雨碎碎念閱讀 1,142評(píng)論 2 6
  • 我,我是《泡沫》的筆者。我不愿說自己是所謂的作者,我更想說,其實(shí),這是一篇讓我十分糾結(jié)的文字。有時(shí),我是文中的小蠻...
    我是白小姐閱讀 297評(píng)論 0 0
  • 眾人喝茶,滋味口感千千萬。 幼時(shí)喝茶,苦澀不已,喝下一口眉目扭曲,便不愿再碰,心內(nèi)暗暗納悶:這么苦的玩意,為何大人...
    5ebc5e57260e閱讀 945評(píng)論 0 0

友情鏈接更多精彩內(nèi)容