18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 編程學習 >> Python >> 正文

Python之實例分析_Python實例

作者:佚名    文章來源:網友    點擊數:    更新時間:2023/10/31

實例一、溫度轉換

溫度刻畫的兩(liang) 種不同體(ti) 係,是攝氏度和華氏度,

攝氏度:以1標準大氣壓下水的結冰點為(wei) 0度,沸點為(wei) 100度,中國等世界大多數國家使用;
華氏度:以1標準大氣壓下水的結冰點為(wei) 32度,沸點為(wei) 212度,英美等國家使用;
係,

1,輸入:輸入帶華氏或攝氏標致的溫度值,,
2,處理:根據溫度標致選擇適當的溫度轉換算法,
3,輸出:輸出帶攝氏或華氏的溫度值,
<F標識華氏度,C表示攝氏度,

華氏轉換公式:F=C*1.8+32
攝氏轉換公式:C=(F-32)/1.8

#TempConvert.py TempStr = input("請輸入帶有符號的溫度值:") if TempStr[-1] in ['F','f']: C = (eval(TempStr[0:1])-32)/1.8 print('轉換後的溫度是{:.2f}C'.format(C)) elif TempStr[-1] in ['C','c']: F = 1.8*eval(TempStr[0:1])+32 print("轉換後的溫度是{:.2f}F".format(F)) else: print("輸入格式錯誤")

溫度轉換問題是各類轉換問題的代表性問題,如貨幣轉換、長度轉換、重量轉換、麵積轉換等

實例二、天天向上的力量

問題1:千分之一的力量
-一年365天,每天進步千分之一,累計進步多少呢?
-一年365天,每天退步千分之一,累計剩下多少呢?

#DayDayUpQ1.py dayup=pow(1.001,365) daydown=pow(0.999,365) print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))

問題2:千分之五和白分之一的力量
-一年365天,每天進步千分之五或百分之一,累計退步多少呢?
-一年365天,每天退步千分之五或百分之一,累計退步多少呢?

#DayDayUpQ2.py dayfactor=0.005 dayup=pow(1+dayfactor,365) daydown=pow(1-dayfactor,365) print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))

#DayDayUpQ2.py
dayfactor=0.01
dayup=pow(1+dayfactor,365)
daydown=pow(1-dayfactor,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))

問題3:工作日的力量
-一年365天,一周5個(ge) 公作日,每天進步1%
-一年365天,一周2個(ge) 公作日,每天退步1%
-這種工作日的力量,如何呢?

#DayDayUp3.py dayup=1.0 dayfactor=0.01 for i in range(365): if i % 7 in [6,0]: dayup=dayup*(1-dayfactor) else: dayup=dayup*(1+dayfactor) print("工作日的力量:{:.2f}".format(dayup))

問題4:工作日的努力
-工作日模式要努力到什麽(me) 水平,才能與(yu) 每天努力1%一樣?
假設兩(liang) 個(ge) 人
-A君:一年365天,每天進步1%,不停歇
-B君:一年365天,每周工作5天休息2天,休息日下降1%,要多努力呢?

#DayDayUpQ4.py def dayUP(df): dayup=1 for i in range(365): if i % 7 in [6,0]: dayup=dayup*(1-0.01) else: dayup=dayup*(1+df) return dayup dayfactor=0.01 while dayUP(dayfactor)<37.78: dayfactor+=0.001 print("工作日的努力參數是:{:.3f}".format(dayfactor))

實例三、python蟒蛇的繪製

參考turtle庫專(zhuan) 題內(nei) 容:python蟒蛇繪製

實例四、文本進度條

1、文本進度條 簡單的開始

#TextProBarV1.py import time scale = 10 print("------執行開始------") for i in range(scale+1): a = '*' * i b = '.' * (scale - i) c = (i/scale)*100 print("{:^3.0f}%[{}->{}]".format(c,a,b)) time.sleep(0.1) print("------執行結束------")

2、文本進度條 單行動態刷新

#TextProBarV2.py import time for i in range(101): print("\r{:3}%".format(i), end="") time.sleep(0.1)

3、文本進度條 實例完整效果

#TextProBarV3.py import time scale = 50 print("執行開始".center(scale//2, "-")) start = time.perf_counter() for i in range(scale+1): a = '*' * i b = '.' * (scale - i) c = (i/scale)*100 dur = time.perf_counter() - start print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end='') time.sleep(0.1) print("\n"+"執行結束".center(scale//2,'-'))

實例五、身體(ti) 質量指數BMI

國際:

