1. 程式人生 > >python全棧開發-Day2 布爾、流程控制、循環

python全棧開發-Day2 布爾、流程控制、循環

class 用戶輸入 體重 命令 外部 表達 pan ger pre

python全棧開發-Day2 布爾 流程控制 循環

一、布爾

  1、概述

#布爾值,一個True一個False #計算機俗稱電腦,即我們編寫程序讓計算機運行時,應該是讓計算機無限接近人腦,或者說人腦能幹什麽,計算機就應該能幹什麽,
人腦的主要作用是數據運行與邏輯運算,此處的布爾類型就模擬人的邏輯運行,即判斷一個條件成立時,用True標識,不成立則用False標識

 1 a=3
 2 b=5
 3 
 4 a > b #不成立就是False,即假
 5 #False
 6 
 7 a < b #成立就是True, 即真
 8 #True
 9 
10 #接下來就可以根據條件結果來幹不同的事情了:
11 if a > b: 12 print(a is bigger than b ) 13 14 else15 print(a is smaller than b ) 16 #上面意味著,計算機已經可以像人腦一樣根據判斷結果不同,來執行不同的動作。

   2布爾類型的重點知識!!!:

#所有數據類型都自帶布爾值
1、None,0,空(空字符串,空列表,空字典等)三種情況下布爾值為False
2、其余均為真 

  3、 重點

#1.可變類型:在id不變的情況下,value可以變,則稱為可變類型,如列表,字典

#2. 不可變類型:value一旦改變,id也改變,則稱為不可變類型(id變,意味著創建了新的內存空間) 

二、 流程控制之if...else

  既然我們編程的目的是為了控制計算機能夠像人腦一樣工作,那麽人腦能做什麽,就需要程序中有相應的機制去模擬。

人腦無非是數學運算和邏輯運算,對於數學運算在上一節我們已經說過了。對於邏輯運算,即人根據外部條件的變化而做出不同的反映,比如:

  1如果:女人的年齡>30歲,那麽:叫阿姨

age_of_girl=31
if age_of_girl > 30:
    print(‘阿姨好‘)

  2 如果:女人的年齡>30歲,那麽:叫阿姨,否則:叫小姐

age_of_girl=18
if age_of_girl > 30:
    print(‘阿姨好‘)
else:
    print(‘小姐好‘)

  3 如果:女人的年齡>=18並且<22歲並且身高>170並且體重<100並且是漂亮的,那麽:表白,否則:叫阿姨

age_of_girl=18
height=171
weight=99
is_pretty=True
if age_of_girl >= 18 and age_of_girl < 22 and height > 170 and weight < 100 and is_pretty == True:
    print(‘表白...‘)else:
    print(‘阿姨好‘)

  4、如果:成績>=90,那麽:優秀

  如果成績>=80且<90,那麽:良好

  如果成績>=70且<80,那麽:普通

  其他情況:很差

score=input(‘>>: ‘)
score=int(score)

if score >= 90:
    print(‘優秀‘)
elif score >= 80:
    print(‘良好‘)
elif score >= 70:
    print(‘普通‘)
else:
    print(‘很差‘)
  if 條件1:

    縮進的代碼塊

  elif 條件2:

    縮進的代碼塊

  elif 條件3:

    縮進的代碼塊

  ......

  else:  

    縮進的代碼塊

三、 流程控制之while循環

1 、為何要用循環

  #上節課我們已經學會用if .. else 來猜年齡的遊戲啦,但是只能猜一次就中的機率太小了,如果我想給玩家3次機會呢?
就是程序啟動後,玩家最多可以試3次,這個怎麽弄呢?你總不會想著把代碼復制3次吧。。。。

age_of_oldboy = 48

guess = int(input(">>:"))

if guess > age_of_oldboy :
    print("猜的太大了,往小裏試試...")

elif guess < age_of_oldboy :
    print("猜的太小了,往大裏試試...")

else:
    print("恭喜你,猜對了...")

#第2次
guess = int(input(">>:"))

if guess > age_of_oldboy :
    print("猜的太大了,往小裏試試...")

elif guess < age_of_oldboy :
    print("猜的太小了,往大裏試試...")

else:
    print("恭喜你,猜對了...")

#第3次
guess = int(input(">>:"))

if guess > age_of_oldboy :
    print("猜的太大了,往小裏試試...")

elif guess < age_of_oldboy :
    print("猜的太小了,往大裏試試...")

else:
    print("恭喜你,猜對了...")

