導航:首頁 > 編程語言 > python判斷程序是否運行

python判斷程序是否運行

發布時間:2024-02-07 06:04:27

❶ 如何判斷python程序運行在cmd中或pycharm中

取巧的辦法,判斷是不是文件右鍵運行的
import time
import os

for i in range(100):
# 不是pycharm運行
if __name__ != '__main__':
print(i)
time.sleep(0.1)
os.system('cls')
# 是pycharm右鍵運行
else:
print(f'\r{i}',end='',flush=True)
time.sleep(0.1)

❷ python怎麼看程序是否在運行

你說的文件有沒有運行,指的是什麼意思?是說一個應用程序有沒有被運行?還是一個文件讀取到尾巴了?

❸ python判斷是否繼續

python判斷是否繼續是因為你的代碼發生了錯誤。
在執行第一個文件後,程序停止並詢問是否繼續批處理。這會導致用戶輸入延遲。希望我的回答能夠幫到你,如果不明白,您可以繼續追問!謝謝!祝您生活愉快!

❹ python提供了哪三個非常重要的語句來應對python程序在運

1、If語句詳解與實踐
之前已經用過很多次If函數了,這邊我再做一個簡單介紹和一些新內容的補充吧,If函數的底層邏輯就是用來判斷,如果滿足條件則執行下面的語句。
基本的語法邏輯如下,注意記得寫冒號及代碼前的縮進:

if 條件:
代碼1
else:
代碼2
1
2
3
4
其中兩個注意點,之前也提過了,就是縮進與英文格式的標點符號,有的時候,你忘記縮進或者冒號是中文格式的時候,程序就會報錯,不過Pycharm和Spyder都會在那一行提醒你這一行的寫法有問題,所以倒也不用太擔心。
現在我們再來看看之前寫過這個代碼,是不是會感覺清晰很多呢。

score = 100
year = 2018
if (score < 0) and (year == 2018):
print('錄入資料庫')
else:
print('不錄入資料庫')
1
2
3
4
5
6
我們下面再補充些內容,其實掌握上面的內容已經完全足夠了,下面的只是作為一個知識點的補充。比如你考試考了80分,最簡單的是:

score = 85
if score >= 60:
print('及格')
else:
print('不及格')
1
2
3
4
5
我相信現在大家看這個代碼已經完全沒有問題了,輸出肯定是『及格』。那如果我除了想判斷是否及格外,還想看它是否優秀(大於80分),則輸出『優秀』,該怎麼弄呢。

score = 55
if score >= 80:
print('優秀')
elif (score >= 60) and (score < 80):
print('褲豎及格')
else:
print('不及格')
1
2
3
4
5
6
7
這邊唯一的一個不同,就是中間加入了一個elif,這個其實就是elseif的縮寫,用來提供多個結果使用的,
其實這個我做項目的時候基本沒有用過,大家簡單了解下即可。

2、For語句詳解與實踐
For語句之前有提到過一次,它的重要程度可以說僅次於If語句了,它的底層邏輯是循環,其實While的底層邏輯是循環,不過還是For用的更加普遍些。
For語句的常見使用格式為,注意記得寫冒號及代碼前的縮進:

for i in 區域:
代碼
1
2
先舉個之前講列表的時候講過的例子:

class1 = ['丁一', '王二麻子', '張三', '李四', '趙五']
for i in class1:
print(i)
1
2
3
用大白話來說就是:

列表class1 = ['丁一', '王埋純茄二麻子', '張三', '李四', '趙五']
對於class1中的所有元素i:
我們都把它列印輸出出來
1
2
3
這個輸出代碼為:

丁一
王二麻子
張三
李四
趙五
1
2
3
4
5
這個i可以換成任何東西,比如你換成j,換成一個字元串,只要和下面的print()裡面的內容匹配即可。
比如我們可以寫:

class1 = ['丁一', '王二麻子', '張三', '李四', '趙五']
for haha in class1:
print(haha)
1
2
3
這樣輸出的結果其實是一樣的。
For語句還通常與range()函數合用,range函數的話其實就是一個類似於list的東西,只不過它可能更像list的長度,你想循環多少次,在range的括弧里填寫幾就可以,比如我寫for i in range(3),那麼它就是循環3次:

for i in range(3):
print('hahaha')
1
2
這個它就會輸出三行『hahaha』。
我擔心大家可能會對這個for i in range(3)中的i還有疑惑,剛剛i不是代表列表裡的每一個元素嗎,這邊這個i又是什麼意思呢?這邊我給大家做一個偷懶的總結:
(1)對於"for i in 區域"來說,如果說這個區域是一個列表,那麼那個i就表示這個列表裡的每一個元素;
(2)對於"for i in 區域"來說,如果說這個區域是一個range(n),那麼那個i就表示0到n -1這n個數字,之前提到過,python中序號都是從0開始的,所以這邊彎察也是從0開始,到n - 1結束。
(3)對於"for i in 區域"來說,如果說這個區域是一個字典,那麼i表示的就是字典的中的鍵(了解即可,很長一段時間用不到)
還有個非常重要的知識點:for i in range(5)的話,它的確會循環5次,但要注意,在python中,第一個元素的序號其實是0,所以如果我們輸入如下代碼:

