(4) python中流程控制語句

條件語句
if elif else都是關鍵字,需要能讀和寫

基本格式:

  if 條件語句1:
    執(zhí)行語句塊1
  elif 條件語句2:
    執(zhí)行語句塊2
  else:
    執(zhí)行語句塊3

執(zhí)行過程:

a.先判斷條件語句1是否為True臭脓,如果為True就執(zhí)行冒號后邊的執(zhí)行語句塊1酗钞,整個條件結(jié)構就執(zhí)行完了;如果是False,就去判斷條件語句2是否為True来累。
b.如果是True就執(zhí)行執(zhí)行語句塊2砚作,再執(zhí)行其他語句;如果是False,就直接執(zhí)行語句塊3,再執(zhí)行其他語句嘹锁。

注意:冒號后邊語句塊和冒號所在得語句要保持一個縮進葫录。

if
判斷條件語句的值是否為True,如果為True兼耀,就只執(zhí)行執(zhí)行語句塊压昼。否則就直接執(zhí)行if語句后面的其他語句。

  if 條件語句:
      執(zhí)行語句塊
  
  age=20
  要求判斷年齡是否大于18瘤运,如果大于18就輸出'成年人'
  if age>18:
      print('成年人')
  
  練習:判斷一個數(shù)是否是偶數(shù)窍霞,如果是就打印'xxx是偶數(shù)'
  n=18
  if n%2==0:
      print('%d是偶數(shù)'%(n))

2.if-else
判斷條件語句是否為True,如果為True拯坟,就執(zhí)行語句塊1;否則就執(zhí)行語句塊2.

  if 條件語句:
      執(zhí)行語句塊1
  else:
      執(zhí)行語句塊2
  n=17
  if n%2==0:
      print('%d是偶數(shù)'%(n))
  else:
      print('%d是奇數(shù)'%(n))
  練習:輸入一個數(shù)但金,如果這個數(shù)大于10,就輸出他的2倍值郁季。否  則輸出這個數(shù)的2次冪冷溃。
  input():從控制臺獲取鍵盤輸入的一個字符串,以回車結(jié)束梦裂。
  
  inputvalue=input('請輸入一個數(shù):')
  print(inputvalue)
  n=int(inputvalue)
  比較運算符和+以及*似枕,在運算的時候,兩邊可以都是字符串年柠,也可以都是數(shù)字凿歼,但是不可以一樣一個。
  if n>10:
  num=n*2
      print(num)
  else:
  num=n**2
      print(num)

3.if-elif-elif-else
總結(jié):

a.如果要求中需要多個判斷冗恨,可以使用多個elif的if語句答憔。
b.一個if/elif/else語句中可以嵌套其他的if語句。

(1)給一個成績掀抹,判斷成績是優(yōu)秀(90-100)虐拓、良好(80-89)、        中等(60-79)傲武、不及格(60以下)
方法一:
grade=96
if grade>=90:
    if grade>100:
        print('成績有誤')
    else:
        print('優(yōu)秀')
elif grade>=80:
    print('良好')
elif grade>=60:
      print('中等')
elif grade>=0:
      print('不及格')
else:
      print('成績有誤')
方法二:
grade=67
if 100>=grade>=90:
  print('優(yōu)秀')
elif 90>grade>=80:
  print('良好')
elif 80>grade>=60:
  print('中等')
elif 60>grade>=0:
  print('不及格')
else:
  print('成績有誤')
  
(2)給個年齡蓉驹,判斷年齡處于:嬰兒(0-1歲)城榛、兒童(2-4         歲)、少年(5-12歲)戒幔、青年(13-18歲)吠谢、成年(19-40)、       中年(41-60)诗茎、老年(60以上)
age=1
if age<2:
  if age<=0:
      print('年齡輸入錯誤')
  else:
      print('嬰兒')
elif age<5:
  print('兒童')
elif age<13:
  print('少年')
elif age<19:
  print('青年')
elif age<41:
  print('成年')
elif age<61:
  print('中年')
else:
  print('老年')
說明:Python中沒有switch語法工坊。

pass:占位,防止因為沒有寫塊結(jié)構而出現(xiàn)語法錯誤敢订。

if n==10:
    pass

轉(zhuǎn)換函數(shù)

1.int()
int():將其他的數(shù)據(jù)轉(zhuǎn)換成int類型的數(shù)據(jù)