#即使是小白的你,也覺得的太low了是不是,以後要修改功能還得修改3次,因此記住,寫重復的代碼是程序員最不恥的行為。
那麽如何做到不用寫重復代碼又能讓程序重復一段代碼多次呢? 循環語句就派上用場啦

2 、條件循環:while,語法如下

while 條件:    
    # 循環體
 
    # 如果條件為真,那麽循環體則執行,執行完畢後再次循環,重新判斷條件。。。
    # 如果條件為假,那麽循環體不執行,循環終止
#打印0-10
count=0
while count <= 10:
    print(‘loop‘,count)
    count+=1

#打印0-10之間的偶數
count=0
while count <= 10:
    if count%2 == 0:
        print(‘loop‘,count)
    count+=1

#打印0-10之間的奇數
count=0
while count <= 10:
    if count%2 == 1:
        print(‘loop‘,count)
    count+=1

3 、死循環

import time    #調用模塊後面會講
num=0
while True:
    print(‘count‘,num)
    time.sleep(1)
    num+=1   

4 、循環嵌套與tag

  tag=True    #定義真

  while tag:

    ......

    while tag:

      ........

      while tag:

        tag=False   #定義假
#練習,要求如下:
    1 循環驗證用戶輸入的用戶名與密碼
    2 認證通過後,運行用戶重復執行命令
    3 當用戶輸入命令為quit時,則退出整個程序 
 1 #實現一:
 2 name=egon
 3 password=123
 4 
 5 while True:
 6     inp_name=input(用戶名: )
 7     inp_pwd=input(密碼: )
 8     if inp_name == name and inp_pwd == password:
 9         while True:
10             cmd=input(>>: )
11             if not cmd:continue
12             if cmd == quit:
13                 break
14             print(run <%s> %cmd)
15     else:
16         print(用戶名或密碼錯誤)
17         continue
18     break
19 
20 #實現二:使用tag
21 name=egon
22 password=123
23 
24 tag=True
25 while tag:
26     inp_name=input(用戶名: )
27     inp_pwd=input(密碼: )
28     if inp_name == name and inp_pwd == password:
29         while tag:
30             cmd=input(>>: )
31             if not cmd:continue
32             if cmd == quit:
33                 tag=False
34                 continue
35             print(run <%s> %cmd)
36     else:
37         print(用戶名或密碼錯誤)

4 、break與continue

#break用於退出本層循環
while True:
    print "123"
    break
    print "456"

#continue用於退出本次循環,繼續下一次循環
while True:
    print "123"
    continue
    print "456"

5 、while+else

#與其它語言else 一般只與if 搭配不同,在Python 中還有個while ...else 語句,while 後面的else 作用是指,
當while 循環正常執行完,中間沒有被break 中止的話,就會執行else後面的語句
count = 0 while count <= 5 : count += 1 print("Loop",count) else: print("循環正常執行完啦") print("-----out of while loop ------") 輸出 Loop 1 Loop 2 Loop 3 Loop 4 Loop 5 Loop 6 循環正常執行完啦 -----out of while loop ------ #如果執行過程中被break啦,就不會執行else的語句啦 count = 0 while count <= 5 : count += 1 if count == 3:break print("Loop",count) else: print("循環正常執行完啦") print("-----out of while loop ------") 輸出 Loop 1 Loop 2 -----out of while loop ------

四 、流程控制之for循環

1 叠代式循環:for,語法如下

  for i in range(10):

    縮進的代碼塊

2 break與continue(同上)

3 循環嵌套

#打印九九乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print(%s*%s=%s %(i,j,i*j),end= )   #print有默認的換行,這裏就把默認的換行改成空的字符串
    print()
分析   如何打印金字塔
‘‘‘

             #max_level=5
    *        #current_level=1,空格數=4,*號數=1
   ***       #current_level=2,空格數=3,*號數=3
  *****      #current_level=3,空格數=2,*號數=5
 *******     #current_level=4,空格數=1,*號數=7
*********    #current_level=5,空格數=0,*號數=9

#數學表達式
空格數=max_level-current_level
*號數=2*current_level-1

‘‘‘

#實現
max_level=5
for current_level in range(1,max_level+1):
    for i in range(max_level-current_level):
        print( ,end=‘‘) #在一行中連續打印多個空格
    for j in range(2*current_level-1):
        print(*,end=‘‘) #在一行中連續打印多個空格
    print()

python全棧開發-Day2 布爾、流程控制、循環