Python數學計算,編程練習題實例一:
簡述:這里有四個數字,分別是:1、2、3、4
提問:能組成多少個互不相同且無重復數字的三位數?各是多少?
Python解題思路分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列后再去 掉不滿足條件的排列。
Python數學計算,編程練習題和答案實例一,源代碼如下:

#!/usr/bin/python # -*- coding: UTF-8 -*- for i in range(1, 5): for j in range(1, 5): for k in range(1, 5): if (i != k) and (i != j) and (j != k): print(i, j, k)
Python數軸、長整型,編程練習題實例二:
簡述:企業發放的獎金根據利潤提成。利潤(I)低於或等於10萬元時,獎金可提10%;利潤高於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可提成7.5%;20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於40萬元的部分,可提成3%;60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於100萬元時,超過100萬元的部分按1%提成.
提問:從鍵盤輸入當月利潤I,求應發放獎金總數? 玩蛇網Python解題思路分析:請利用數軸來分界及定位。並要注意定義時需要把獎金定義成長整型的數據類型。
Python數軸、長整型,編程練習題和答案實例二,源碼如下:

# !/usr/bin/python # -*- coding: UTF-8 -*- i = int(input('凈利潤:')) arr = [1000000, 600000, 400000, 200000, 100000, 0] rat = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1] r = 0 for idx in range(0, 6): if i > arr[idx]: r += (i - arr[idx]) * rat[idx] print(i - arr[idx]) * rat[idx] i = arr[idx] print(r)
Python完全平方數,編程練習題實例三
簡述:一個整數,它加上100和加上268后都是一個完全平方數
提問:請問該數是多少? Python解題思路分析:在10000以內判斷,將該數加上100后再開方,加上268后再開方,如果開方后的結果滿足如下條件,即是結果。 Python完全平方數,python解題源代碼如下:

# !/usr/bin/python # -*- coding: UTF-8 -*- import math for i in range(10000): #轉化為整型值 x = int(math.sqrt(i + 100)) y = int(math.sqrt(i + 268)) if(x * x == i + 100) and (y * y == i + 268): print (i)
Python日期計算,編程練習題實例四
簡述:要求輸入某年某月某日
提問:求判斷輸入日期是當年中的第幾天? Python解題思路分析: 我們就以3月5日這一天為例。首先把前兩個月的加起來,然后再加上5天即本年的第幾天。這里有一種特殊的情況,就是閏月,遇到這種情況且輸入月份大於2時需考慮多加一天。如果不是很明白,可以看下邊的python源碼。
Python日期計算,最新編程練習題實例四,解題源代碼如下:

#!/usr/bin/python # -*- coding: UTF-8 -*- year = int(input('year:\n')) month = int(input('month:\n')) day = int(input('day:\n')) months = (0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334) if 0 < month <= 12: sum = months[month - 1] else: print('data error') sum += day leap = 0 # www.iplaypy.com if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)): leap = 1 if (leap == 1) and (month > 2): sum += 1 print('it is the %dth day.' % sum)
Python整數順序排列,編程練習題實例五
整數順序排列問題簡述:任意三個整數類型,x、y、z
提問:要求把這三個數,按照由小到大的順序輸出 Python解題思路分析:
首先,要想方法把最小的數放到x位上,之后將x與y進行比較; 如果x>y的話,就將x與y的值進行交換; 然后再用x與z進行比較,如果x>z則將x與z的值進行交換,這樣能使x最小。 Python整數順序排列,python解題源代碼如下:

# !/usr/bin/python # -*- coding: UTF-8 -*- l = [] for i in range(3): x = int(input('integer:\n')) l.append(x) l.sort() print(l)
Python斐波那契數列應用,編程練習題實例六
斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一個數列:1、1、2、3、5、8、13、21、34、在數學上,斐波納契數列以如下被以遞歸的方法定義。

