A. 用python語言設計程序,5道題,謝謝!
第一題,用input()接受用戶輸入,int()把輸入轉換成整型,if... else語句判斷條件。能被2整除的是偶數,否則奇數
代碼:
n = int(input())
if n % 2 == 0:
..#前面的點表示縮進。
..print("是偶數")
else:
..print("是奇數")
第二題input()、int()和嵌套if語句
代碼:
n = int(input())
if n % 100 != 0:
..if n % 4 == 0:
....print("是閏年")
..else:
....print("是平年")
elif n % 400 == 0:
..print("是閏年")
else:
..print("是平年")
第三題還是一樣滴,用input(),int()和if...else語句
代碼:
a = int(input())
b = int(input())
if a > b:
..print(a – b)
else:
..print(b – a)
第四題也是一樣滴
代碼:
m = int(input())
n = int(input())
if m < n:
..print(m, n)
else:
..print(n, m)
第五題 (*^▽^*)
代碼:
a = int(input())
if a >=60:
..print("合格")
else:
..print("不合格")
B. 一道簡單的python編程題
按照題目要求編寫的哥德巴赫猜想的Python程序如下
def IsPrime(v):
if v>=2:
for i in range(2,v//2+1):
if v%i==0:
return False
else:
return True
else:
return False
n=int(input("輸入一個正偶數:"))
if n>2 and n%2==0:
for i in range(1,n//2+1):
if IsPrime(i)==True and IsPrime(n-i)==True:
print("%d=%d+%d" %(n,i,n-i))
else:
print("輸入數據出錯!")
源代碼(注意源代碼的縮進)
C. 如何用python編程解釋「雞兔同籠」問題
雞兔同籠python程序編寫要根據原書中的描述的:「今有雉兔同籠,上有三十五頭,下有九十四足,問雉兔各幾何?」雞兔同籠python程序具體寫法如下:
把原文翻譯成現代漢語是:「雞和兔放在一個籠子里, 籠子里共有35個頭,94個爪,那雞和兔各有多少只?」
1、根據題意,頭的總數為35,用變數head來記錄頭的總數:head =35。而腿的總數為94,用變數foot來記錄腿的總數:(foot = 94)。
2、用變數chicken記錄雞的數量。因為頭的總數為35,說明雞和兔共有35隻,所以雞的數量是0-35之間的某一個數,這里用for循環來指揮計算機,自動羅列所有可能出現的情況:(for chicken in range(0, head+1):))。
3、然後,用變數rabbit記錄兔子的數量。因為雞和兔的總數等於頭的數量,所以兔的數量rabbit等於頭的總數head減去雞的數量(chicken:rabbit=head一chicken)。
4、雞有兩條腿,兔子有四條腿,所以腿的總數為:(if chicken *2 + rabbit *4 == foot:print('雞',chicken, '兔',rabbit))執行代碼,就完成了。
D. python編寫的經典心理學實驗程序
首先確定您的文件所在的位置,如在桌面上,進入終端, 輸入 cd desktop 之後再輸入 python3 您的文件名.py 既可以運行python程序。您的錯誤是No such or directory 意思是在當前終端的工作目錄下沒找到您要運行的文件,切換工作目錄即可。
E. 用python開發一個物流web代碼
詳細如下。
一個名叫「Remi」的Python庫,就是用來開發WebApp的。1.Remi庫簡介
Remi是一個用於Python應用程序的GUI庫,它將應用程序的界面轉換為HTML,以便在Web瀏覽器中呈現。嚴格地說,我們不能用Remi庫來編寫傳統的網站,而只能將它當成Web形式的Tkinter庫(Python最經典的圖形界面庫)來使用。如果要做網站,還是要老老實實學點前端知識,然後結合Python的Flask框架來開發。
2.Remi庫的安裝
Remi可以採用pip命令安裝
3.Remi庫的代碼
運行這段代碼後,瀏覽器會自動打開一個本地的網址,出現如下圖所示的界面。將「127.0.0.1」換成IP地址,就能通過其他電腦、手機的瀏覽器來訪問了。
點擊「請點擊這里」按鈕,界面會發生變化,如下圖所示。不用寫復雜的JS代碼,在Remi的支持下,網頁交互就變得這么簡單。如果需要了解更多關於Remi庫的資源,可以訪問github或者官方文檔。
github地址:https://github.com/dddomodossola/remi
文檔地址:https://remi.readthedocs.io/en/latest/
基於Remi編寫基於Web的物聯網應用程序,既然是編寫物聯網應用程序,那麼肯定還需要安裝siot庫。這也是「虛穀物聯」團隊開發的Python庫,因為MQTT的官方Python庫(paho-mqtt)編寫出來的代碼冗長,不好理解,於是委託上海蘑菇雲團隊在paho-mqtt的基礎上進行了新的封裝。siot庫可以通過pip命令來安裝,命令如下:
pipinstallsiot
F. 如何編寫高質量的python程序
寫出規范的代碼是寫出高質量代碼的第一步,並且有助於培養仔細的習慣。
為了培養規范寫代碼的習慣,可以安裝flake8這個工具,它不僅可以檢查代碼風格是否符合官方建議(PEP8),而且還能找出潛在的隱患(用Pyflakes做語法分析),更逆天的是還能檢測到你有些函數寫的太復雜(代碼圈復雜度)了,更更逆天的是可以設置git commit之前必須通過這些檢查。
當然具體操作需要根據自己的項目進行一些定製,比如可以忽略E501,W293。
空白項目模版
好的開始是成功的一半,寫python代碼就從pyempty開始吧。
在github上看一下那些經典的項目,web.py,flask, pep8,他們的項目目錄都很規范,綜合借鑒了一些項目的特點,我寫了這個pyempty項目。
1.README.md 這里寫你項目的簡介,quick start等信息,雖然distutils要求這個文件沒有後綴名,但github上如果後綴是.md的話可以直接轉換成html顯示。
2.ChangeLog.txt 該文件存放程序各版本的變更信息,也有一定的格式,參考web.py的ChangeLog.txt
3.LICENES.txt 這里存放你項目使用的協議,不要編寫自己的協議。
4.requirements.txt 如果你的項目需要依賴其它的python第三方庫,在這里一行一個寫出來,可能pip install的時候能自動幫你安裝
5.setup.py 安裝腳本,後面詳細介紹
6.docs 裡面存放你的項目文檔,如概要設計,詳細設計,維護文檔,pydoc自動生成的文檔等,強烈推薦大家使用MarkDown格式編寫文檔
7.src 這個目錄里存放項目模塊的主要代碼,盡量不要把模塊目錄直接放到根目錄,模塊代碼目錄可以在setup.py里指定的
8.tests 這個目錄存放所有單元測試,性能測試腳本,單元測試的文件確保以test_做前綴,這樣distutils會自動打包這些文件,並且用python -m unittest discover -s ./ -p 'test_*.py' -v 可以直接執行這些測試
單元測試
Martin Fowler:"在你不知道如何測試代碼之前,就不該編寫程序。而一旦你完成了程序,測試代碼也應該完成。除非測試成功,你不能認為你編寫出了可以工作的程序。"
我們有很多理由不寫單元測試,歸根結底是懶,雖然代碼大全上說:
大部分研究都發現,檢測比測試的成本更小。NASA軟體工程實驗室的一項研究發現,閱讀代碼每小時能夠檢測出來的缺陷要比測試高出80%左右(Basili and Selby 1987)。後來,IBM的一項研究又發現,檢查發現的一個錯誤只需要3.5個工作時,而測試則需要花費15-25個工作時(Kaplan 1995)。
但是單元測試還是讓別人相信你的代碼有很高質量的最有力證據。
好了,請詳細閱讀:
深入python3.0: 單元測試-2.x也適用
Unit testing framework 不完整中文版
文檔
敏捷開發不是提倡什麼文檔也不寫,沒有文檔就沒有傳承和積累,輪崗或新人接手任務就會遇到很大的麻煩,所以我決定每個項目最少要寫以下文檔:
1.nalysis.model.md 概要設計文檔,不同於README.md文件,該文檔應該寫於項目開發之前,把項目有哪些功能,大概分幾個模塊等項目整體概述信息寫一下。
2.design.model.md 詳細設計文檔,不用太詳細,至少把項目依賴哪些東西,誰依賴這個項目,重要演算法流程描述,代碼整體結構等寫出來。
3.maintain.md 維護文檔,這個我覺得最重要,你的服務都記錄哪些日誌,需要監控哪些業務指標,如何重啟,有哪些配置項等,沒這些東西,你的項目很難運維。
上面這些文檔都是項目全局性的文檔,不適合寫在docstring或注視里,所以要有單獨的文檔。
打包
python有專門的模塊打包系統distutils,你可以用這套機制把你的代碼打包並分發到Pypi上,這樣任何人都可以用pip或easy_install安裝你的模塊。
如果你開發的是內部項目,還可以用mypypi架設私有的pypi,然後把項目的大的版本更新發布到內部的pypi上,配置管理人員和運維人員可以很方便的從pypi上拉取代碼安裝到測試環境或生產環境。
發布大版本的時候要給版本命名及編寫ChangeList,可以參考Git Pro的相關章節,主要記住以下幾個命令。
git tag -a v0.1 -m 'my test tag' #給大版本命名,打Tag
git describe master #給小版本命名,Git將會返回一個字元串,由三部分組成:最近一次標定的版本號,加上自那次標定之後的提交次數,再加上一段SHA-1值
git shortlog --no-merges master --not v0.1 #生成版本簡報,ChangeList
python有自己的打包機制,所以一般不要用git archive命令。
當然大版本管理用pypi管理比較合適,小的bug fix,緊急上線等好多公司都是用git直接從生產環境拉代碼更新,因為git,svn等可以很方便的撤銷某次更新,回滾到某個位置。
如何管理好大版本上線和小的緊急上線,我還沒理清思路,歡迎大家參與討論。
關於打包,請閱讀如下鏈接:
Python 打包指南
深入Python3.0:打包 Python 類庫
python打包:分發指定文件
出自:http://developer.51cto.com/art/201209/356603.htm