python工控例項 Python練手例子(3)

2021-10-11 15:12:03 字數 2698 閱讀 8034

13、列印出所有的"水仙花數",所謂"水仙花數"是指乙個三位數,其各位數字立方和等於該數本身。例如:153是乙個"水仙花數",因為153=1的三次方+5的三次方+3的三次方。

程式分析:利用for迴圈控制100-999個數,每個數分解出個位,十位,百位。

#python3.7

importmathfor n in range(100,1000):

i= math.floor(n / 100)#百位數

j = math.floor((n - i * 100) / 10)#十位數

k = n - math.floor(n/10) * 10#個位數

if n == i**3 + j**3 + k**3:print(n)

結果:14、將乙個正整數分解質因數。例如:輸入90,列印出90=2*3*3*5。

程式分析:對n進行分解質因數,應先找到乙個最小的質數k,然後按下述步驟完成:

(1)如果這個質數恰等於n,則說明分解質因數的過程已經結束,列印出即可。

(2)如果n<>k,但n能被k整除,則應列印出k的值,並用n除以k的商,作為新的正整數你n,重複執行第一步。

(3)如果n不能被k整除,則用k+1作為k的值,重複執行第一步

#python3.7

defreducenum(n):print('{} ='.format(n))if not isinstance(n, int) or n <=0:print('請輸入乙個正確的數字!')

exit(0)elif n in [1]:print('{}'.format(n))while n not in [1]:#迴圈保證遞迴

for index in range(2, int(n + 1)):if n % index ==0:

n/= index #n等於n/index

if n == 1:print(index)else:#index一定是素數

print('{} *'.format(index))breakreducenum(99)

reducenum(100)

reducenum(210)

15、利用條件運算子的巢狀來完成此題:學習成績》=90分的同學用a表示,60-89分之間的用b表示,60分以下的用c表示。

程式分析:程式分析:(a>b)?a:b這是條件運算子的基本例子。

#python3.7

score= int(input('輸入分數:\n'))if score >= 90:

grade= 'a'

elif score >= 60:

grade= 'b'

else:

grade= 'c'

print('%d屬於%s' % (score, grade))

16、輸出指定格式的日期。

程式分析:使用 datetime 模組。

#python3.7

importdatetimeif __name__ == '__main__':#輸出今天的日期,格式為dd/mm/yy

print(datetime.date.today().strftime('%d/%m/%y'))#建立日期物件

alicebirthdate = datetime.date(2008, 9, 27)print(alicebirthdate.strftime('%d/%m/%y'))

jackbirthdate= alicebirthdate - datetime.timedelta(days=99)print(jackbirthdate.strftime('%d/%m/%y'))#日期替換

aliceage = alicebirthdate.replace(year = alicebirthdate.year + 11)print(aliceage.strftime('%d/%m/%y'))

17、輸入一行字元,分別統計出其中英文本母、空格、數字和其它字元的個數。

程式分析:利用 while 或 for 語句,條件為輸入的字元不為 '\n'。

importstring

s= input('請輸入乙個字串:\n')

letters=0

space=0

digit=0

others=0for c ins:if c.isalpha():#字母

letters +=1

elifc.isspace():

space+= 1

elifc.isdigit():

digit+= 1

else:

others+= 1

print('char = %d, space = %d, digit = %d, others = %d' % (letters, space, digit, others))

18、求s=a+aa+aaa+aaaa+aa...a的值,其中a是乙個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加由鍵盤控制。

程式分析:關鍵是計算出每一項的值。

#python3.7

from functools importreduce

tn=0

sn=n= int(input('n ='))

a= int(input('a ='))for count inrange(n):

tn= tn +a

sn= reduce(lambda x,y: x +y, sn)print('計算和為:', sn)

結果:n= 6a= 6

666666計算和為:740736

Python學習筆記 1 1 2 認識Python

一.課程目標 二.詳情解讀 1.初識pythonpython語言是一種高階程式語言,它於1991年由吉多.範羅蘇姆 guido van rossum 發明。目前主要應用於web開發 gui開發 網路爬蟲 資料科學 人工智慧等領域。python官方 python語言也是一種多正規化程式語言,即物件導向...

python實現演算法 kmp演算法python實現

kmp演算法python實現 kmp演算法 kmp演算法用於字串的模式匹配,也就是找到模式字串在目標字串的第一次出現的位置 比如abababc 那麼bab在其位置1處,bc在其位置5處 我們首先想到的最簡單的辦法就是蠻力的乙個字元乙個字元的匹配,但那樣的時間複雜度會是o m n kmp演算法保證了時...

python呼叫qt Qt 下呼叫 Python

qt是乙個跨平台的c 圖形使用者介面應用程式框架,而python是一門非常強大的程式語言,本文主要介紹了如何在osx系統下qt呼叫python指令碼。先上 include 包含呼叫python相應的標頭檔案 include int main int argc,char ar 初始化python直譯器...