登入首頁
收藏 0
返回課程
亂數好好玩
  • [自學課程]成為python數據分析達人的第一課
  • [第一周]Python程式基礎I Python的開發環境、串列與繪圖
  • 課程介紹及評分方式
  • 第一週課程簡介
  • 安裝 Anaconda
  • 把 Python 當計算機用
  • Jupyter 的魔術指令
  • 用 Markdown 做筆記
  • 變數好好用
  • List 是數據分析第一步
  • 字串和 hello world
  • 拍拍機器人
  • 助教 Office Hour
  • 上課講義1/3: 前三週用的複習講義
  • [第一周]簡單的課後測驗
  • 重要--windows不能用jupyter notebook的解決辦法
  • [第二週]Python程式基礎II 迴圈、條件判斷
  • 專家訪談 偉涵
  • 第二週課程簡介
  • 條件判斷
  • 用迴圈做拍拍機器人
  • 字串簡簡單單格式化
  • 函數寫法初級
  • 函數的練習
  • List 的切割
  • 很像list的字串切割
  • List 快速生成法
  • for 迴圈
  • 判斷關鍵字有沒有出現在字串中
  • if 條件判斷
  • 亂數好好玩
  • 第二周小測驗
  • [第三週] Python強大的秘密: numpy、向量化與各式套件
  • 專家訪談 庭筠
  • 第三周課程簡介
  • 正規讀套件的方法之一
  • 正規讀套件的方法之二
  • 數據分析的標準動作
  • 處理一整個 list 的數字
  • Array 真是太炫了
  • 用 Array 算成績(加權和)
  • 算全班成績(Python 的 broadcasting)
  • Array 大變身
  • Array 的快速生成法
  • Array 畫圖超方便
  • Array 快篩法
  • 第三周小測驗
  • 助教 Office Hour_week 2+3
  • [第四週] 處理與展示資料的技巧: Python的字典檔與jupyter互動功能
  • 專家訪談 mosky
  • 第四周課程簡介
  • 字典資料型態
  • 超炫的互動功能之一
  • 超炫的互動功能之二
  • 互動應用範例
  • 圖形的互動之一
  • 圖形的互動之 over fitting
  • 互動範例BMI計算器
  • 第四周小測驗
  • [第五週]試算表:pandas數據分析
  • 專家訪談 秋蕙
  • 第五週課程介紹
  • 熊貓是 Python 的 Excel
  • 用熊貓做基本數據分析
  • 組裝自己的 DataFrame
  • 用 Groupby 找到美國最常目擊 UFO 的州
  • Pandas 的 loc 定位法
  • 玩玩真的股票資料
  • 第五周小測驗
  • 第五週作業
  • 助教 Office Hourweek 4+5
  • [第六週]預測未來:用線性迴歸做預測
  • 專家訪談 助教
  • 預測就是學一個函數
  • 線性回歸的基本概念
  • 模擬線性回歸的數據
  • 假的資料真的回歸
  • 過度擬合overfitting
  • 訓練資料和測試資料
  • 用線性回歸預測波士頓房價
  • 畫出各 feature 和輸出關係
  • 第六週小測驗
  • [第七週]成為機器學習專家 機器學習概要
  • 機器學習入門
  • 分類資料的準備
  • SVM做分類
  • 完整畫出我們的分類結果
  • 做鳶尾花的分類
  • 很酷的分類畫圖 contourf
  • 用 KMeans 自動分類
  • 第七周小測驗
  • 助教 Office Hourweek 6+7
  • 課後大補帖
  • 手把手打開Python資料分析大門 @台灣資料科學年會系列活動
  • 索引
  • 重點
  • 討論 (7)
  • 共享筆記 (5)
  • 筆記
長度: 02:40, 發表時間 : 2017-10-24 14:24
觀看次數 : 13,221
  • 02:40
    1. 2 13