#CalBMIv1.py height, weight = eval(input("請輸入身高(米)和體(ti) 重(公斤)[逗號隔開]: ")) bmi = weight / pow(height, 2) print("BMI 數值為(wei) :{:.2f}".format(bmi)) who = "" if bmi < 18.5: who = "偏瘦" elif 18.5 <= bmi < 25: who = "正常" elif 25 <= bmi < 30: who = "偏胖" else: who = "肥胖" print("BMI 指標為(wei) :國際'{0}'".format(who))

國內(nei) :

#CalBMIv2.py height, weight = eval(input("請輸入身高(米)和體(ti) 重\(公斤)[逗號隔開]: ")) bmi = weight / pow(height, 2) print("BMI 數值為(wei) :{:.2f}".format(bmi)) nat = "" if bmi < 18.5: nat = "偏瘦" elif 18.5 <= bmi < 24: nat = "正常" elif 24 <= bmi < 28: nat = "偏胖" else: nat = "肥胖" print("BMI 指標為(wei) :國內(nei) '{0}'".format(nat))

兩(liang) 個(ge) 同時:

#CalBMIv3.py height, weight = eval(input("請輸入身高(米)和體(ti) 重(公斤)[逗號隔開]: ")) bmi = weight / pow(height, 2) print("BMI 數值為(wei) :{:.2f}".format(bmi)) who, nat = "", "" if bmi < 18.5: who, nat = "偏瘦", "偏瘦" elif 18.5 <= bmi < 24: who, nat = "正常", "正常" elif 24 <= bmi < 25: who, nat = "正常", "偏胖" elif 25 <= bmi < 28: who, nat = "偏胖", "偏胖" elif 28 <= bmi < 30: who, nat = "偏胖", "肥胖" else: who, nat = "肥胖", "肥胖" print("BMI 指標為(wei) :國際'{0}', 國內(nei) '{1}'".format(who, nat))

實例六、圓周率的計算

公式法

#CalPiV1.py pi = 0 N = 100 for k in range(N): pi += 1/pow(16,k)*( \ 4/(8*k+1) - 2/(8*k+4) - \ 1/(8*k+5) - 1/(8*k+6) ) print("圓周率值是: {}".format(pi))

蒙特卡羅方法

#CalPiV2.py from random import random from time import perf_counter DARTS = 1000*1000 hits = 0.0 start = perf_counter() for i in range(1, DARTS+1): x, y = random(), random() dist = pow(x ** 2 + y ** 2, 0.5) if dist <= 1.0: hits = hits + 1 pi = 4 * (hits/DARTS) print("圓周率值是: {}".format(pi)) print("運行時間是: {:.5f}s".format(perf_counter() - start))

實例七、七段數碼管繪製

版本一:

#SevenDigitsDrawV1.py import turtle def drawLine(draw): #繪製單段數碼管 turtle.pendown() if draw else turtle.penup() turtle.fd(40) turtle.right(90) def drawDigit(digit): #根據數字繪製七段數碼管 drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False) drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False) drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False) drawLine(True) if digit in [0,2,6,8] else drawLine(False) turtle.left(90) drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False) drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False) drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False) turtle.left(180) turtle.penup() turtle.fd(20) def drawDate(date): #獲得要輸出的數字 for i in date: drawDigit(eval(i)) #通過eval()函數將數字變為(wei) 整數 def main(): turtle.setup(800, 350, 200, 200) turtle.penup() turtle.fd(-300) turtle.pensize(5) drawDate('20181010') turtle.hideturtle() turtle.done() main()

版本二:

#SevenDigitsDrawV2.py import turtle, time def drawGap(): #繪製數碼管間隔 turtle.penup() turtle.fd(5) def drawLine(draw): #繪製單段數碼管 drawGap() turtle.pendown() if draw else turtle.penup() turtle.fd(40) drawGap() turtle.right(90) def drawDigit(d): #根據數字繪製七段數碼管 drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False) drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,2,6,8] else drawLine(False) turtle.left(90) drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False) drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False) drawLine(True) if d in [0,1,2,3,4,7,8,9] else drawLine(False) turtle.left(180) turtle.penup() turtle.fd(20) def drawDate(date): turtle.pencolor("red") for i in date: if i == '-': turtle.write('年',font=("Arial", 18, "normal")) turtle.pencolor("green") turtle.fd(40) elif i == '=': turtle.write('月',font=("Arial", 18, "normal")) turtle.pencolor("blue") turtle.fd(40) elif i == '+': turtle.write('日',font=("Arial", 18, "normal")) else: drawDigit(eval(i)) def main(): turtle.setup(800, 350, 200, 200) turtle.penup() turtle.fd(-350) turtle.pensize(5) # drawDate('2018-10=10+') drawDate(time.strftime('%Y-%m=%d+',time.gmtime())) turtle.hideturtle() turtle.done() main()

