<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] ### 課前準確: * 在`Windows`系統里安裝`python`,參考 [安裝python](http://www.hmoore.net/k12edu/k_12/785427#Windowspython_4) ***** ### 本節課參考書目 * `Teach Your Kids to Code.pdf` 第六章:隨機數和游戲 ***** > Go ahead,Take a Chance! ——加油,抓住機會! ### 什么是隨機數 隨機數和骰子有些類似。在擲骰子之前,我們并不知道擲出的結果是什么,只知道可能的結果是 1~6 之間的某個整數。 隨機數的作用非常大。例如銀行卡的密碼都是用隨機數進行加密的,科學實驗也大量使用隨機數。 ![](https://box.kancloud.cn/0fa9aadf6e6ea776de7c4b1f64163e03_375x236.png) `python` 自帶隨機數生成器工具`random`,這個工具有很多方法。下面這個例子,描述了如何用`randint`方法生成一個 1~10 之間的隨機數。 ``` >>> import random >>> random.randint(1, 10) ``` #### 猜數字 ``` # GuessingGame_6_1.py import random the_number = random.randint(1, 10) guess = int(input("猜一個 1~10 之間的數字: ")) while guess != the_number: if guess > the_number: print(guess, "太大了,再猜猜看。") if guess < the_number: print(guess, "太小了,再猜猜看。") guess = int(input("再猜猜看: ")) print(guess, " ,就是這個數字!你贏了!") ``` #### 從一組數字中隨機選擇顏色 下面這個例子,描述了如何從一個顏色列表里,用`choice`方法隨機選擇一種顏色。 ``` >>> colors = ["red", "yellow", "blue", "green", "orange", "purple", "white", "gray"] >>> random.choice(colors) 'orange' >>> random.choice(colors) 'blue' >>> random.choice(colors) 'white' >>> random.choice(colors) 'purple' >>> ``` ### 石頭剪刀布 這個游戲和我們平時玩的游戲是一樣的,只是這一回和我們游戲的對手不是其他小朋友,而是一部電腦。 這個編程,要完成一些任務: 1. 使用`while`循環控制游戲是繼續還是結束 2. 如果你出的不是"石頭"、"布"、"剪刀"中的一種,電腦要能識別出來,并提醒你這樣是不對的 3. 其他的游戲規則和我們平時用的規則是一樣的。例如,石頭可以打敗剪刀、剪刀可以打敗布、布可以打敗石頭 ``` # RockPaperScissors_6_2.py import random choices = ["石頭", "布", "剪刀"] print("石頭打敗剪刀,剪刀打敗布,布包住石頭。") player = input("你想是石頭、布、 剪刀 (還是退出)? ") while player != "退出": player = player computer = random.choice(choices) print("你選擇了 " +player+ ",計算機選擇了 " +computer+ "。") if player == computer: print("平局!") elif player == "石頭": if computer == "剪刀": print("你贏了!") else: print("計算機贏了!") elif player == "布": if computer == "石頭": print("你贏了!") else: print("計算機贏了!") elif player == "剪刀": if computer == "布": print("你贏了!") else: print("計算機贏了!") else: print("我猜這里面出了點問題。。。") print() player = input("你想是石頭、布、 剪刀 (還是退出)?") ``` ### 打撲克 一副撲克,除了大小王之外,還有52張牌,它們有四種花色,分別是"梅花"、"方塊"、"紅桃"、"黑桃",每種花色有13張牌,分別是"二"、"三"、"四"、"五"、"六"、"七"、"八"、"九"、"十"、"J"、"Q"、"K"、"ace"。 如果我們想在計算機里建立一副撲克,一種方法是把所有的牌寫到一個列表里,就像下面: ``` cards = ["方塊二","方塊三","方塊五",# 剩下的牌...] ``` 不過這種方法太麻煩了,我們觀察一下牌面的特征,一個是花色,一個是面值,所以,我們把花色寫到`suits`這個列表里,把面值寫到`faces`這個列表里,就像下面: ``` suits = ["梅花", "方塊", "紅桃", "黑桃"] faces = ["二", "三", "四", "五", "六", "七", "八", "九", "十", "J", "Q", "K", "ace"] ``` 接下來,我們就可以使用`choice`方法隨機抽取一張撲克牌。 ``` # chapter6_1.py import random suits = ["梅花", "方塊", "紅桃", "黑桃"] faces = ["二", "三", "四", "五", "六", "七", "八", "九", "十", "J", "Q", "K", "ace"] my_face = random.choice(faces) my_suit = random.choice(suits) print("我的牌是", my_suit, my_face) ``` 如果我們想比較哪個花色比較厲害,怎么讓電腦知道“黑桃”比“梅花”厲害呢? 使用`index`方法就可以做到,`index`就是索引的意思,有點類似字典的頁碼,因為“黑桃”的索引是3,“梅花”的索引是0,所以電腦就知道“黑桃”比“梅花”厲害了。 ``` >>> suits = ["梅花", "方塊", "紅桃", "黑桃"] >>> suits.index("梅花") 0 >>> suits.index("黑桃") 3 ``` 下面是和電腦比牌面大小: ``` import random faces = ["二", "三", "四", "五", "六", "七", "八", "九", "十", "J", "Q", "K", "ace"] my_face = random.choice(faces) your_face = random.choice(faces) if faces.index(my_face) > faces.index(your_face): print("我贏了!") elif faces.index(my_face) < faces.index(your_face): print("你贏了!") ``` 如果我們想和電腦有個交互的過程,例如,電腦問我們,還要不要在打牌?然后我們輸入一個答案`answer`,電腦根據`answer`的結果,給一個控制變量,這里是`keep_going`,賦予一個值`True`或者`False`,就像下面: ``` answer = input("按 [Enter]繼續,或者按其他鍵退出: ") if answer == "": keep_going = True else: keep_going = False ``` 更簡單的寫法: ``` answer = input("按 [Enter]繼續,或者按其他鍵退出: ") keep_going = (answer == "") ``` 然后我們把`while`語句給加上,這樣電腦循環問要不要繼續打牌: ``` keep_going = True while keep_going: answer = input("按 [Enter]繼續,或者按其他鍵退出: ") keep_going = (answer == "") ``` 把上面幾段代碼加在一起,有好像真的和人一樣打牌了: ``` import random suits = ["梅花", "方塊", "紅桃", "黑桃"] faces = ["二", "三", "四", "五", "六", "七", "八", "九", "十", "J", "Q", "K", "ace"] keep_going = True while keep_going: my_face = random.choice(faces) my_suit = random.choice(suits) your_face = random.choice(faces) your_suit = random.choice(suits) print("我的牌是", my_suit, my_face) print("你的牌是", your_suit, your_face) if faces.index(my_face) > faces.index(your_face): print("我贏了!") elif faces.index(my_face) < faces.index(your_face): print("你贏了!") else: print("平局") answer = input("按 [Enter]繼續,或者按其他鍵退出: ") keep_going = (answer == "") ``` ### 課程小結 這節課,我們學習了`python`自帶的隨機數`random`,有了這個工具,我們就能做一些簡單的仿真游戲。很多科學實驗,為了節約成本,也會用隨機數的原理,設計成仿真實驗。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看