num=12.56
print(int(num))    # 12 將浮點數(shù)轉(zhuǎn)換成整數(shù)(直接去掉小數(shù)部分)
bool1=True
print(int(bool1))  # 1 將布爾值轉(zhuǎn)換成整數(shù)王污,True->1  False->0
str1='123'
print(int(str1))   # 123 只有純數(shù)字字符串或者純數(shù)字字符串前有正負號的字符串才能轉(zhuǎn)換成相應的整數(shù)。

2.flot()
flot():將其他數(shù)據(jù)轉(zhuǎn)換成浮點型
3.bool()
bool():將其他的數(shù)據(jù)轉(zhuǎn)換成布爾值

數(shù)字轉(zhuǎn)換成布爾楚午,非0是True昭齐,0是False。

print(bool(12))     # True
print(bool(-12.3))  # True
print(bool(0))      # False
字符串轉(zhuǎn)換成布爾矾柜,除了空串是False阱驾,其他的都是True。

print(bool('abc'))  # True
print(bool(''))     # False

注意:在if或者while循環(huán)后的條件語句怪蔑,可以不是結(jié)果為True/False的表達式里覆,也可以是值是其他類型的表達式.判斷的是時候就看這個值轉(zhuǎn)換成bool后的結(jié)果是True還是False。

if 10:
  print('aaa')   # aaa (10轉(zhuǎn)換成bool后是True) 
if 0:
  print('aaa')   #  (0轉(zhuǎn)換成bool后是False)

練習:判斷一個字符串是否是空串缆瓣,如果不是就直接打印這個字符 串喧枷,否則打印“空串”

方法1:
str1=''
if str1:
  print(str1)
else:
  print('空串')
方法2:
str1='abc'
if str1!='':
  print(str1)
else:
  print('空串')

4.str()
str():將其他的數(shù)據(jù)轉(zhuǎn)換成字符串。所有的數(shù)據(jù)類型都可以轉(zhuǎn)換成字符串弓坞。
循環(huán)
python中循環(huán):for循環(huán)隧甚、while循環(huán)(一個操作需要重復執(zhí)行多次,這個時候就要考慮使用循環(huán))
for循環(huán)
python中的for循環(huán)只有for-in循環(huán):

格式:
for 變量名 in 列表:
  循環(huán)體
執(zhí)行過程:使用變量去依次獲取列表中的數(shù)據(jù)直到獲取完為止;沒獲取一個數(shù)據(jù)渡冻,執(zhí)行一次循環(huán)體戚扳。

循環(huán)次數(shù):由列表中的數(shù)據(jù)的個數(shù)決定。

去獲取字符串中的每一個字符
str1='abcdef'
for char in str1:
  print(char)

去統(tǒng)計字符串中'a'出現(xiàn)的次數(shù)
str1='avaadafvaavafaaa'
n=0
for char in str1:
  if char=='a':
      n=n+1       
print(n)
range()函數(shù):可以生成一個數(shù)值范圍
打印1-100
for n in range(1,101):
  print(n)
用法1:range(n),生成0~n-1的值
for x in range(9):
  print(x)

用法2:range(m,n),生成m~n-1的數(shù)

for n in range(5,9):
  print(n)
打印0-100之間所有的偶數(shù)
for x in range(101):
  if x%2==0:
      print(x)

用法3:range(m,n,step):從m開始每step取一個數(shù)族吻,取到n前 一個數(shù)為止咖城。

for x in range(1,8,2):
  print(x)   # 1,3,5,7 

不通過字符串相乘,打印10次“=”,并且打印在同一行呼奢。
for _ in range(10):
  print('=',end=' ')

求1+2+3...+100

n=0
for x in range(1,101):
  n=n+x
print(n)

注意:如果循環(huán)中的變量取到的值沒有意義,循環(huán)只是單純的控制次數(shù)切平,這個時候for后面的變量名一般用“_”代替握础。

while循環(huán)

格式:
 while 條件語句:
    循環(huán)體

執(zhí)行過程:判斷條件語句結(jié)果是否為True,如果為True就執(zhí)行一次循環(huán)體悴品。執(zhí)行完循環(huán)體后再判斷條件語句是否為True禀综,如果為True繼續(xù)執(zhí)行循環(huán)體简烘。重復這個過程,直到條件語句結(jié)果為False

for循環(huán)可以實現(xiàn)的操作定枷,while循環(huán)都可以

打印1-100

方法1:
x=0
while x<100:
  x+=1
  print(x) 
方法2:
x=1
while x<=100:
  print(x)
  x+=1

計算1+2+3+...+100

