接續上次的代碼,是不是只有執行一次才就結束,想要再繼續猜,就要在執行一次,是不是有點挺麻煩的?

所以這次我們就來再多做一點點功能進去,讓代碼可以多次循環地執行代碼,Go....

首先,我們先來了解一下,簡單的 while循環 怎麼寫

#!/usr/bin/env python3
# -*- coding:utf-8 -*- count = 0 while True:
print("count:", count)
count += 1 ---------------執行結果--------------- count: 70937
count: 70938
count: 70939
count: 70940
count: 70941
count: 70942
count: 70943
count: 70944

上面的代碼是一個簡單的 while循環 ,這是一個無限的迴圈,只要while為真,就會一直執行不會中斷,需要由使用者自行中斷,

簡單的會了,我們開始來結合上次的代碼

#!/usr/bin/env python3
# -*- coding:utf-8 -*- age_of_ironman = 35 while True:
guess_age = int(input("guess age:"))
if guess_age == age_of_ironman:
print("Bingo, You got it!!!")
elif guess_age > age_of_ironman:
print("You may think smaller...")
else:
print("You may think bigger...") ---------------執行結果--------------- guess age:23
You may think bigger...
guess age:98
You may think smaller...
guess age:84
You may think smaller...
guess age:35
Bingo, You got it!!!
guess age:

咦~有發現什麼不尋常的地方嗎?沒錯,即使你輸入正確了,這遊戲也不會結束,所以我們要在新增一個可以結束遊戲的條件,

要怎麼結束呢? 這時候我們必須在代碼中加入 break 就可以了,再修改一下代碼

#!/usr/bin/env python3
# -*- coding:utf-8 -*- age_of_ironman = 35 while True:
guess_age = int(input("guess age:"))
if guess_age == age_of_ironman:
print("Bingo, You got it!!!")
break
elif guess_age > age_of_ironman:
print("You may think smaller...")
else:
print("You may think bigger...") ---------------執行結果--------------- guess age:39
You may think smaller...
guess age:28
You may think bigger...
guess age:59
You may think smaller...
guess age:39
You may think smaller...
guess age:35
Bingo, You got it!!! Process finished with exit code 0

這樣又達成目的了,可是我們想要限制這個遊戲猜只能猜三次,三次猜不中就退出遊戲,該怎麼寫呢?

這時候就需要一個計數器來協助完成這次的任務,所以再為代碼稍稍加強一下功能

#!/usr/bin/env python3
# -*- coding:utf-8 -*- age_of_ironman = 35 count = 0 while True:
if count >= 3:
break
guess_age = int(input("guess age:"))
if guess_age == age_of_ironman:
print("Bingo, You got it!!!")
break
elif guess_age > age_of_ironman:
print("You may think smaller...")
else:
print("You may think bigger...")
count += 1 ---------------執行結果--------------- # 故意猜超過三次,看看結果
guess age:1
You may think bigger...
guess age:1
You may think bigger...
guess age:1
You may think bigger... Process finished with exit code 0 # 先試試在三次內打對密碼,看看結果
guess age:3
You may think bigger...
guess age:36
You may think smaller...
guess age:35
Bingo, You got it!!! Process finished with exit code 0

hmm...上面代碼成功達成條件了,接下來我們要來想想,怎麼優化這個代碼?

上面代碼是不是可以把 if count >= 3: 放進 while 裡,修改一下代碼

#!/usr/bin/env python3
# -*- coding:utf-8 -*- age_of_ironman = 35 count = 0 while count <= 3:
guess_age = int(input("guess age:"))
if guess_age == age_of_ironman:
print("Bingo, You got it!!!")
break
elif guess_age > age_of_ironman:
print("You may think smaller...")
else:
print("You may think bigger...")
count += 1 ---------------執行結果--------------- # 故意猜超過三次,看看結果
guess age:1
You may think bigger...
guess age:69
You may think smaller...
guess age:34
You may think bigger... Process finished with exit code 0 # 先試試在三次內打對密碼,看看結果
guess age:32
You may think bigger...
guess age:35
Bingo, You got it!!! Process finished with exit code 0

