教自己學Python(三)練手小遊戲:不要猜中
不要猜中的小遊戲
背景
和朋友閒待著兩個人無聊,都想吃蘋果又都不想洗,想起玩過的一個酒桌上猜數字的遊戲,然後在手機上寫了出來,三局兩勝輸了去洗蘋果……
遊戲介紹
零到99(包括邊界),隨機一個數兩人(N人也可以)輪流猜測,如果沒猜中,新的數將做為邊界,一步步縮小可以猜測的範圍,直到猜中為止,比如隨機數是“32”,螢幕首先打印出:
當前範圍是: 0 --- 100
第一次猜:50,螢幕返回
當前範圍是: 0 --- 50
第二次猜:25,螢幕返回
當前範圍是: 25 --- 50
第N次猜中:32,螢幕返回,並結束迴圈
^_^
準備工作
此前我們的程式碼都是在互動環境中完成的,是時候來點不一樣的了。在學前班裡我們介紹了一些文字編輯器,現在召喚一個你喜歡的,然後開始編寫吧。
多行的Python程式碼稍微有些不同,下面的程式碼可以當做是一個參考。良好的程式碼編寫應該是有縮排的,這樣方面人類閱讀和理解,Python直譯器對縮排的要求是嚴格的,也就是說你必須進行縮排,縮排量通常為’2個空格或者4個空格’,注意不要用’Tab’和4個空格混用,因為不同編輯器可能會對’Tab’的縮排理解不同。
那麼問題來了,什麼時候需要縮排呢?大概像下圖中的縮排一樣:
縮排描述的是屬於關係,每有一層屬於關係就需要縮排一次。
寫好了程式後,比如存為abc.py
,
在windows中進入相行目錄,比如C盤下的py_ex,在Windows的命令列中輸入:
C:\>python c:\py_ex\abc.py
或者
cd c:\py_ex\abc.py
C:\py_ex\>python abc.py
在Linux或OSX的終端中輸入python + 檔案路徑,比如要執行家目錄內py_ex中的abc.py檔案:
$ python ~/py_ex/abc.py
程式碼(Python3)
下面的程式碼是Python3的,如果是Python2你還需要在import
之前再加入一行# -*- coding: utf-8 -*-
,來確保程式碼內的中文字元可以執行。
import random rand_num = random.randint(0, 99) left = 0 right = 99 while True: print('當前範圍是:', left, '---', right) test = int(input('再猜一下\n')) if test == rand_num: print('^_^') break if test > rand_num: right = test else: left = test
程式碼註解
第一行我們先引入了一個可以產生隨機數的包,這裡我們需要的是整數所以使用random.randint()方法,這個方法接收兩個引數做為左右邊界,返回一個包含邊界的隨機整數。
第六行,一個永恆迴圈來接收N次猜數,如果猜中break
跳出迴圈。
第八行的input是一個內建函式用來接收輸入資訊,預設接收到的輸入會是str型別,我們對其進行了強制型別轉換,這裡不嚴謹,沒有進行嚴格的輸入驗證。
如果有疑問
有疑問是正常的,因為像if
和while
這樣的控制語句我們之前並沒有提過,但是沒關係,即使沒有提到過,你也一樣看得懂,不是嗎? 這裡看明白就好,後續的章節我們會詳細介紹。
相關推薦
教自己學Python(三)練手小遊戲:不要猜中
不要猜中的小遊戲 背景 和朋友閒待著兩個人無聊,都想吃蘋果又都不想洗,想起玩過的一個酒桌上猜數字的遊戲,然後在手機上寫了出來,三局兩勝輸了去洗蘋果…… 遊戲介紹 零到99(包括邊界),隨機一個數兩人(N人也可以)輪流猜測,如果沒猜中,新的數將做為邊界
教自己學Python(一)基本運算
運算 基本運算 >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5 1.6 >>> 8 / 4
教自己學Python(五)程式碼骨架
程式碼骨架 從前面的內容中,我們已經看到Python的一行程式碼寫完之後,不需要額外加一個的;進行說明。在Guido設計語言時,為了避免輸入太多的括號或者關鍵字,Python中使用縮排來區分程式碼塊,建議使用四個空格進行縮排(不要使用Tab和空格混排)。就像我
java基礎學python(三)--------列表,元組
列表:相當於java中的list用法 下標用法與python中的字串相似也可以用-1等負數來表示 也可以使用*重複用法 可以使用in關鍵字用法 也可以求長度:len(list) for迴圈可以遍歷表內元素 列表的方法: 賦值與java中相似,python中可以用切片的方式給
小白學Python(三)------迴圈
一、while迴圈 <1> while迴圈的格式 while 條件: 條件滿足時,做的事情1 條件滿足時,做的事情2 條件滿足時,做的事情3 … demo: i = 0 while i < 5: print(“當前是第%d次執行迴圈” % (i + 1)) print(
跟我一起學python(三),python基本資料型別和函式
三元運算: 三元運算(三目運算),是對簡單的條件語句的縮寫。 # 書寫格式 result = 值1 if 條件 else 值2 # 如果條件成立,那麼將 “值1” 賦值給result變數,否則,將“值2”賦值給result變數 if a == 1:
如何一天學完python(三)之基礎篇
爬蟲 一個最簡單的爬蟲實現 深複製和淺複製 淺複製就是對引用的拷貝(只拷貝父物件) 深複製就是對對物件的資源的拷貝 兩個標籤指向一個空間,改變任何一個標籤,另一個都會隨之改變 如果不想讓引用之間相互影響 可以使用copy模組 淺拷貝
Python(三)python基本數據類型
python基本數據類型數據類型一、Python支持的數據類型1.變量變量是內存中的一塊區域變量的命名:由字母、數字、下劃線組成並且開頭不能時數字python中地址變量與c語言剛好相反,一條數據包含多個標簽:>>> a=1>>> b=1>>> id(a)3
C語言老司機學Python (二)
append 設計 sta one list 老板 com oob als 標準數據類型: 共6種:Number(數字),String(字符串),List(列表),Tuple(元組),Sets(集合),Dictionary(字典) 本次學習主要是和數據類型混個臉熟,
兄弟連學Python(06)---- 正則表達式匹配規則
驗證 列表 cas 斜杠 小數點 php 能夠 spa 超過 正則表達式 - 匹配規則 基本模式匹配 一切從最基本的開始。模式,是正則表達式最基本的元素,它們是一組描述字符串特征的字符。模式可以很簡單,由普通的字符串組成,也可以非常復雜,往往用特殊的字符表示一個範圍內的字
通過C學Python(1)關於語言、數值類型和變量
而在 有一種 float char 有用 運行時 復數運算 單獨的數 數值類型 強類型語言,不可能出現“程序執行出錯後仍可繼續執行,並且該錯誤導致的問題使後續執行可能出現任意行為”這類錯誤,這類錯誤的例子,如C裏的緩沖區溢出、Jump到錯誤地址。 弱類型語言,類型檢查更不嚴
通過C學Python(3)列表的常用方法
als 字符 return 變量 函數 rem span 通過 body 查看一個對象的id:id(待查對象)檢查一個數據的數據類型:type(數據或變量)查詢一個序列對象的元素個數:len(序列對象)查看一個類有哪些方法可用:dir(數據或變量或類)查看一個類或函數的使用
跟著文檔學Vue(三)——組件基礎
ont err -s fontsize itl IE alert -i -a <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <me
小學生學python(二)
下劃線 spm div apu 數據 cno bgp idl pyc 上一節描述了跟python環境安裝相關的,這一節寫變量及命名。 python是用c語言寫的,所以很多c的思想在裏面。 基本的數據類型有整形,浮點型,字符型。 整形 int 浮點型 fl
小學生學python(四)
title number per for 結束 小學 r語 法規 row 上一篇中用到了for循環,這一節描述下常用的if語句,for語句,while語句。 1. if語句 cars = [‘bmw‘,‘benz‘,‘byd‘,‘ford‘,‘rowei‘] for c
java基礎學python(六)---------------Matplotlib
Matplotlib庫 import matplotlib.pyplot as plt plt.plot([4,1,6,3,8,5]) plt.ylabel("num") plt.savefig(“text”,dpi=600)#dpi:每英寸中包含點的數量,儲存為png檔案,檔案 &n
java基礎學python(五)----------numpy
NumPy(底層用c完成的) 是一個開源的Python科學計算基礎庫 一個強大的N維陣列物件ndarray 廣播函式功能 整合C/C++/Fortran程式碼的工具 線性代數、傅立葉變換、隨機數生成等功能 NumPy是SciPy,Pandas等資料處理或科學計算庫的基礎 n
java基礎學python(四)----------字典,集合
字典 類似於java中的hashmap 建立字典 使用{}建立字典 使用:指明鍵:值對 my_dict = {'John': 86411234, 'Bob': 86419453,'Mike': 86412387} 鍵必須是不可變的且不重複,值可以是
java基礎學python(二)-------------字串
字串 長度:len(string) 重複:*. string*3== stringstringstring 成員運算子(判斷字串是否為另一個字串的子串):in 列舉字串的每一個成員:for 字串索引:從左往右是從下標0開始,從右往左是從下標-1開始,索引運算子:
java基礎學python(一)------------基礎語法
基本物件型別 字串 (string),簡記為 str 使用''或""括起來的一系列字元 整數(integer),簡記為 int 十進位制:21,八進位制:025,十六進位制:0x15 浮點數(float) 1.65,21.0,21.,.21,2.