實例

1、列表內(nèi)數(shù)據(jù)排序(由小到大)

# coding:utf-8
# 列表內(nèi)數(shù)值按照從大到小的順序排序

def sub_sort(array,low,high):
    key = array[low]
    while low < high:
        while low < high and array[high] >= key:
            high -= 1
        while low < high and array[high] < key:
            array[low] = array[high]
            low += 1
            array[high] = array[low]
    array[low] = key
    return low

def quick_sort(array,low,high):
    if low < high:
        key_index = sub_sort(array,low,high)
        quick_sort(array,low,key_index)
        quick_sort(array,key_index+1,high)


array = [8,10,9,6,4,16,5,13,26,18,2,45,34,23,1,7,3]
print('\n原來列表為:')
print(array)
quick_sort(array,0,len(array)-1)
print('\n排序后列表為:')
print(array)

運行結(jié)果如下:


排序示例

2、猜數(shù)字

# coding:utf-8
# 猜數(shù)字游戲

import random

print('===猜數(shù)字游戲現(xiàn)在開始===')
print()
i=1
a=random.randint(0,100)
b=int(input('請輸入一個0~100以內(nèi)有任意整數(shù)并回車確認(rèn):'))
print()
while b!=a:
    print()
    if b<a:
        print('第%d次輸入,小了'%i)
        print()
        b=int(input('請繼續(xù)輸入:'))
    else:
        print('第%d次輸入,大了'%i)
        print()
        b=int(input('請繼續(xù)輸入:'))
    i+=1
else:
    print()
    print('===恭喜,答對了!?。?==')
運行界面

3、婓波那契數(shù)列

# coding:utf-8

#婓波那契數(shù)列
# f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)  (n>=2)

def f(s):
    if s == 0:
        return 0
    elif s==1:
        return 1
    else:
        return f(s-1)+f(s-2)

if __name__ == "__main__":
    n=25
    print(f(n))

4、階乘

# 階乘
def jiecheng(n):
    i = 1
    result = 1
    while i < (n+1):
        result *= i
        i += 1
    return result


print(jiecheng(3))

5、字符串反轉(zhuǎn)

#自定義函數(shù)實現(xiàn)字符串反轉(zhuǎn)

# 定義函數(shù)
def reverse(s):
    if s=="": #如果字符串為空
        return s #返回字符串本身
    else:
        return reverse(s[1:])+s[0] #取字符串第一個字符放到最后,剩下的字符串再執(zhí)行本函數(shù)

if __name__ = "__main__":
    #執(zhí)行函數(shù)
    s="hello world!" #給出字符串s
    e=reverse(s) #執(zhí)行反轉(zhuǎn)函數(shù)并賦值給e
    print(e) #打印e。
image.png

6、BMI指數(shù)

# 計算BMI指數(shù),并判斷其在國際指標(biāo)和國內(nèi)指標(biāo)中的肥胖程度

height,weight=eval(input("請輸入身高(米)和體重(千克)【逗號隔開】:"))
# 跟別給height和weight賦值

bmi=weight/pow(height,2)
# pow(a,b)
print("BMI指數(shù)為{:.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指數(shù)為:國際{},國內(nèi){}".format(who,nat))

運行結(jié)果:
運行結(jié)果

7 長度單位互換

a=input('請輸入帶有單位的長度,公制單位為m,英制單位為in :')

if a[-1] in ["m","M"]:
    inch=eval(a[0:-1])*39.37
    print("{:.3f}in".format(inch))
elif a[-1] in ["n","N"]:
    mi=eval(a[0:-2])/39.37
    print("{:.3f}m".format(mi))
運行結(jié)果

8、字符串反轉(zhuǎn)

#自定義函數(shù)實現(xiàn)字符串反轉(zhuǎn)

def rvs(s):
    if s=="": #如果字符串為空
        return s #返回字符串本身
    else:
        e = rvs(s[1:])+s[0]
        return e #取字符串第一個字符放到最后,剩下的字符串再執(zhí)行本函數(shù)

#執(zhí)行函數(shù)
s="hello world!" #給出字符串s
e=rvs(s) #執(zhí)行反轉(zhuǎn)函數(shù)并賦值給e
print(e) #打印e。

9、打印乘法小九九

# 打印乘法小九九

for i in range(1,10):
    print()
    for j in range(1,(i+1)):
       a=i*j
       print("{}×{}={:.0f}".format(i,j,a),end="   ") 
運行結(jié)果

10、數(shù)字進(jìn)度條

10.1 第一種

# TextProBarV1.py
# 文本進(jìn)度條

import time #引用‘time’庫。
scale=10 #變量'scale'賦值為10
print("------start------") #輸出字符
for i in range(scale+1):   #循環(huán)語句,i從0到10一共是11個數(shù),所以要in range(scale+1)
    a='*'*i   #給a復(fù)制為字符串i個“*”,用來記錄完成的進(jìn)度
    b='.'*(scale-i)   #給b復(fù)制為字符串“scale-i”個“.”,用來記錄剩下的進(jìn)度
    c=(i/scale)*100   #給c復(fù)制為完成進(jìn)度的百分制,單位是%
    print("{:^3.0f}%[{}->{}]".format(c,a,b))
    '''輸出。格式是"c%[a->b].其中“:”是引導(dǎo)符,
    “^"表示居中對齊,相對應(yīng)的的,左對齊”<",右對齊”>"。
    “3”表示字符長度為3個字符,“.0"表示小數(shù)點后0位。
    “.數(shù)字”表示的精度值;
    "f"表示采用非科學(xué)計數(shù)法的格式類型輸出浮點數(shù)'''   
    time.sleep(0.1)      #休眠01秒后進(jìn)行下一個進(jìn)程。    