while count < 3 就會變成有條件的,當count 小於 3就執行,如果大於3,就不執行。

但還是有稍微美中不足的地方,就是輸入超過三次,並沒有打印出任何訊息,會讓人感覺有點莫名其妙,

所以再修改一下代碼

#!/usr/bin/env python3
# -*- coding:utf-8 -*- age_of_ironman = 35 count = 0 while count <= 3:
guess_age = int(input("guess age:"))
if guess_age == age_of_ironman:
print("Bingo, You got it!!!")
break
elif guess_age > age_of_ironman:
print("You may think smaller...")
else:
print("You may think bigger...")
count += 1 print("You have tried too many, exit") ---------------執行結果---------------
# 故意猜超過三次,看看結果
guess age:3
You may think bigger...
guess age:3
You may think bigger...
guess age:3
You may think bigger...
You have tried too many, exit Process finished with exit code 0 # 先試試在三次內打對密碼,看看結果
guess age:4
You may think bigger...
guess age:35
Bingo, You got it!!!
You have tried too many, exit Process finished with exit code 0

咦~怎麼打對密碼也顯示 You have tried too many, exit,看來還做得不夠好,再修改一下代碼

#!/usr/bin/env python3
# -*- coding:utf-8 -*- age_of_ironman = 35 count = 0 while count <= 3:
guess_age = int(input("guess age:"))
if guess_age == age_of_ironman:
print("Bingo, You got it!!!")
break
elif guess_age > age_of_ironman:
print("You may think smaller...")
else:
print("You may think bigger...")
count += 1 if count == 3:
print("You have tried too many, exit") ---------------執行結果---------------
# 故意猜超過三次,看看結果
guess age:1
You may think bigger...
guess age:2
You may think bigger...
guess age:3
You may think bigger...
You have tried too many, exit Process finished with exit code 0 # 先試試在三次內打對密碼,看看結果
guess age:15
You may think bigger...
guess age:35
Bingo, You got it!!! Process finished with exit code 0

呼,這次終於都對了…

可是我們還有另一種更牛逼的寫法,是 Python 特有的寫法

就讓我們最後一次修改代碼,讓它看起來更牛逼點!!!

#!/usr/bin/env python3
# -*- coding:utf-8 -*- age_of_ironman = 35 count = 0 while count <= 3:
guess_age = int(input("guess age:"))
if guess_age == age_of_ironman:
print("Bingo, You got it!!!")
break
elif guess_age > age_of_ironman:
print("You may think smaller...")
else:
print("You may think bigger...")
count += 1
else:
print("You have tried too many, exit") ---------------執行結果---------------
# 故意猜超過三次,看看結果
guess age:4
You may think bigger...
guess age:5
You may think bigger...
guess age:6
You may think bigger...
You have tried too many, exit Process finished with exit code 0 # 先試試在三次內打對密碼,看看結果
guess age:7
You may think bigger...
guess age:67
You may think smaller...
guess age:35
Bingo, You got it!!! Process finished with exit code 0

終於完成了,但這個是怎麼判斷的呢?請看下圖

