# 用Python設計的第一個游戲 +習題復習


python里沒有大括號之類的,用縮進來表示TAB。縮進是Python的靈魂,縮進的嚴苛要求使得python的代碼寫得非常精簡,并且有層次,對待python要十分小心,因為沒有正確使用縮進就會報錯,縮進的錯誤使用就像c語言括號打錯位置那么嚴重,if和else后面有冒號,當回車的IDLE會幫我們自動縮進。
input是python的內置函數,返回了一個輸入的值給temp,temp是一個字符串變量,在python里邊沒有分類型的,只是input返回的是一個字符串類型的,所以temp就是字符串的,在用內置函數int轉化為整型,再給guess,如果guess等于8就執行縮進的內容
## BIF == Built-in functions
BIF就是內置函數,其他編程語言也有很多的BIF,內置函數時為了方便程序員快速的編寫程序,python是一個腳本程序,腳本程序就是要求編程速度要快,腳本就是輔助科學運算的,python提供了很多內置函數,我們只需要調用就可以了,不需要這個函數具體怎么操作完成的。
```
<<<dir(__builtins__)
```

輸入dir(\_\_builtins\_\_)可以看到,里面純小寫的都是BIF函數,可以用help(參數)查詢你想知道內置函數的作用是什么?英文看不懂可以去翻譯能理解大概意思

## 溫故知新之習題
- 0. 什么是 BIF?
> 答:BIF 就是 Built-in Functions ,內置函數。為了方便程序員快速編寫腳本程序 (腳本就是要編程速度快快快!!!), Python 提供了非常豐富的內置函數,我們只需要直接調用即可,例如 print() 的功能是"打印到屏幕", input() 的作用是接收用戶輸入 (注:Python3 用 input() 取代了 Python2 的 raw_input() ,用法如有不懂請看視頻講解
- 1. 用課堂上小甲魚教的方法數一數 Python3 提供了多少個 BIF?
> 答:在Python 或 IDLE 中,輸入 dir(__builtins__) 可以看到 Python 提供的內置方法列表(注意, builtins 前后是兩個下劃線哦)其中小寫的就是 BIF。如果想具體查看某個 BIF 的功能,比如 input() ,可以在 shell 中輸入 help(input) ,就會得到這個 BIF 的功能描述。純小寫,純,應該不包括下劃線吧,我數了 73 個。
- 2. 在 Python 看來: 'FishC' 和 'fishc' 一樣嗎?
> 答:不一樣,因為 Python 是一個"敏感的小女孩",所以不要試圖欺騙她,對Python 來說, fishc 和 FishC 是完全不同的兩個名字,所以編程的時候一定要當心。不過 Python 會幫助解決可能因此出現的問題,例如只有當標識符已經賦值后(還記得嗎,小甲魚在課堂中說過 Python 的變量是不用先聲明的)才能在代碼中使用, 未賦值的標識符直接使用會導致運行時錯誤, 所以你很快就可以根據經驗發現此問題。
- 3. 在小甲魚看來, Python 中什么是最重要的?你贊同嗎?
> 答:縮進!在小甲魚看來,縮進是 Python 的靈魂,縮進的嚴格要求使得 Python 的代碼顯得非常精簡并且有層次(小甲魚閱讀過很多大牛的代碼,那個亂 …C語言不是有國際亂碼大賽嘛 …)。所以在 Python 里對待縮進代碼要十分小心,如果沒有正確地縮進,代碼所做的事情可能和你的期望相去甚遠(就像 C 語言里邊括號打錯了位置)。如果在正確的位置輸入冒號" : ", IDLE 會自動將下一行縮進!)
>
- 4.這節課的例子中出現了" = "和" == ",他們表示不同的含義,你在編程的過程中會不小心把" == "誤寫成" = "嗎?有沒有好的辦法可以解決這個問題呢?
> 答:C 語言的話,如果 if( c == 1 ) 寫成 if( c = 1 ) ,程序就完全不按程序員原本的目的去執行,但在 Python 這里,不好意思,行不通,語法錯誤! Python 不允許 if 條件中賦值,所以 if c = 1: 會報錯!小甲魚覺得這種做法可以非常有效的防止程序員因為打炮、 熬夜等問題導致粗心的 BUG ,并且這類 BUG 殺傷力都巨大!
- 5. 你聽說過"拼接"這個詞嗎?
>答:在一些編程語言,我們可以將兩個字符串"相加"在一起,如: 'I' + 'Love' + 'FishC' 會得到 'ILoveFishC' ,在 Python 里,這種做法叫做拼接字符串。
## 動動手系列
- 1. 編寫程序:hello.py,要求用戶輸入姓名并打印“你好,姓名!”


- 2. 編寫程序:calc.py 要求用戶輸入1到100之間數字并判斷,輸入符合要求打印“你妹好漂亮”,不符合要求則打印“你大爺好丑”

- 一、Python基礎
- 1. 序言
- 1.1 Python簡介
- 1.2 安裝和使用IDE
- 1.3 語言特性和基礎概念
- 2. 基本數據類型
- 2.2 字符串型
- 2.2.2 ASCII簡介
- 2.2.4 字符串常用函數
- 3. 條件分支
- 3.3 閑聊條件判斷和運算符優先級
- 10.正則表達式
- 【降龍十八章】Python小技巧
- 18.1 學習網址
- 18.2 PIP切換源
- 18.3 使用whl來安裝
- 【工具優化】IDE優化技巧
- Anaconda
- Jupyter Notebook 的 Markdown 添加大綱
- Jupyter Notebook中圖片縮放和居左
- Anaconda設置環境變量
- Pycharm
- PyCharm新建文檔配置
- 設置字體和字號
- 設置主題和字體配色
- 保存和導入配置
- 設置對選擇內容自動添加引號
- 推薦安裝的插件
- Markdown
- 表格格式
- 二、Python進階
- copy和deepcopy
- 《零基礎入門學習 Python 》【小甲魚版】
- 001.和Python的第一次接觸+習題復習
- 002.用Python設計的第一個游戲 +習題復習
- Pygame詳解
- Pygame詳解:前言
- Pygame詳解(一):Color類
- Pygame詳解(二):display 模塊
- Pygame詳解(三):draw 模塊
- Pygame詳解(四):event 模塊
- Pygame詳解(五):font 模塊
- Pygame詳解(六):image 模塊
- Pygame詳解(七):key 模塊
- Pygame詳解(八):locals 模塊
- Pygame詳解(九):mixer 模塊
- Pygame詳解(十):mouse 模塊
- Pygame詳解(十一):Rect 對象
- Pygame詳解(十二):Surface 對象
- Pygame詳解(十三):time 模塊
- Pygame詳解(十四):music 模塊
- Pygame詳解(十五):pygame 模塊
- Pygame詳解(十六):cursors 模塊
- Pygame詳解(十七):joystick 模塊
- Pygame詳解(十八):mask 模塊
- Pygame詳解(二十一):BufferProxy 對象
- Pygame詳解(二十三):gfxdraw 模塊
- Pygame詳解(二十五):Overlay 對象
- Pygame詳解(二十八):sndarray 模塊
- Pygame詳解(三十一):camera 模塊
- Pygame詳解(三十二):cdrom 模塊
- Pygame詳解(三十六):version 模塊
- pygame rect相關知識
- Tkinter詳解
- Tkinter 組件詳解(一):Label
- Tkinter 組件詳解(二):Button