F0 = 0 (n=0) F1 = 1 (n=1) Fn = F[n-1]+F[n-2](n=>2) 要求一:輸出第10個斐波那契數列 方法一: def fib(n): a,b = 1,1 for i in range(n-1): a,b = b,a+b return a 方法二:使用遞歸方法來解救這個問題。 def fib(n): if n==1 or n==2: return 1 return fib(n-1)+fib(n-2) 結果為55,這里就先不演示了。 要求二:問題的要求改為:需要輸出指定個數的斐波那契數列,要怎么來解決呢?我們往下看。 def fib(n): if n == 1: return [1] if n == 2: return [1, 1] fibs = [1, 1] for i in range(2, n): fibs.append(fibs[-1] + fibs[-2]) return fibs
Python列表數據復制,編程練習題實例七
提問:將一個列表的數據復制到另一個列表中。
請仔細看要求,這里要求的是復制數據到一個新的列表中。 Python列表數據復制,Python解題思路分析:可以了解下[ :]的含義 python解題源代碼如下:

#!/usr/bin/python # -*- coding: UTF-8 -*- x = [1, 2, 3] y = x[:] print(y)
Python乘法口訣計算,編程練習題實例八
簡述:9*9乘法口訣表。
要求:逐項單位輸出。例如1的一行,2的一行,以此類推。 Python解題思路分析: 注意分行與列考慮。這里共有9行和9列。x控制行,y控制列。
Python解題源代碼如下:

#!/usr/bin/python # -*- coding: UTF-8 -*- #1.長方形完整格式 #完整格式輸出九九乘法表 for i in range(1,10): for j in range(1,10): print("%d*%d=%2d" % (i,j,i*j),end=" ") print("") #2.左上三角形 #左上三角格式輸出九九乘法表 for i in range(1,10): for j in range(i,10): print("%d*%d=%2d" % (i,j,i*j),end=" ") print("") #3.右上三角形 #右上三角格式輸出九九乘法表 for i in range(1,10): for k in range(1,i): print (end=" ") for j in range(i,10): print("%d*%d=%2d" % (i,j,i*j),end=" ") print("") #4.左下三角形 #左下三角格式輸出九九乘法表 for i in range(1,10): for j in range(1,i+1): print("%d*%d=%2d" % (i,j,i*j),end=" ") print (" ") # 5.右下三角形 #右下三角格式輸出九九乘法表 for i in range(1,10): for k in range(1,10-i): print(end=" ") for j in range(1,i+1): product=i*j print("%d*%d=%2d" % (i,j,product),end=" ") print (" ")
Python time.sleep方法,編程練習題實例九
讓python程序暫停預定時間后再運行,需要用到time.sleep方法。
Python編程練習題和答案實例九,time.sleep方法就來一道這樣的練習題吧。
要求:隨便寫一段代碼,測試time.sleep()方法效果學習。
python解題源代碼如下:

# !/usr/bin/python # -*- coding: UTF-8 -*- import time myD = {1: 'a', 2: 'b'} for key, value in dict.items(myD): print(key, value) time.sleep(1)
Python時間格式化,編程練習題實例十
簡述:暫停一秒time.sleep()輸出;並格式化當前時間。
Python解題思路分析:可以先預習下time.strftime及time.localtime的作用和方法。python解題源代碼如下:

# !/usr/bin/python # -*- coding: UTF-8 -*- import time print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))) # 暫停一秒 time.sleep(1) print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))
Python兔子生兔子算法,編程練習題實例十一
簡述:話說有一對可愛的兔子,出生后的第三個月開始,每一月都會生一對小兔子。當小兔子長到第三個月后,也會每個月再生一對小小兔子.
問題:假設條件,兔子都不死的情況下,問每個月的兔子總數為多少?
Python解題思路分析:兔子的規律為數列1,1,2,3,5,8,13,21....,好似斐那波契數列的感覺哦
Python兔子生兔子算法,python解題源代碼如下:

#!/usr/bin/python # -*- coding: UTF-8 -*- a1 = 1 b2 = 1 for i in range(1,21): print('%12ld %12ld' % (a1,b2),) if (i % 3) == 0: print(" ") a1 = a1 + b2 b2 = a1 + b2
Python素數計算輸出,編程練習題實例十二
簡述:區間范圍101-200
要求:判斷這個區間內有多少個素數,並逐一輸出。
Python解題思路分析:首先,判斷這個數是否是素數,方法:用一個數分別去除2到sqrt(這個數); 其結果,能被整除,則表明此數不是素數,反之是素數。