Python 基礎 - while流程判斷的更多相关文章

  1. Python 基礎 - for流程判斷

    今天介紹另一個循環判斷式 for循環,首先,先寫一個很簡單的 for循環的代碼 #!/usr/bin/env python3 # -*- coding:utf-8 -*- for i in range ...

  2. Python 基礎 - if else流程判斷

    hmm~前面講了那麼多,終於可以稍稍的正式進入另一個階段,沒錯,要開始寫判斷式了 這次先從最簡單的判斷式開始,if else 開始- Go 首先,之前有寫有一個簡單的互動式 用戶輸入 的代碼,忘記了嗎 ...

  3. Python 基礎 - pyc 是什麼

    Python2.7 版中,只要執行 .py 的檔案後,即會馬上產生一個 .pyc 的檔案,而在 Python3 版中,執行 .py 的檔案後,即會產生一個叫 __pycache__ 的目錄,裡面也會有 ...

  4. Python 基礎 - 文件操作_v2

    嗯,那如何要把游標的位置給打印來? #!/usr/bin/env python3 # -*- coding:utf-8 -*- f = open('test', 'r') print(f.tell() ...

  5. Python 基礎 - 字典的操作使用

    接下來介紹字典,這在未來工作上,會是很常使用的,就來好好了解一下唄- 字典是一個 key(鍵)-value(值) 的數據類型,可以儲存很多訊息 #!/usr/bin/env python3 # -*- ...

  6. Python 基礎 - 字符串常用操作

    字符串常用操作 今天就介紹一下常用的字符串操作,都是以 Python3撰寫的 首字母變大寫 #!/usr/bin/env python3 # -*- coding:utf-8 -*- name = & ...

  7. GO語言基礎教程:流程控制

    在開始一個新的章節之前先來回顧上一篇文章的部份,首先我們來看這段代碼: package main import ( "fmt" ) func main(){ var x,y int ...

  8. Python 基礎 - 集合的使用

    集合是一個無序的,不重複的數據組合,主要的作用如下 去重,把一個列表變成集合,就會自動去重了. 關係測試,測試二組數據之前的交集.差集.聯集等關係. 接下來我們來實作看看什麼是去重 #!/usr/bi ...

  9. python基礎學習第二天

    字符编码 # 需知:## 1.在python2默认编码是ASCII, python3里默认是unicode## 2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf ...

随机推荐

  1. VS2010/2012配置优化记录笔记

    VS2010/2012配置优化记录笔记 在某些情况下VS2010/2012运行真的实在是太卡了,有什么办法可以提高速度吗?下面介绍几个优化策略,感兴趣的朋友可以参考下,希望可以帮助到你   有的时候V ...

  2. php中的匿名函数和闭包(closure)

    一:匿名函数 (在php5.3.0 或以上才能使用) php中的匿名函数(Anonymous functions), 也叫闭包函数(closures), 允许指定一个没有名称的函数.最常用的就是回调函 ...

  3. 关于Java项目打包

    可以选择以下几种办法: 一.使用Eclipse,右键项目导出jar. 二.使用Eclipse,右键项目导出runnable jar. 三.使用Eclipse 插件fat jar,导出可执行的jar包. ...

  4. WPF-非矩形窗口的创建

    第一.窗口的AllowsTransparency设置为True 第二.窗口的Background设置为Transparent 第三.窗口的WindowStyle设置为None 第四.窗口内的Grid用 ...

  5. Scrum Meeting 4-20151204

    任务安排 姓名 今日任务 明日任务 困难 董元财 学习上拉加入新的listview 无 胡亚坤 设计优化聊天页面 无 刘猛 请假(参加编译测试,提前准备) 无 马汉虎 请假(参加编译测试,提前准备) ...

  6. 【转】Linux系统启动过程分析

    [转]Linux系统启动过程分析 转自:http://blog.chinaunix.net/uid-23069658-id-3142047.html 经过对Linux系统有了一定了解和熟悉后,想对其更 ...

  7. Uiautomator ——API详解

    版权声明:本文出自carter_dream的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4921701.html 简单的例子 以一个简 ...

  8. Deep Learning 12_深度学习UFLDL教程:Sparse Coding_exercise(斯坦福大学深度学习教程)

    前言 理论知识:UFLDL教程.Deep learning:二十六(Sparse coding简单理解).Deep learning:二十七(Sparse coding中关于矩阵的范数求导).Deep ...

  9. DB2表分区删除

    近日,由于部门数据库读库空间过小,提出删除掉两个月之前日志表的分区(数据库分区是按时间月分区),记述如下: 上网搜索资料发现删除表分区大概分这么几步: 1.查询需要删除掉的分区: select t.D ...

  10. 优雅地在markdown插入图片

    markdown 中插入图片,好烦!!!   喜欢用Markdown写文字,但是它的图片引用是一个大问题(当然csdn不会遇到这个问题).借用第三方将图片储存在印象笔记上是一个好办法.但是会出现的一个 ...