python程序接收程序,python 操作程序

本文目錄一覽:

Python語言程序設計(六)

1.(幾何學:一個五邊形的面積)編寫一個程序,提示用戶輸入五邊形頂點到中心距離r,然後算出五邊形的面積,如下圖所示。

計算五邊形面積的公式是Area = 5×s×s/(4×tan(π/5)),這裡的s是邊長。邊長的計算公式是 s =2rsin(π/5),這裡的r是頂點到中心距離。

2.(幾何學:大圓距離)大圓距離是球面上兩點之間的距離。假設(x1,y1)和(x2,y2)是兩點的經度和緯度,兩點之間大圓距離可以利用以下公式計算:

d = radius * arccos(sin(x1) × sin(x2) × cos(x1) × cos(x2) × cos(y2-y1))

編寫一個程序,提示用戶輸入地球表面兩點經度和緯度的度數然後顯示它們的大圓距離。地球的平均半徑為6371.01km。注意:你需要使用math. radians函數將度數轉化為弧度數,因為Python三角函數使用的是弧度。公式中的經緯度是西經和北緯。用負數表示東經和南緯。

3.(幾何學:估算面積)從網站找到佐治亞州亞特蘭大、佛羅里達州奧蘭多、大草原佐治亞、北卡羅來納州夏洛特的GPS位置,然後計算出這四個城市所圍成的區域的大概面積。

4.(幾何學:五角形的面積)五角形的面積可以使用下面的公式計算(s是邊長)

Area = (5×s²)/ (4×tan(π/5))

編寫一個程序,提示用戶輸入五邊形的邊長,然後顯示面積。

5.(幾何學:一個正多邊形的面積)正多邊形是邊長相等的多邊形嗎,而且所有的角都相等。計算正多邊形面積的公式是:

Area = (n × s²)/(4×tan(π/n))

這裡的s是邊長。編寫一個程序,提示用戶輸入邊數以及正多邊形的邊長,然後顯示他們的面積。

6.(找出ASCII碼的字符)編寫一個程序,接收一個ASCII碼值(一個0~127之間的整數),然後顯示它對應的字符。例如:如果用戶輸入97,程序將顯示字符a。

7.(隨機字符)編寫一個程序,使用time.time()函數顯示一個大寫的隨機字符。

9.(金融應用程序:工資表)編寫一個程序,讀取下面的信息,然後打印一個工資報表。

僱員姓名(例如:史密斯)

一周工作時間(例如:10)

每小時酬報(例如:9.75)

聯邦預扣稅率(例如:20%)

州預扣稅率(例如:9%)

10.(Turtle顯示統一碼)編寫一個程序,顯示希臘字母。αβγδεζηθ

11.(反向數字)編寫一個程序,提示用戶輸入一個四位整數,然後顯示顛倒各位數字後的數。

如何用python編寫一個程序,首先定義一個接收字符串參數的

使用交互式解釋器。

(只需在命令提示符中鍵入“python”)可以幫助您嘗試使用這種代碼snipplet。例如: fruit = ‘banana’ len(fruit)6 len(fruit) – 15 while index = 0:… print “index at: ” + str(index)。

python 怎麼讓程序接受ctrl + c終止信號

花了一天時間用python為服務寫了個壓力測試。很簡單,多線程向服務器發請求。但寫完之後發現如果中途想停下來,按Ctrl+C達不到效果,自然想到要用信號處理函數捕捉信號,使線程都停下來,問題解決的方法請往下看:

複製代碼代碼如下:

#!/bin/env python

# -*- coding: utf-8 -*-

#filename: peartest.py

import threading, signal

is_exit = False

def doStress(i, cc):

global is_exit

idx = i

while not is_exit:

if (idx 10000000):

print “thread[%d]: idx=%d”%(i, idx)

idx = idx + cc

else:

break

print “thread[%d] complete.”%i

def handler(signum, frame):

global is_exit

is_exit = True

print “receive a signal %d, is_exit = %d”%(signum, is_exit)

if __name__ == “__main__”:

signal.signal(signal.SIGINT, handler)

signal.signal(signal.SIGTERM, handler)

cc = 5

for i in range(cc):

t = threading.Thread(target=doStress, args=(i,cc))

t.start()