print("------end------") #輸出字符, 提示本文本進(jìn)度條程序執(zhí)行完畢。
運行結(jié)果

10.2 第二種:文本進(jìn)度單行刷新

# TexProBarv2.py
# 文本進(jìn)度單行刷新。
import time
for i in range(101):
    print("\r{:3}%".format(i),end="")   
    '''\r表示光標(biāo)回退至行首,本行的意思是在print時,每輸出一次內(nèi)容,光標(biāo)就回退至行首,
    重新再輸出,從而實現(xiàn)單行刷新而不再是多行輸出。
    “end=""”主要是改變輸出時的自動換行,從而實現(xiàn)單行輸出。'''
    time.sleep(0.1)
顯示過程

10.3 第三種

# TexProBarV3.py

import time
scale=50
print("執(zhí)行開始".center(scale//2,"-"))
start=time.perf_counter()           #讀取當(dāng)前時間
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"+"執(zhí)行結(jié)束".center(scale//2,"-"))
運行結(jié)果

11、matplotlib畫風(fēng)玫瑰圖并保存為png圖片

import numpy as np
import matplotlib.pyplot as plt

#=======自己設(shè)置開始============
#標(biāo)簽
labels = np.array(['N','NNE','NE','ENE','E','ESE','SE','SSE','S','SSW','SW','WSW','W','WNW','NW','NNW'])
#數(shù)據(jù)個數(shù)
dataLenth = 16
#數(shù)據(jù)
data = np.array([5.9,8.5,14.2,9.9,8.9,6.3,6.1,2.8,2.3,2.1,1.4,1.3,1.9,3.2,5.3,4.7])
angle = np.linspace(0, 2*np.pi, dataLenth, endpoint=False)
#========自己設(shè)置結(jié)束============

fig = plt.figure()

ax = fig.add_subplot(111, polar=True)# polar參數(shù)??!

n=0
while n < 15:
    if n%2==0:
        data1=[0,data[n],data[n+1],0]
        angle1=[0,angle[n],angle[n+1],0]
        ax.plot(angle1, data1,linewidth=1,color='black')# 畫線
        ax.fill(angle1, data1,facecolor='black', alpha=1)# 填充
    else:
        data1=[0,data[n],data[n+1],0]
        angle1=[0,angle[n],angle[n+1],0]
        ax.plot(angle1, data1,linewidth=1,color='black')# 畫線
    n+=1
angle1=[0,angle[15],angle[0],0]
data1=[0,data[15],data[0],0]
ax.plot(angle1, data1,linewidth=1,color='black')# 畫線
ax.set_theta_direction(-1) #設(shè)置旋轉(zhuǎn)方向為順時針,‘1’為逆時針,默認(rèn)為逆時針
ax.set_theta_zero_location('N') # 設(shè)置0度方向,默認(rèn)為E方向,本工程中設(shè)為N方向
ax.set_thetagrids(angle * 180/np.pi, labels, fontsize=10,fontproperties="SimHei")
ax.set_title("風(fēng)向風(fēng)玫瑰圖(靜風(fēng)C頻率11.5%)", va='bottom',fontsize=15,fontproperties="FangSong")
ax.set_rlim(0,15) #設(shè)置坐標(biāo)極大值
ax.set_rgrids(np.arange(3,15,3)) #設(shè)置坐標(biāo)內(nèi)部網(wǎng)格,在3到15之間按3的間隔方式設(shè)置網(wǎng)格
ax.set_rlabel_position(210)

ax.grid(True)
plt.savefig('fengmeiguitu.png')
plt.show()
運行結(jié)果

12、turtle畫多邊形并計算相關(guān)信息

# coding:utf-8

import turtle as t
n=input("請輸入多邊形的邊數(shù):")
t.color("red")
t.penup()
t.goto(0,-100)
t.pendown()
for i in range(eval(n)):
    t.fd(150)
    t.left(360/eval(n))

print()
print("您要畫的多邊形是:",n,"邊形,內(nèi)角和是:",(eval(n)-2)*180,"度")
print()
print("計算公式是:(",n,"-2)*180=",(eval(n)-2)*180,"度")
print()
print("每個角的度數(shù)是:",((eval(n)-2)*180)/eval(n),
      "計算公式是:",(eval(n)-2)*180,"/",n,"=",((eval(n)-2)*180)/eval(n))
image.png
image.png

13、排列組合。

在1、2、3、4,中能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?分別輸出,最后計算共有多少種?

# coding:utf-8

count=0
for i in range(1,5):
    '''
    range(start, stop, step),start為開始數(shù)值,stop為結(jié)束數(shù)值,表示計數(shù)從star開始,
    stop-1結(jié)束。start默認(rèn)可以省略表示從0開始。step表示步長,默認(rèn)省略表示步長為1
    '''
    for j in range(1,5):
        for k in range(1,5):
            if (i!=j) and (i!=k) and (j!=k):
                print(i,j,k)
                count += 1
print("共有{}種組合。".format(count))
print(f"共有{count}種組合。")

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容