Uploaded by NCCU Moocs on 2017-10-13.
附件
長度: 02:40, 發表時間 : 2017-10-24 14:24
觀看次數 : 13,221
Uploaded by NCCU Moocs on 2017-10-13.
原始資料來自 : http://moocs.nccu.edu.tw/media/14476
附件
討論功能僅開放給課程成員,請先加入課程
最新的回應 ...more
2020-10-14
小明 (jackywu15@gmail.com) : Patrick你的for迴圈只有一次,想要一直做下去應該使用while或是把for的range設大一點 例如for i in range(1,10)。 另外你的k也應該要移出到for迴圈之前,ans要移到for迴圈跟if迴圈之間。 最後在else印完correct後要給一個break,否則迴圈會在答對之後繼續跑下去 我稍微把你的程式修改了一下分別以for跟while的方式實作,如圖
2020-10-14
小明 (jackywu15@gmail.com) : 像這樣
2020-10-14
小明 (jackywu15@gmail.com) : 你第三次的輸入其實是你第二次迴圈就問了,所以第三次的結果只是存到message裡面而已根本沒經過判斷式。 把for迴圈裡面if跟elif的message提出來到if前面並且把range改成(1, 4)就可以了,因為要打中文太麻煩了所以我以英文為例: for i in range(1,4): message=input("1~10, 3 times >>") if (float(message)>a): print("lower, have {} times".format(3-i)) elif(float(message)<a): print("higher, have {} times".format(3-i)) else: print("you got it")
2020-07-30
Patrick (kitty93213@gmail.com) : k: print("it's smaller") else: print("correct!") 我的版本↑,但是不知道怎麼將猜錯的答案可以繼續猜下去...'>%pylab inline ans = input(">> ") for i in range(1): k = randint(1, 10) if int(ans) < k: print("it's bigger") elif int(ans) > k: print("it's smaller") else: print("correct!") 我的版本↑,但是不知道怎麼將猜錯的答案可以繼續猜下去...
2020-07-13
于 (fish11540@gmail.com) : [02:10]
百吃不厭 (stallion.tw@gmail.com)
##我的猜數字遊戲作業
%pylab inline
target=randint(1,100)
temp=input("猜數字遊戲, 可以猜10次, 數字在1~100間的整數, 我會給提示, 請猜猜看 >> ")
guess_number=int(temp)
garbage_word=["渣","廢","再努力也沒有用","混","#@%!"]
for i in range(1,11):
if guess_number>target :
temp=input(f"你猜的數字太大了, 你已經猜了{i}次, 真是{garbage_word[randint(len(garbage_word))]}, 再猜猜看 >> " )
guess_number=int(temp)
elif guess_number<target :
temp=input(f"你猜的數字太小了, 你已經猜了{i}次, 真是{garbage_word[randint(len(garbage_word))]}, 再猜猜看 >> " )
guess_number=int(temp)
else :
print(f"你猜對了, 共猜了{i}次, 天才啊!")
break
2020-08-27 1 樓
Huang (pingyu.huang1996@gmail.com)
分享我的作法:

ans = randint(1, 101)
guess = eval(input("Guess a number between 1~100: "))
while (guess != ans):
if (guess > ans):
print("太大了")
guess = eval(input("Guess again: "))
elif (guess < ans):
print("太小了")
guess = eval(input("Guess again: "))
print("Bingo!")
2020-07-26 1 樓
于 (fish11540@gmail.com)
#卡了2個禮拜好挫折感覺自己好笨...希望能幫到跟我一樣笨的人...

%pylab inline

a = randint(1,31)
#取1~30內的亂數答案

m = int(input("猜數字遊戲,範圍1~30的整數。一共有3次機會\n請在此輸入整數>> "))
#設答題者輸入的答案為m,並將輸入的答案字串str轉為整數int

for b in range(1,3): #徊圈2次,加上開頭1次給到答題者總共3次機會

if (m != a): #若輸入的數字不等於答案,則執行if條件
print("猜錯了,剩下{}次機會".format(3 - b))
#提示替減顯示3->2->1
m = int(input("猜數字遊戲,範圍1~30的整數。一共有3次機會\n請在此輸入整數>> "))
#讓答題者答錯時重新輸入答案,m不能是str,不然答案永遠不對...

else:
print("\n恭喜答對,88!")
break
#答對時直接結束徊圈,不然會跑2次else...

if (a != m):
print("\n遊戲結束!\n很可惜,答案是\n{}".format(a))
#若答錯3次遊戲結束,並公布答案
2020-07-14 1 樓
鈺翔 (s751011502@gmail.com)
我的自主練習也是選擇做[猜數字],但有遇到奇怪的狀況,想說貼上來討論一下。

問題圖檔上面是我用 if, elif, else 做條件判斷,但假如在第三次答對答案的情況下,"恭喜答對啦!!" 這句話會被吃掉不見。

我把三個判斷都直接改用 if 後,這個問題就解決了。