上面是一個模擬程序,並不真正向服務發送請求,而代之以在一千萬以內,每個線程每隔並發數個(cc個)打印一個整數。很明顯,當所有線程都完成自己的任務後,進程會正常退出。但如果我們中途想退出(試想一個壓力測試程序,在中途已經發現了問題,需要停止測試),該腫么辦?你當然可以用ps查找到進程號,然後kill -9殺掉,但這樣太繁瑣了,捕捉Ctrl+C是最自然的想法。上面示例程序中已經捕捉了這個信號,並修改全局變量is_exit,線程中會檢測這個變量,及時退出。

但事實上這個程序並不work,當你按下Ctrl+C時,程序照常運行,並無任何響應。網上搜了一些資料,明白是python的子線程如果不是daemon的話,主線程是不能響應任何中斷的。但設為daemon後主線程會隨之退出,接着整個進程很快就退出了,所以還需要在主線程中檢測各個子線程的狀態,直到所有子線程退出後自己才退出,因此上例29行之後的代碼可以修改為:

複製代碼代碼如下:

threads=[]

for i in range(cc):

t = threading.Thread(target=doStress, args=(i, cc))

t.setDaemon(True)

threads.append(t)

t.start()

for i in range(cc):

threads[i].join()

重新試一下,問題依然沒有解決,進程還是沒有響應Ctrl+C,這是因為join()函數同樣會waiting在一個鎖上,使主線程無法捕獲信號。因此繼續修改,調用線程的isAlive()函數判斷線程是否完成:

複製代碼代碼如下:

while 1:

alive = False

for i in range(cc):

alive = alive or threads[i].isAlive()

if not alive:

break

這樣修改後,程序完全按照預想運行了:可以順利的打印每個線程應該打印的所有數字,也可以中途用Ctrl+C終結整個進程。完整的代碼如下:

複製代碼代碼如下:

#!/bin/env python

# -*- coding: utf-8 -*-

#filename: peartest.py

import threading, signal

is_exit = False

def doStress(i, cc):

global is_exit

idx = i

while not is_exit:

if (idx 10000000):

print “thread[%d]: idx=%d”%(i, idx)

idx = idx + cc

else:

break

if is_exit:

print “receive a signal to exit, thread[%d] stop.”%i

else:

print “thread[%d] complete.”%i

def handler(signum, frame):

global is_exit

is_exit = True

print “receive a signal %d, is_exit = %d”%(signum, is_exit)

if __name__ == “__main__”:

signal.signal(signal.SIGINT, handler)

signal.signal(signal.SIGTERM, handler)

cc = 5

threads = []

for i in range(cc):

t = threading.Thread(target=doStress, args=(i,cc))

t.setDaemon(True)

threads.append(t)

t.start()

while 1:

alive = False

for i in range(cc):

alive = alive or threads[i].isAlive()

if not alive:

break

其實,如果用python寫一個服務,也需要這樣,因為負責服務的那個線程是永遠在那裡接收請求的,不會退出,而如果你想用Ctrl+C殺死整個服務,跟上面的壓力測試程序是一個道理。總結一下,python多線程中要響應Ctrl+C的信號以殺死整個進程,需要:

1.把所有子線程設為Daemon;

2.使用isAlive()函數判斷所有子線程是否完成,而不是在主線程中用join()函數等待完成;

3.寫一個響應Ctrl+C信號的函數,修改全局變量,使得各子線程能夠檢測到,並正常退出。

python題編寫一個程序,接收用戶的輸入並存入一個列表,再編寫一個函數,將用戶的輸入列表作為參數,

L = []

while 1:

    s = input(‘Please input your information:’)

    if s == ‘ ‘:

        break

    else:

        L.append(s)

def funcrepeat(L):

    if list(set(L)) == L:

        print(“你的輸入沒有重複值”)

    else:

        print(“你的輸入有重複值”)

    print(L)

funcrepeat(L)

python的一個小程序怎麼寫?

num1 = int(input())

num2 = int(input())

sum_all = 0

for i in range(num1,num2+1):

if i % 3 == 0 or i % 5 == 0:

sum_all += i

print(sum_all)

用python編寫一個函數,接收一個列表參數,函數返回該列表中所有正數之和。最後在主主程序中測試該函數?

題主你好,

代碼及測試截圖如下:

希望可以幫到題主, 歡迎追問

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/227426.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-09 16:29
下一篇 2024-12-09 16:29

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29

發表回復

登錄後才能評論