1. 程式人生 > >python全棧開發【第四篇】Python流程控制

python全棧開發【第四篇】Python流程控制

int 語法 password sat code 修改 就是 bre and

十二 流程控制之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(‘阿姨好‘)

在表白的基礎上繼續: 
如果表白成功,那麽:在一起 
否則:打印。。。

age_of_girl=18 
height=171 
weight=99 
is_pretty=True

success=False

if age_of_girl >= 18 and age_of_girl < 22 and height > 170 and weight < 100 and is_pretty == True: 
if success: 
print(‘表白成功,在一起‘) 
else: 
print(‘什麽愛情不愛情的,愛nmlgb的愛情,愛nmlg啊…‘) 
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:  

    縮進的代碼塊

  

!/usr/bin/env python

name=input(‘請輸入用戶名字:‘) 
password=input(‘請輸入密碼:‘)

if name == ‘egon‘ and password == ‘123‘: 
  print(‘egon login success‘) 
else: 
  print(‘用戶名或密碼錯誤‘)
練習一:用戶登陸驗證

  

#!/usr/bin/env python
#根據用戶輸入內容打印其權限

‘‘‘
egon --> 超級管理員
tom  --> 普通管理員
jack,rain --> 業務主管
其他 --> 普通用戶
‘‘‘
name=input(‘請輸入用戶名字:‘)

if name == ‘egon‘:
    print(‘超級管理員‘)
elif name == ‘tom‘:
    print(‘普通管理員‘)
elif name == ‘jack‘ or name == ‘rain‘:
    print(‘業務主管‘)
else:
    print(‘普通用戶‘)

練習二:根據用戶輸入內容輸出其權限

# 如果:今天是Monday,那麽:上班
# 如果:今天是Tuesday,那麽:上班
# 如果:今天是Wednesday,那麽:上班
# 如果:今天是Thursday,那麽:上班
# 如果:今天是Friday,那麽:上班
# 如果:今天是Saturday,那麽:出去浪
# 如果:今天是Sunday,那麽:出去浪


#方式一:
today=input(‘>>: ‘)
if today == ‘Monday‘:
    print(‘上班‘)
elif today == ‘Tuesday‘:
    print(‘上班‘)
elif today == ‘Wednesday‘:
    print(‘上班‘)
elif today == ‘Thursday‘:
    print(‘上班‘)
elif today == ‘Friday‘:
    print(‘上班‘)
elif today == ‘Saturday‘:
    print(‘出去浪‘)
elif today == ‘Sunday‘:
    print(‘出去浪‘)
else:
    print(‘‘‘必須輸入其中一種:
    Monday
    Tuesday
    Wednesday
    Thursday
    Friday
    Saturday
    Sunday
    ‘‘‘)

#方式二:
today=input(‘>>: ‘)
if today == ‘Saturday‘ or today == ‘Sunday‘:
    print(‘出去浪‘)

elif today == ‘Monday‘ or today == ‘Tuesday‘ or today == ‘Wednesday‘     or today == ‘Thursday‘ or today == ‘Friday‘:
    print(‘上班‘)

else:
    print(‘‘‘必須輸入其中一種:
    Monday
    Tuesday
    Wednesday
    Thursday
    Friday
    Saturday
    Sunday
    ‘‘‘)


#方式三:
today=input(‘>>: ‘)
if today in [‘Saturday‘,‘Sunday‘]:
    print(‘出去浪‘)
elif today in [‘Monday‘,‘Tuesday‘,‘Wednesday‘,‘Thursday‘,‘Friday‘]:
    print(‘上班‘)
else:
    print(‘‘‘必須輸入其中一種:
    Monday
    Tuesday
    Wednesday
    Thursday
    Friday
    Saturday
    Sunday
    ‘‘‘)

練習三

  

十三 流程控制之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時,則退出整個程序

實現一:
name=‘egon‘
password=‘123‘

while True:
inp_name=input(‘用戶名: ‘)
inp_pwd=input(‘密碼: ‘)
if inp_name == name and inp_pwd == password:
while True:
cmd=input(‘>>: ‘)
if not cmd:continue
if cmd == ‘quit‘:
break
print(‘run <%s>‘ %cmd)
else:
print(‘用戶名或密碼錯誤‘)
continue
break

實現二:使用tag
name=‘egon‘
password=‘123‘

tag=True
while tag:
inp_name=input(‘用戶名: ‘)
inp_pwd=input(‘密碼: ‘)
if inp_name == name and inp_pwd == password:
while tag:
cmd=input(‘>>: ‘)
if not cmd:continue
if cmd == ‘quit‘:
tag=False
continue
print(‘run <%s>‘ %cmd)
else:
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 ------

6 while循環練習題
  1. 使用while循環輸出1 2 3 4 5 6 8 9 10
  2. 求1-100的所有數的和
  3. 輸出 1-100 內的所有奇數
  4. 輸出 1-100 內的所有偶數
  5. 求1-2+3-4+5 … 99的所有數的和
  6. 用戶登陸(三次機會重試)
    7:猜年齡遊戲
    要求:
    允許用戶最多嘗試3次,3次都沒猜對的話,就直接退出,如果猜對了,打印恭喜信息並退出
    8:猜年齡遊戲升級版
    要求:
    允許用戶最多嘗試3次
    每嘗試3次後,如果還沒猜對,就問用戶是否還想繼續玩,如果回答Y或y, 就繼續讓其猜3次,以此往復,如果回答N或n,就退出程序
    如何猜對了,就直接退出

題一
count=1
while count <= 10:
if count == 7:
count+=1
continue
print(count)
count+=1

count=1
while count <= 10:
if count != 7:
print(count)
count+=1

題目二
res=0
count=1
while count <= 100:
res+=count
count+=1
print(res)

題目三
count=1
while count <= 100:
if count%2 != 0:
print(count)
count+=1

題目四
count=1
while count <= 100:
if count%2 == 0:
print(count)
count+=1

題目五
res=0
count=1
while count <= 5:
if count%2 == 0:
res-=count
else:
res+=count
count+=1
print(res)

題目六
count=0
while count < 3:
name=input(‘請輸入用戶名:‘)
password=input(‘請輸入密碼:‘)
if name == ‘egon‘ and password == ‘123‘:
print(‘login success‘)
break
else:
print(‘用戶名或者密碼錯誤‘)
count+=1

題目七
age_of_oldboy=73

count=0
while count < 3:
guess=int(input(‘>>: ‘))
if guess == age_of_oldboy:
print(‘you got it‘)
break
count+=1

題目八
age_of_oldboy=73

count=0
while True:
if count == 3:
choice=input(‘繼續(Y/N?)>>: ‘)
if choice == ‘Y‘ or choice == ‘y‘:
count=0
else:
break

guess=int(input(‘>>: ‘))
if guess == age_of_oldboy:
    print(‘you got it‘)
    break
count+=1

十四 流程控制之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,ij),end=‘ ‘)
print()
for+else

python全棧開發【第四篇】Python流程控制