# !/usr/bin/python # -*- coding: UTF-8 -*- h = 0 leap = 1 from math import sqrt from sys import stdout for m in range(101, 201): k = int(sqrt(m + 1)) for i in range(2, k + 1): if m % i == 0: leap = 0 break if leap == 1: print("%-4d" % m) h += 1 if h % 10 == 0: print("") leap = 1 print('The total is %d' % h)
Python水仙花數for循環應用,編程練習題實例十三
什么是水仙花數?百度一下:水仙花數是指一個 n 位正整數 ( n≥3 ),它的每個位上的數字的 n 次冪之和等於它本身。(例如:1^3 + 5^3+ 3^3 = 153)。
要求:打印輸出所有的"水仙花數"。
Python解題思路分析: 可以利用for循環控制流語句來完成操作。從100-999個數,每個數分解出個位、十位和百位。
python解題源代碼如下:

#!/usr/bin/python # -*- coding: UTF-8 -*- import math for i in range(100, 1000): x = math.floor(i / 100) # 獲得百位數 y = math.floor((i - x * 100) / 10) # 獲得十位數 z = i - math.floor(i / 10) * 10 # 獲得個位數 if i == x ** 3 + y ** 3 + z ** 3: print(i, end=', ')
Python分解質因數,編程練習題實例十四
什么是分解質因數?
我們來百度一下:把一個合數分解成若干個質因數的乘積的形式,即求質因數的過程叫做分解質因數。
要求:將一個正整數分解質因數;例如您輸入90,分解打印90=233*5。 Python解題思路分析:這道題需要分三部分來分解,具體分解說明如下。
1、首先當這個質數恰等於n的情況下,則說明分解質因數的過程已經結束,打印出即可。
2、如果遇到n<>k,但n能被k整除的情況,則應打印出k的值。同時用n除以k的商,作為新的正整數你n,之后再重復執行第一步的操作。
3、如果n不能被k整除時,那么用k+1作為k的值,再來重復執行第一步的操作系統。 數學不靈光的童鞋,真是很難解哦。 源代碼如下:

# !/usr/bin/python # -*- coding: UTF-8 -*- n = num = int(input('請輸入一個數字:')) # 用num保留初始值 f = [] # 存放質因數的列表 for j in range(int(num / 2) + 1): # 判斷次數僅需該數字的一半多1次 for i in range(2, n): t = n % i # i不能是n本身 if t == 0: # 若能整除 f.append(i) # 則表示i是質因數 n = n // i # 除以質因數后的n重新進入判斷,注意應用兩個除號,使n保持整數 break # 找到1個質因數后馬上break,防止非質數卻可以整除的數字進入質因數列表 if len(f) == 0: # 若一個質因數也沒有 print('該數字沒有任何質因數。') else: # 若至少有一個質因數 f.append(n) # 此時n已被某個質因數整除過,最后一個n也是其中一個質因數 f.sort() # 排下序 print('%d=%d' % (num, f[0]), end='') for i in range(1, len(f)): print('*%d' % f[i], end='')
Python條件運算符,編程練習題實例十五
要求:獲取輸入的內容,並利用條件運算符的嵌套方式來完成這道題。 學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。
Python解題思路分析:(a>b) a:b這是條件運算符的基本例子。

#!/usr/bin/python # -*- coding: UTF-8 -*- score = int(input('input score:\n')) if score >= 90: grade = 'A' elif score >= 60: grade = 'B' else: grade = 'C' print('%d belongs to %s' % (score, grade))
Python日期格式應用,編程練習題實例十六
關於python日期格式的應用練習。用python方法如何輸出指定格式形式的日期?
這里你會需要用到import方法導入datetime模塊。datatime模塊重新封裝了time模塊,提供更多接口,提供的類有:date,time,datetime,timedelta,tzinfo datetime.date(year, month, day) date.max、date.min: date對象所能表示的最大、最小日期; date.resolution: date對象表示日期的最小單位(天)。 date.today(): 返回一個表示當前本地日期的date對象; date.fromtimestamp(timestamp):
根據給定的時間戮,返回一個date對象; 源代碼如下:

#!/usr/bin/python # -*- coding: UTF-8 -*- import datetime if __name__ == '__main__': # 輸出今日日期,格式為 dd/mm/yyyy。更多選項可以查看 strftime() 方法 print(datetime.date.today().strftime('%d/%m/%Y')) # 創建日期對象 miyazakiBirthDate = datetime.date(1941, 1, 5) print(miyazakiBirthDate.strftime('%d/%m/%Y')) # 日期算術運算 miyazakiBirthNextDay = miyazakiBirthDate + datetime.timedelta(days=1) print(miyazakiBirthNextDay.strftime('%d/%m/%Y')) # 日期替換 miyazakiFirstBirthday = miyazakiBirthDate.replace(year=miyazakiBirthDate.year + 1) print(miyazakiFirstBirthday.strftime('%d/%m/%Y'))
Python辨別字符類型,編程練習題實例十七
關於用Python方法辨別數據類型可以用python type()方法,那么想要查看一串字符中每一項的類型,並逐一輸出要怎么來處理呢?下面我們就來做這個示例習題吧。
要求:輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。
Python解題思路分析: 利用while語句,條件為輸入的字符不為'\n'。 python解題源代碼如下:

# !/usr/bin/python # -*- coding: UTF-8 -*- import string s = input('input a string:\n') letters = 0 space = 0 digit = 0 others = 0 for c in s: if c.isalpha(): letters += 1 elif c.isspace(): space += 1 elif c.isdigit(): digit += 1 else: others += 1 print('char = %d,space = %d,digit = %d,others = %d' % (letters, space, digit, others))
Python簡單數學計算,編程練習題實例十八
問題描述: 求這樣的一組數據和,s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數字; 例如:2+22+222+2222+22222(此時共有5個數相加),這里具體是由幾個數相加,由鍵盤控制。
Python解題思路分析:關鍵是計算出每一項的值。 python解題源代碼如下:

# !/usr/bin/python # -*- coding: UTF-8 -*- a = int(input('請輸入數字 a:')) count = int(input('請輸入幾個數相加:')) res = 0 # 初始化最終求解 for i in range(1, count + 1): # 循環次數與輸入的值一樣,但從1開始循環 t = 0 # 臨時用的變量 for j in range(i): t = t + 10 ** j # 先計算 10**0 + 10**1 + ... + 10**j res = res + (a * t) # 再計算 a * t print(res)
Python完數計算,編程練習題實例十九
什么是完數? 完全數,又被稱作完美數或完備數,是一些特殊的自然數。 它所有的真因子(即除了自身以外的約數)的和(即因子函數),恰好等於它本身。如果一個數恰好等於它的因子之和,則稱該數為“完全數”。 以上,是我們的大百度為大家提供的關於完數的解釋。接下來,就來開始我們的練習吧。
要求:用python方法找出1000以內的所有完數,並輸出。 Python解題思路分析:
Python解題源代碼如下:

# !/usr/bin/python # -*- coding: UTF-8 -*- from sys import stdout for j in range(2, 1001): k = [] n = -1 s = j for i in range(1, j): if j % i == 0: n += 1 s -= i k.append(i) if s == 0: print(j) for i in range(n): stdout.write(str(k[i])) stdout.write(' ') print(k[n])
Python計算皮球下落速度,編程練習題實例二十
Python方法計算皮球下落速度練習題。各種編程語言中,關於皮球自由下落的計算練習題有很多。今天我們就來做一個用Python方法計算皮球下落速度的練習。 Python練習題問題如下:
問題簡述:假設一支皮球從100米高度自由落下。條件,每次落地后反跳回原高度的一半后,再落下。
要求:算出這支皮球,在它在第10次落地時,共經過多少米?第10次反彈多高? Python解題思路分析:這次要用到range()方法 Python解題源代碼如下:

# !/usr/bin/python # -*- coding: UTF-8 -*- Sn = 100.0 Hn = Sn / 2 for n in range(2, 11): Sn += 2 * Hn Hn /= 2 print('Total of road is %f' % Sn) print('The tenth is %f meter' % Hn)
一:題目:
使用python打印一顆聖誕樹
要求:使用最基本的語法實現

#!/usr/bin/env python #coding:utf-8 height = 5 stars = 1 for i in range(height): print((' ' * (height - i)) + ('*' * stars)) stars += 2 print((' ' * height) + '|')
二:題目:
使用python3從N個數組中,進行排列組合,打印排列后的所有列表。
要求:嘗試使用笛卡爾算法