但我想問一下這兩種寫法有什麼邏輯上的盲點嗎?怎麼會出現這種奇怪的問題。
問題.png
2020-06-21 1 樓
顯示先前的回應6 則當中的 3 則
昱庭 (s960252@wtps.tp.edu.tw)
((我也是剛學 不太確定說的對不對))
但range(1,3)代表那個迴圈只會執行兩次
如果你是用if, elif, else,那麼在你輸入第三次答案的時候,並不會跑那個迴圈,因此不會有恭喜的那行。但如果你是用三個if 他是當三個迴圈跑,加上你恭喜的那行沒有i的限制,因此儘管次數已經超過了,他還是會跑那行。
((if 那樣寫,其實跟寫在外面沒有縮排是一樣的意思>>附圖為試著把if寫在外面的
2020-06-27 2 樓
昱庭 (s960252@wtps.tp.edu.tw)
如下
2020-06-27 3 樓
裕萍 (b06303130@ntu.edu.tw)
請問自主練習的題目在哪裡呢?我只看到小測驗><
2020-07-11 4 樓
于 (fish11540@gmail.com)
[02:10]
2020-07-13 5 樓
小明 (jackywu15@gmail.com)
你第三次的輸入其實是你第二次迴圈就問了,所以第三次的結果只是存到message裡面而已根本沒經過判斷式。
把for迴圈裡面if跟elif的message提出來到if前面並且把range改成(1, 4)就可以了,因為要打中文太麻煩了所以我以英文為例:
for i in range(1,4):
message=input("1~10, 3 times >>")
if (float(message)>a):
print("lower, have {} times".format(3-i))
elif(float(message)<a):
print("higher, have {} times".format(3-i))
else:
print("you got it")
2020-10-14 6 樓
小明 (jackywu15@gmail.com)
像這樣
2020-10-14 7 樓
Ming (dk22069@gmail.com)
%pylab inline
print("猜數字(範圍1~10)")

y=int(randint(1,11))

while True:
x=int(input("請輸入數字:"))
if (x<=0 or x>=11):
print("Wrong")
continue
elif y<x:
print("再小一點")

elif x>y:
print("再大一點")
else:
print("Right")
break
2020-04-08 1 樓
Lillian (lilianyoyabe@gmail.com)
  
randint(3,21)--->隨便取3到20的整數
2019-09-16 1 樓
chan chan (ricky1232124@gmail.com)
from random import randint
x = randint(1, 101)
i = 0
n = 100
q = 0
while i < 100:
z = float(input(">> "))
if z == x:
print("bingo")
elif z > x :
print(str(z) +"至" + str(min(q,n)))
n = z
elif z < x:
print(str(z) + "至" + str(max(q,n)))
q = z
i = i + 1
2019-09-16 2 樓
妍安 (jenniferchou0101@gmail.com)
樓上 剛剛複製了你的程式碼發現跑不出來耶:(
2020-03-12 3 樓
彣彣 (f113061@gmail.com)
%pylab inline
message=""
a=randint(1,10)

while(message!=a):
message=int(input("猜數字喔 >>"))
if (int(message) > 5):
print("{} ~ 10 之間".format(message))
print("---{}---偷看答案".format(a))
else:
print("{} ~ 5 之間".format(message))
print("---{}---偷看答案".format(a))

print("Bingo")

沒有做完全僅參考喔~~
2020-03-17 4 樓
bing (by20763@gmail.com)
嘗試做了猜數字的遊戲
但while迴圈跟if迴圈都在我猜到一定數量(3~5個)的時候自動停止迴圈
一直沒辦法跑到遊戲結束
不知道為什麼會這樣...
2018-09-19 1 樓
喆明 (s92047s92047@gmail.com)
把你的code貼上來看看吧
2019-01-02 2 樓
Patrick (kitty93213@gmail.com)
%pylab inline
ans = input(">> ")
for i in range(1):
k = randint(1, 10)
if int(ans) < k:
print("it's bigger")
elif int(ans) > k:
print("it's smaller")
else:
print("correct!")

我的版本↑,但是不知道怎麼將猜錯的答案可以繼續猜下去...
2020-07-30 3 樓
小明 (jackywu15@gmail.com)
Patrick你的for迴圈只有一次,想要一直做下去應該使用while或是把for的range設大一點
例如for i in range(1,10)。
另外你的k也應該要移出到for迴圈之前,ans要移到for迴圈跟if迴圈之間。
最後在else印完correct後要給一個break,否則迴圈會在答對之後繼續跑下去
我稍微把你的程式修改了一下分別以for跟while的方式實作,如圖
2020-10-14 4 樓
筆記功能僅開放給課程成員,請先加入課程
Prev
if 條件判斷
Next
第二周小測驗