x=0
n=0
while n<100:
  n+=1
  x+=n
  print(x)

求1-100中所有偶數(shù)的和

方法1:
n=0
x=0
while n<=100:
  if n%2==0:
      x=x+n
      n=n+1
  print(x)
方法2:
n=0
x=0
while n<100:
  n+=2
  x=x+n
print(x)

break和continue
1孤澎、break
break是一個讓循環(huán)提前結(jié)束的關鍵字

如果在for循環(huán)或者while循環(huán)中遇到了break,那么循環(huán)就在break的位置直接結(jié)束欠窒。結(jié)束后程序執(zhí)行循環(huán)后邊的代碼覆旭。

練習:找到1000~9999中第一個能夠被13整除的數(shù),打印出來

for x in range(1000,10000):
  if x%13==0:
      print(x)
      break    
  
for x in range(1,100):
  if x==50:
      break
      print(x)     # 1 2 3 ...  49

用while循環(huán)實現(xiàn):不斷的讓用戶去輸入數(shù)字岖妄,直到用戶輸入的數(shù)字是0為止型将。最后在打印之前輸入的數(shù)的和。

input()函數(shù):程序執(zhí)行到input()函數(shù)的時候荐虐,程序就會停下來七兜,等待用戶從鍵盤輸入并且以回車結(jié)束,然后才會往下執(zhí)行福扬。

注意:break只能寫在循環(huán)中

  sum1=0
  while True:
  num=int(input(">>>"))   # 獲取鍵盤輸入的內(nèi)容腕铸,并且轉(zhuǎn)換成int類型
      sum1+=num   # 將當次輸入的數(shù)字加起來
      if num==0:   #  判斷輸入的數(shù)字是否是0,如果是就讓循環(huán)結(jié)束
          break   
      print(num)
  print(sum1)

for循環(huán)的特點:次數(shù)確定铛碑,可以在序列中取數(shù)據(jù)

while循環(huán):循環(huán)次數(shù)不確定的(while True + break)

randint(m,n):產(chǎn)生一個m到n的隨機整數(shù)

產(chǎn)生隨機數(shù):random模塊是python內(nèi)置用來產(chǎn)生隨機數(shù)的模塊狠裹,里面提供了很多產(chǎn)生隨機數(shù)的函數(shù)。

猜數(shù)字:隨機生成一個整數(shù)亚茬。用戶輸入數(shù)字酪耳。如果用戶輸入的數(shù)字大于這個隨機數(shù)就提示:“大了”;如果用戶輸入的數(shù)小于隨機數(shù)就提示:“小了”。直到用戶輸入的數(shù)和這個隨機數(shù)大小一樣游戲結(jié)束刹缝。

  import random
  num=random.randint(0,100)   # 產(chǎn)生一個0到100的隨機數(shù)
  n=0
  while True:
  num1=int(input("請輸入你猜的數(shù)字:"))
  n=n+1
  if num1>num:
      print('大了')
  elif num1<num:
      print('小了')
  else:
      print('恭喜你碗暗,猜對了!')       
      print('一共猜了:%d次'%(n),end='  ')
      if n<=5:
          print('你太棒了梢夯,只猜了%d次就猜對了'%(n))
      else:
          print('下次加油言疗!')
      break

2、continue
continue:結(jié)束當次循環(huán)颂砸,進入下次循環(huán)

  for x in range(1,10):
      print('=')
      continue   # 遇到continue就不再執(zhí)行循環(huán)體后面的內(nèi)容噪奄,直接進入下一次循環(huán)的判斷
      print(x)

求1~100中所有奇數(shù)的和

  sum=0
  for x in range(1,100):
      if x%2==0:
          continue
      sum=sum+x
  print(sum)

打印100~999中十位數(shù)上不是3的所有數(shù):

  for x in range(100,1000):
      if x//10%10==3:
          continue
      print(x)   

統(tǒng)計輸入的數(shù)字中,偶數(shù)的個數(shù)人乓。如果輸入0勤篮,就結(jié)束。(必須使用continue)

  flag=True
  n=0
  while True:
      num=int(input('請輸入一個數(shù):'))  # 輸入數(shù)據(jù)
      if num%2==1:  # 判斷是否是奇數(shù)
          continue
      if num==0:
          flag=False
      n=n+1
  print(n)

