iT邦幫忙

0

python 打包的EXE檔只執行部分程式就自行結束

new1 2021-09-05 21:43:121478 瀏覽

python 內容如下:
sp = int(input("金額:"))
dp = int(input("倍數:"))
DD=sp*dp
if(DD>=70 and dp <=2):
print("倍數金額",DD,"NTD")
print("為正常範圍")
else:
print("倍數金額",DD,"NTD")
print("此數值須注意")

打包過程如下
我是參考這位youtuber的方式https://www.youtube.com/watch?v=38cqMSqkrG0

產出EXE檔結果如下:
https://ithelp.ithome.com.tw/upload/images/20210905/20141557ict2c12IWF.png
但再按一次enter,EXE檔就自己關掉了,並沒有再繼續執行下面的運算
希望可以提供解決方式,謝謝!

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
3
wrxue
iT邦好手 1 級 ‧ 2021-09-05 21:54:27
最佳解答

他不是沒有運算,而是運算完畢然後自動關閉,你要做的是讓他暫停,在程式最後加上試試吧

import os
os.system("pause")
new1 iT邦新手 5 級 ‧ 2021-09-06 21:20:04 檢舉

多謝,我已經知道問題了,謝謝提供解決小技巧。https://ithelp.ithome.com.tw/upload/images/20210906/20141557choAg8t6wp.png

1
frogsoul
iT邦研究生 5 級 ‧ 2021-09-06 08:17:01

稍微說明清楚一點好了,
程式應該不是沒有繼續往下執行,
而是他執行完後,兩行print跑完程式就結束掉了。
從你呼叫print到視窗真的把內容畫出來,是需要"一點點"反應時間的。
因此你就會看到,視窗來不及顯示出最後兩行print的內容,就被關掉了。

所以,如果你想要的"解決方式",是要把程式執行完,
那麼你甚麼都不用作,他已經是了。

如果你要的是"清楚看到最後的print內容",
那麼答案就是wrxue大提到的方法: 結束前暫停

new1 iT邦新手 5 級 ‧ 2021-09-06 21:21:20 檢舉

謝謝這麼詳細的解釋,又學到新東西。

0
軒尼斯
iT邦新手 4 級 ‧ 2021-09-08 13:47:53

在程式最後加上

input("按下Enter鍵結束")

這個也可以~

new1 iT邦新手 5 級 ‧ 2021-09-08 20:11:09 檢舉

恩恩,謝謝!

我要發表回答

立即登入回答