#!/usr/bin/env python #coding:utf-8 class Cartesian(): # 初始化 def __init__(self, datagroup): self.datagroup = datagroup # 二維數組從后往前下標值 self.counterIndex = len(datagroup)-1 # 每次輸出數組數值的下標值數組(初始化為0) self.counter = [0 for i in range(0, len(self.datagroup))] # 計算數組長度 def countlength(self): i = 0 length = 1 while(i < len(self.datagroup)): length *= len(self.datagroup[i]) i += 1 return length # 遞歸處理輸出下標 def handle(self): # 定位輸出下標數組開始從最后一位遞增 self.counter[self.counterIndex]+=1 # 判斷定位數組最后一位是否超過長度,超過長度,第一次最后一位已遍歷結束 if self.counter[self.counterIndex] >= len(self.datagroup[self.counterIndex]): # 重置末位下標 self.counter[self.counterIndex] = 0 # 標記counter中前一位 self.counterIndex -= 1 # 當標記位大於等於0,遞歸調用 if self.counterIndex >= 0: self.handle() # 重置標記 self.counterIndex = len(self.datagroup)-1 # 排列組合輸出 def assemble(self): length = self.countlength() i = 0 while(i < length): attrlist = [] j = 0 while(j<len(self.datagroup)): attrlist.append(self.datagroup[j][self.counter[j]]) j += 1 print(attrlist) self.handle() i += 1 if __name__ == "__main__": # 構造二維數組 datagroup = [['aa1', ], ['bb1', 'bb2'], ['cc1', 'cc2', 'cc3']] # 創建cartesian對象 cartesian = Cartesian(datagroup) cartesian.assemble()
三:題目:
使用python把每隔一分鍾訪問200次的IP,加到黑名單。
要求:每隔一分鍾讀取一下日志文件,把統計到的Ip添加到黑名單。

import time pin = 0 while True: ips = [] fr = open('assce.log') fr.seek(pin) for line in fr: ip = line.split()[0] # 因為日志文件中每行的首個字符串是ip,與后面字符之間的分割是符號空格,所以用split()分割后,返回的list中第一個值就是ip地址,取【0】 ips.append(ip) new_ips = set(ips) # 轉換為集合 for new_ip in new_ips: if ips.count(new_ip) > 200: print('加入黑名單的ip是:%s' % new_ip) pin = fr.tell() # 記錄讀完的指針位置 time.sleep(60)
四:題目:
一輛卡車違反交通規則,撞人后逃跑.現場有三人目擊事件,但都沒有記住車號,只記下車號的一些特征.
甲說:牌照的前兩位數字是相同的;
乙說:牌照的后兩位數字是相同的,但與前兩位不同;
丙是數學家,他說:四位的車號所構成的數字正好等於某一個整數的平方.
請根據以上線索求出車號.
提示:四位整數中的完全平方數 的取值范圍:32的平方—99的平方.

#!/usr/bin/env python #coding:utf-8 from math import sqrt for i in range(1,10): for j in range(1,10): number = 1000 * i + 100 * i + 10 * j + j if sqrt(number)==int(sqrt(number)): print(number)
五:題目:
要求對目錄下的文件進行增和刪除的監控,如果有增和刪打印出來,並打印文件名。
要求:使用python3使用最簡單的方法。

#!/usr/bin/env python #coding:utf-8 import os, time path_to_watch = "." before = dict ([(f, None) for f in os.listdir (path_to_watch)]) while 1: time.sleep (10) after = dict ([(f, None) for f in os.listdir (path_to_watch)]) added = [f for f in after if not f in before] removed = [f for f in before if not f in after] if added: print("Added: ", ", ".join (added)) if removed: print("Removed: ", ", ".join (removed)) before = after
六:題目:
使用python統計一下ip以及出現的次數。
要求:內存比較小,所以不能在內存里計算。

import re,time def mail_log(file_path): global count log=open(file_path,'r') C=r'\.'.join([r'\d{1,3}']*4) find=re.compile(C) count={} for i in log: for ip in find.findall(i): count[ip]=count.get(ip,1)+1 if __name__ == '__main__': print(time.clock()) num=0 mail_log(r'assce.log') R=count.items() for i in R: if i[1]>0: #提取出現次數大於0的IP print(i) num+=1 print('符合要求數量:%s耗時(%s)'%(num,time.clock()))
①3000多本Python電子書有
②Python開發環境安裝教程有
③Python400集自學視頻有
④軟件開發常用詞匯有
⑤Python學習路線圖有
⑥項目源碼案例分享有
如果你用得到的話可以直接拿走,在我的QQ技術交流群里(純技術交流和資源共享,廣告勿入)可以自助拿走,群號是【881744585】