for i in range(5):
print(i)
1
2
那麼輸出的結果是從0開始的,也就是0到4

0
1
2
3
4
1
2
3
4
5
這時候你可能要問,這玩意有什麼用?下面我就以輿情監控中的實戰來給大家講解下for語句在爬蟲實戰中的應用:

title = ['標題1','標題2','標題3','標題4','標題5']
for i in range(len(title)): #len(title)表示一個有多少個新聞,這里是5
print(str(i+1) + '.' + title[i]) #這個其實把字元串進行一個拼接
1
2
3
上面這幾行代碼已經很大程度就是你做項目實戰用到的代碼了,暫時看著有點暈也沒有關系,我在教學視頻里會詳細介紹下的。我先用大白話來解釋下這幾行代碼在幹嘛:

爬到了一些新聞標題,放到了title這個列表裡
用len(title)來獲取一共有多少條新聞,並利用for和range語句來進行循環:
列印輸出新聞標題,並且在前面加上序號
1
2
3
輸出結果如下圖所示:

其中有幾個小注意點,
(1)range(len(title))這邊就相當於range(5),因為len(title)就等於5,所以for i in range(len(title))就是循環5次,這里的i就表示數字0-4。
(2)為什麼要寫str(i + 1),因為我們要標序號,'標題1』是字元串形式的,而i是數字,我們講過數字和字元串不能直接相加,所以要用str函數進行下轉換。
(3)至於為什麼不是str(i),而是str(i + 1)。是因為之前講列表的時候提到過,在編程中,第一個序號都是0,比如之前列表裡講過的class1[0]表示「丁一」一樣,這邊如果寫str(i)的話,那麼輸出的第一個序號就是「0.標題1」了。
(4)因為這里的i就表示數字0-4,title[i]的話,表示列表中的第i+1個元素,所以title[0]的話就表示第1個元素,title[4]就表示第5個元素。

通過for循環和range()函數和len()函數的聯合使用,可以同時列印多個列表中的元素,代碼如下:

# 在實戰中的應用(可以同時列印多個列表中的內容)
title = ['標題1', '標題2', '標題3', '標題4', '標題5']
href = ['網址1', '網址2', '網址3', '網址4', '網址5']
for i in range(len(title)): # len(title)表示一個有多少個新聞,這里是5;這里的i就表示數字0-4
print(str(i+1) + '.' + title[i]) # 這個其實把字元串進行一個拼接
print(href[i])
1
2
3
4
5
6
3、While語句詳解與實踐
While的底層邏輯也是循環,它和For的特點不一樣,最大的區別是For知道循環次數,而While的話則是不清楚循環次數。
其使用格式為,注意要寫冒號以及代碼前的縮進:

while 條件:
要執行的的代碼
1
2
舉個例子給大家看下:

a = 1
while a < 3:
print(a)
a = a + 1 #或者寫成 a += 1
1
2
3
4
它白話的意思就是:

首先將1賦值給a
當 a 小於3的時候:
列印輸出a
a 在原來的基礎上加上1
1
2
3
4
a一開始等於1,滿足小於3的條件,會列印輸出1,然後a加上1等於2,此時a仍然小於3,所以仍然會執行列印輸出的命令,此時列印輸出2,然後a在2的基礎上加上1等於3,此時a已經不滿足小於3的條件了,那麼循環此時便終止了。最後輸出如下:

1
2
1
2
大家可以試著把數字3換成別的數試試看。
其實我們之後大多情況下用到While的時候,就是讓While來一直循環(如果用for i in range(n),無論n多大,那麼早晚都有結束的時候),這個在爬蟲實戰中的具體應用是:當每爬完一次,就自動進行下一次爬取,實現24小時不間斷爬取。那麼While如何能實現一直循環呢?
具體的方法其實很簡單,那就用while True進行永久循環。

while True:
代碼塊
1
2
給大家截個圖看下,下面這張圖就是最終的代碼效果,這個while True就是輿情監控系統實現24小時不間斷爬取的秘訣,有個注意點,這個True得大寫首字母,之後講到的時候再詳細介紹:

大家如果想停止while True的不停的循環,可以在點擊右上角的紅色終止按鈕即可。我當初自己學的時候,寫過這么兩行代碼

❺ 7種檢測Python程序運行時間、CPU和內存佔用的方法

1. 使用裝飾器來衡量函數執行時間

有一個簡單方法,那就是定義一個裝飾器來測量函數的執行時間,並輸出結果:

import time

from functoolsimport wraps

import random

def fn_timer(function):

  @wraps(function)

  def function_timer(*args, **kwargs):

      t0= time.time()

      result= function(*args, **kwargs)

      t1= time.time()

      print("Total time running %s: %s seconds" %

          (function.__name__, str(t1- t0))

)

      return result

return function_timer

@fn_timer

def random_sort(n):

  return sorted([random.random() for i in range(n)])

if __name__== "__main__":

  random_sort(2000000)

輸出:Total time running random_sort: 0.6598007678985596 seconds

使用方式的話,就是在要監控的函數定義上面加上 @fn_timer 就行了

或者

# 可監控程序運行時間

import time

import random

def clock(func):

    def wrapper(*args, **kwargs):

        start_time= time.time()

        result= func(*args, **kwargs)

        end_time= time.time()

        print("共耗時: %s秒" % round(end_time- start_time, 5))

        return result

return wrapper

@clock

def random_sort(n):

  return sorted([random.random() for i in range(n)])

if __name__== "__main__":

  random_sort(2000000)

輸出結果:共耗時: 0.65634秒

2. 使用timeit模塊

另一種方法是使用timeit模塊,用來計算平均時間消耗。

執行下面的腳本可以運行該模塊。

這里的timing_functions是Python腳本文件名稱。

在輸出的末尾,可以看到以下結果:4 loops, best of 5: 2.08 sec per loop

這表示測試了4次,平均每次測試重復5次,最好的測試結果是2.08秒。

如果不指定測試或重復次數,默認值為10次測試,每次重復5次。

3. 使用Unix系統中的time命令

然而,裝飾器和timeit都是基於Python的。在外部環境測試Python時,unix time實用工具就非常有用。

運行time實用工具:

輸出結果為:

Total time running random_sort: 1.3931210041 seconds

real 1.49

user 1.40

sys 0.08

第一行來自預定義的裝飾器,其他三行為:

    real表示的是執行腳本的總時間

    user表示的是執行腳本消耗的CPU時間。

    sys表示的是執行內核函數消耗的時間。

注意:根據維基網路的定義,內核是一個計算機程序,用來管理軟體的輸入輸出,並將其翻譯成CPU和其他計算機中的電子設備能夠執行的數據處理指令。

因此,Real執行時間和User+Sys執行時間的差就是消耗在輸入/輸出和系統執行其他任務時消耗的時間。

4. 使用cProfile模塊

5. 使用line_profiler模塊

6. 使用memory_profiler模塊

7. 使用guppy包

❻ 關於python 命令控製程序啟動與結束

可以使用一個標志變數來控製程序的啟動和結束。
首先,在主程序中設置一個標志變數,例如 running,用於指示程序是否處於運行狀態。在程序開始時,running 應設置為 False。
然後,在每次循環中檢查 running 的值。如果 running 為 True,則執行 auto() 函數;如果 running 為 False,則等待用戶輸入命令。
當用戶輸入 qd 命令時,將 running 設置為 True,並執行 auto() 函數。當用戶輸入 tz 命令時,將 running 設置為 False,並執行 reset() 函數。
示例代碼如下:
running
running = False
while True:
cmd = input("請輸入命令:")
if cmd == 'qd':
running = True
elif cmd == 'tz':
running = False
if running:
auto()
else:
reset()
在這段代碼中,我們使用了一個 while 循環來不斷接收用戶的命令。在每次循環中,我們會讀入用戶的命令,並根據命令的不同設置 running 的值。如果 running 為 True,則執行 auto() 函數;如果 running 為 False,則執行 reset() 函數。
這樣,用戶就可以隨時輸入 tz 命令來停止程序,也可以輸入 qd 命令來重新啟動程序。
希望這些信息能夠幫助您。

閱讀全文

與python判斷程序是否運行相關的資料

熱點內容
vue多端編譯 瀏覽:750
程序員qq表白代碼編輯 瀏覽:893
聯想伺服器怎麼進後台 瀏覽:114
安卓定製rom怎麼刷 瀏覽:539
三層交換機的配置命令 瀏覽:110
49演算法公式 瀏覽:788
求最小生成樹演算法代碼及運行圖片 瀏覽:930
python掃雷計數 瀏覽:879
什麼安卓手機品牌最保值 瀏覽:844
編程貓買房子 瀏覽:134
c語言系列編程 瀏覽:742
符合國標加密標准技術 瀏覽:496
加密狗介面會壞嗎 瀏覽:625
javame開發 瀏覽:380
python3偽裝瀏覽器 瀏覽:242
信息聯想伺服器專班是干什麼的 瀏覽:99
python獲取cpu個數 瀏覽:864
命令提示符查網速 瀏覽:229
對於某個理論演算法可以直接抄嗎 瀏覽:188
如何訪問ftp伺服器下載文件 瀏覽:392