else
python中循環(huán)語句后面可以加else語句色罚。這個else語句會在循環(huán)結(jié)束后執(zhí)行碰缔。

 for 變量 in 序列:
  循環(huán)體
 else:
  循環(huán)結(jié)束后會執(zhí)行的語句塊
 1*2*3...*10
 sum1=1
 for x in range(1,11):
  sum1*=x
 else:
  print(sum1)

注意:如果再循環(huán)語句中使用break,那么else語句不會執(zhí)行戳护。(continue不存在這個問題)

123...*10金抡,當乘積大于10000就不在執(zhí)行

  sum1=1
  for x in range(1,11):
      if sum1*x>10000:    
          break
      sum1*=x
  print(sum1)
  else:
      print(sum1)  # 如果在循環(huán)中執(zhí)行了break瀑焦,那么else中的語句不會執(zhí)行

多重循環(huán)
在循環(huán)體里面可以有其他的循環(huán)語句,結(jié)構為:

 for 變量 in 序列:
     for 變量1 in 序列2:
      循環(huán)體2
  其它的循環(huán)語句
 
 for 變量 in 序列:
  其他的循環(huán)語句1
  while 條件語句:
      循環(huán)體2
  其他的循環(huán)語句2
 
 while 條件語句1:
  while 條件語句2:
      循環(huán)體2
  其他的循環(huán)語句2

例如:

  如果n=5 打印
  1
  12
  123
  1234
  12345

  n=5
  for x in range(1,n+1):   # 控制行數(shù)
      for b in range(1,x+1):  # 控制當前行的數(shù)值
          print(b,end='')
      print()   # 一行結(jié)束換行

  *****
  ****
  ***
  **
  *
  n=5
  for x in range(1,n+1):
      for b in range(x,n+1):
          print('*',end='')
      print()
  
  n=10
  for x in range(1,n+1):
      for b in range(x,n+1):
          print('*',end='')
      print()

參考了簡書中某人的記錄梗肝,但找不到具體是誰了榛瓮。侵刪。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末巫击,一起剝皮案震驚了整個濱河市禀晓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌喘鸟,老刑警劉巖匆绣,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異什黑,居然都是意外死亡崎淳,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門愕把,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拣凹,“玉大人,你說我怎么就攤上這事恨豁∠担” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵橘蜜,是天一觀的道長菊匿。 經(jīng)常有香客問我,道長计福,這世上最難降的妖魔是什么跌捆? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮象颖,結(jié)果婚禮上佩厚,老公的妹妹穿的比我還像新娘。我一直安慰自己说订,他們只是感情好抄瓦,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著陶冷,像睡著了一般钙姊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上埂伦,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天煞额,我揣著相機與錄音,去河邊找鬼。 笑死立镶,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的类早。 我是一名探鬼主播媚媒,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼涩僻!你這毒婦竟也來了缭召?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤逆日,失蹤者是張志新(化名)和其女友劉穎嵌巷,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體室抽,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡搪哪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了坪圾。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晓折。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖兽泄,靈堂內(nèi)的尸體忽然破棺而出漓概,到底是詐尸還是另有隱情,我是刑警寧澤病梢,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布胃珍,位于F島的核電站,受9級特大地震影響蜓陌,放射性物質(zhì)發(fā)生泄漏觅彰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一护奈、第九天 我趴在偏房一處隱蔽的房頂上張望缔莲。 院中可真熱鬧,春花似錦霉旗、人聲如沸痴奏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽读拆。三九已至,卻和暖如春鸵闪,著一層夾襖步出監(jiān)牢的瞬間檐晕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留辟灰,地道東北人个榕。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像芥喇,于是被迫代替她去往敵國和親西采。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一继控、快捷鍵 ctr+b 執(zhí)行ctr+/ 單行注釋ctr+c ...
    o_8319閱讀 5,823評論 2 16
  • 我不喜歡酒的味道械馆,但喜歡醉的感覺!偶爾醉是一種心靈上的解壓武通。有人說霹崎,不用香水的人,是沒有味道的人冶忱。不會喝酒的人就是...
    上官敬我閱讀 462評論 0 0
  • 本來想畫水彩的尾菇,結(jié)果沒帶水彩紙回來。淚目朗和, 拿出速寫本子错沽,畫彩鉛。 沒有耐心呀眶拉,結(jié)果筆觸亂死了千埃。
    貓餅干閱讀 527評論 9 3
  • Core Data是iOS5之后才出現(xiàn)的一個框架,是數(shù)據(jù)持久化存儲的最佳方式.這里對于core Data不再做詳細...
    superLee閱讀 379評論 0 1
  • 木易卍人走聿閱讀 156評論 0 0