python在哪些控制结构中使用else保留字_python的程序控制结构-循环结构与random库使用和圆周率案例--pyt...
python的程序控制結構-循環結構與random庫使用和圓周率案例--pyt
python的程序控制結構-循環結構與random庫使用和圓周率案例--python-7-days
循環結構
- for…in 遍歷循環: 計數、字符串、列表、文件…
- while無限循環
- continue和break保留字: 退出當前循環層次
- 循環else的高級用法: 與break有關
遍歷某個結構形成的循環運行方式
從遍歷結構中逐一提取元素,放在循環變量中
for <循環變量> in <遍歷結構> :
<語句塊>
由保留字for和in組成,完整遍歷所有元素后結束
每次循環,所獲得元素放入循環變量,并執行一次語句塊
遍歷循環的應用:計數循環(N次)
遍歷由range()函數產生的數字序列,產生循環
for i in range(N) :
<語句塊>
>>> for i in range(5):
print(i)
0
1
2
3
4
遍歷循環的應用:計數循環(特定次)
for i in range(M,N,K) :
<語句塊>
>>> for i in range(1,6,2):
print("Hello:",i)
Hello: 1
Hello: 3
Hello: 5
遍歷循環的應用:字符串遍歷循環
s是字符串,遍歷字符串每個字符,產生循環
for c in s :
<語句塊>
>>> for c in "Python123":
print(c, end=",")
P,y,t,h,o,n,1,2,3,
遍歷循環的應用:列表遍歷循環
ls是一個列表,遍歷其每個元素,產生循環
>>> for item in [123,"PY", 456] :
print(item, end=",")
123,PY,456,
遍歷循環的應用:文件遍歷循環
fi是一個文件標識符,遍歷其每行,產生循環
優美勝于丑陋
明了勝于隱晦
簡潔勝于復雜
>>> for line in fi :
print(line)
優美勝于丑陋
明了勝于隱晦
簡潔勝于復雜
由條件控制的循環運行方式
反復執行語句塊,直到條件不滿足時結束
>>> a = 3
>>> while a > 0 :
a = a - 1
print(a)
2
1
0
>>> a = 3
>>> while a > 0 :
a = a + 1
print(a)
4
5
… (CTRL + C 退出執行)
break跳出并結束當前整個循環,執行循環后的語句
continue結束當次循環,繼續執行后續次數循環
break和continue可以與for和while循環搭配使用
>>> for c in "PYTHON" :
if c == "T" :
continue
print(c, end="")
>>> PYHON
break僅跳出當前最內層循環
>>> s = "PYTHON"
>>> while s != "" :
for c in s :
if c == "T" :
break
print(c, end="")
s = s[:-1]
>>> PYPYPYPYPYP
當循環沒有被break語句退出時,執行else語句塊
else語句塊作為**"正常"完成循環的獎勵**
這里else的用法與異常處理中else用法相似
for ……else……
>>> for c in "PYTHON" :
if c == "T" :
continue
print(c, end="")
else:
print("正常退出")
>>> PYHON正常退出
>>> for c in "PYTHON" :
if c == "T" :
break
print(c, end="")
else:
print("正常退出")
>>> PY
random庫
random庫是使用隨機數的Python標準庫
偽隨機數: 采用梅森旋轉算法生成的(偽)隨機序列中元素
random庫主要用于生成隨機數
使用random庫: import random
1、 基本隨機數函數: seed(), random()
>>> import random
>>> random.seed(10)
>>> random.random()
0.5714025946899135
>>> random.random()
0.4288890546751146
>>> random.seed(10)
>>> random.random()
0.5714025946899135
>>> random.seed(10)
>>> random.random()
0.5714025946899135
2、 擴展隨機數函數: randint(), getrandbits(), uniform(),
randrange(), choice(), shuffle()
需要掌握的能力
能夠利用隨機數種子產生"確定"偽隨機數
能夠產生隨機整數
能夠對序列類型進行隨機操作
圓周率案例
使用圓周率的近似計算公式
#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("pi = {0},k = {1}".format(pi,k))
print("圓周率值是:{}".format(pi))
圓周率值是: 3.141592653589793
蒙特卡洛算法
#CalPiV2.py
from random import random
from time import perf_counter
DARTS = 1000*1000*10
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("y圓周率值是:{}".format(pi))
print("運行時間是:{:.5f}s".format(perf_counter()-start))
理解方法思維
數學思維:找到公式,利用公式求解
計算思維:抽象一種過程,用計算機自動化求解
誰更準確? (不好說…)
程序運行時間分析
使用time庫的計時方法獲得程序運行時間
改變撒點數量,理解程序運行時間的分布
初步掌握簡單的程序性能分析方法
計算問題的擴展
不求解圓周率,而是某個特定圖形的面積
在工程計算中尋找蒙特卡羅方法的應用場景
蒙特卡洛算法非常厲害的算法
記得曾經好像學過蒙特卡洛算法的推導,當時覺得又復雜又難懂,沒想到現在看來還挺有意思的,有空再去推一遍~
python的程序控制結構-循環結構與random庫使用和圓周率案例--pyt相關教程
總結
以上是生活随笔為你收集整理的python在哪些控制结构中使用else保留字_python的程序控制结构-循环结构与random库使用和圆周率案例--pyt...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转载:如何运用VI编辑器进行查找替换
- 下一篇: python和stata_从Python