iT邦幫忙

0

使用cmd執行.py檔和直接雙擊.py檔,程式執行結果不同

在網路上搜尋python猜數字的簡單程式,但寫完之後發現
直接雙擊.py檔跳出小黑窗,猜到數字後不會印出字串,會直接關閉
但是先打開cmd之後再cd指定.py檔,程式卻可以正常執行(猜到數字後可以印出字串)
有人知道原因為何嗎?

程式碼如下:
import random
rang1 = int(input("請設定本局遊戲的最小值:"))
rang2 = int(input("請設定本局遊戲的最大值:"))
num = random.randint(rang1, rang2)
guess = "guess"
print("數字猜謎遊戲!")
i = 0
while guess != num:
i += 1
guess = int(input("請輸入你猜的數字:"))

if guess == num:
    print("恭喜,你猜對了!")
elif guess < num:
    print("你猜的數小了...")
else:
    print("你猜的數大了...")

print("你總共猜了%d" % i + "次", end='')
print(",快和你朋友較量一下...")

淺水員 iT邦高手 3 級 ‧ 2020-10-13 09:42:03 檢舉
我猜直接點兩下的狀況是印出來後馬上關閉
直接點兩下還是可以執行程式,只是猜到數字後會馬上關閉
石頭 iT邦新手 1 級 ‧ 2020-10-13 09:57:49 檢舉
只要你的反應速度夠快你還是可以看到的

2 個回答

3

直接運行的話,視會在運行完後直接關閉視窗的。
所以你得再加上一個類似pause的效果才行。

看更多先前的回應...收起先前的回應...

那為啥用cmd開啟,運行完不會直接關閉視窗,會停在那裡

Franky Chen iT邦研究生 3 級 ‧ 2020-10-13 10:15:16 檢舉

他不是停在那裡,他在等下一個command

你會問這個問題,說真的很想給你巴下去。
你直接開敵cmd,有沒有自動關閉呢??為什麼它不會關

因為你已經啟用了cmd這樣的一個容器了。
它會一直再等待你下指令,或是關閉它。
自然你在運行py,py運行結束後。還是會再那邊等待你下命令。

但直接點擊py時。是py去運行程式。它會臨時用cmd來運行。
這個臨時的cmd,它並不會等待你下命令。所以一但運行完了。
對它來說,任務也結束了。自然就會關掉它了。
(你又沒叫我等...)

這樣懂嘛??

一個是 cmd -> py cmd本身會等待
另一種是 py =>(載入) cmd
py結束就會跟著結束

peter4405 iT邦新手 5 級 ‧ 2020-10-13 15:50:07 檢舉

氣到把啟跟敵打錯了/images/emoticon/emoticon16.gif

嗯嗯 了解了!
請大師請高抬貴手,小弟初學者QQ /images/emoticon/emoticon16.gif

2
japhenchen
iT邦大師 1 級 ‧ 2020-10-13 10:42:21

py檔的最後加一行

input("按任一鍵結束..")

it works!
thank you

我要發表回答

立即登入回答