實例八、科赫曲線繪製

#KochDrawV1.py
import turtle
def koch(size, n):
    if n == 0:
        turtle.fd(size)
    else:
        for angle in [0, 60, -120, 60]:
           turtle.left(angle)
           koch(size/3, n-1)
def main():
    turtle.setup(800,400)
    turtle.penup()
    turtle.goto(-300, -50)
    turtle.pendown()
    turtle.pensize(2)
    koch(600,3)     # 0階科赫曲線長度,階數
    turtle.hideturtle()
main()

科赫雪花繪製

#KochDrawV2.py import turtle def koch(size, n): if n == 0: turtle.fd(size) else: for angle in [0, 60, -120, 60]: turtle.left(angle) koch(size/3, n-1) def main(): turtle.setup(600,600) turtle.penup() turtle.goto(-200, 100) turtle.pendown() turtle.pensize(2) level = 3 # 3階科赫雪花,階數 koch(400,level) turtle.right(120) koch(400,level) turtle.right(120) koch(400,level) turtle.hideturtle() main()

實例九、基本統計值計算

#CalStatisticsV1.py
def getNum():       #獲取用戶不定長度的輸入
    nums = []
    iNumStr = input("請輸入數字(回車退出): ")
    while iNumStr != "":
        nums.append(eval(iNumStr))
        iNumStr = input("請輸入數字(回車退出): ")
    return nums
def mean(numbers):  #計算平均值
    s = 0.0
    for num in numbers:
        s = s + num
    return s / len(numbers)
def dev(numbers, mean): #計算方差
    sdev = 0.0
    for num in numbers:
        sdev = sdev + (num - mean)**2
    return pow(sdev / (len(numbers)-1), 0.5)
def median(numbers):    #計算中位數
    sorted(numbers)
    size = len(numbers)
    if size % 2 == 0:
        med = (numbers[size//2-1] + numbers[size//2])/2
    else:
        med = numbers[size//2]
    return med
n =  getNum() #主體(ti) 函數
m =  mean(n)
print("平均值:{},方差:{:.2},中位數:{}.".format(m, dev(n,m),median(n)))

實例10、文本詞頻統計

Hamlet詞頻統計

#CalHamletV1.py def getText(): txt = open("hamlet.txt", "r").read() txt = txt.lower() for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~': txt = txt.replace(ch, " ") #將文本中特殊字符替換為(wei) 空格 return txt hamletTxt = getText() words = hamletTxt.split() counts = {} for word in words: counts[word] = counts.get(word,0) + 1 items = list(counts.items()) items.sort(key=lambda x:x[1], reverse=True) for i in range(10): word, count = items[i] print ("{0:<10}{1:>5}".format(word, count))

三國演義(yi) 》人物出場統計(上)(含《三國演義(yi) 》原文文本)

#CalThreeKingdomsV1.py import jieba txt = open("threekingdoms.txt", "r", encoding='utf-8').read() words = jieba.lcut(txt) counts = {} for word in words: if len(word) == 1: continue else: counts[word] = counts.get(word,0) + 1 items = list(counts.items()) items.sort(key=lambda x:x[1], reverse=True) for i in range(15): word, count = items[i] print ("{0:<10}{1:>5}".format(word, count))

《三國演義(yi) 》人物出場統計(下)(含《三國演義(yi) 》原文文本)

#CalThreeKingdomsV2.py
import jieba
excludes = {"將軍","卻說","荊州","二人","不可","不能","如此"}
txt = open("threekingdoms.txt", "r", encoding='utf-8').read()
words  = jieba.lcut(txt)
counts = {}
for word in words:
    if len(word) == 1:
        continue
    elif word == "諸葛亮" or word == "孔明曰":
        rword = "孔明"
    elif word == "關公" or word == "雲長":
        rword = "關羽"
    elif word == "玄德" or word == "玄德曰":
        rword = "劉備"
    elif word == "孟德" or word == "丞相":
        rword = "曹操"
    else:
        rword = word
    counts[rword] = counts.get(rword,0) + 1
for word in excludes:
    del counts[word]
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True) 
for i in range(10):
    word, count = items[i]
    print ("{0:<10}{1:>5}".format(word, count))
Tags:Python,案例,代碼,實例代碼  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊。 昵稱:注冊  登錄
[ 查看全部 ] 網友評論
關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁麵
下到頁底
晶體管查詢