A. python循環、遞歸
for 變數 in range(次數):<被執行的語句> 變數:表示每次循環的次數,0-1之間
range(n)n表示產生0到n-1的整數序列共N個 range(m,n) 產生m到n-1的整數序列,共n-m個
循環for語句 :for 循環變數 in遍歷結構:<語句體1> else:<語句體2>
無限循環: while條件: 語句塊
while 條件:語句體1 else: 語句體2
循環保留字:break continue
方法1:from random import random
from time import perf_counter
DARTS=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))
方法2:
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))
def 函數名 (0個或者多個):函數體 renturn 返回值
def 函數名 (非可選參數,可選參數):函數體 renturn 返回值
參數傳遞的兩種方式:位置傳遞,名稱傳遞
科赫雪花:
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(400,200)
turtle.penup()
turtle.pendown()
turtle.pensize(2)
l=3
koch(600,l)
turtle.right(120)
turtle.pencolor('blue')
koch(600,l)
turtle.right(120)
turtle.pencolor('red')
koch(600,l)
turtle.speed(3000)
turtle.hideturtle()
main()
階乘:
def fact(n):
s=1
for i in range(1,n+1):
s*=i
return s
c=eval(input("從鍵盤輸入一個數字"))
print("階乘結果",fact(c))
B. python中的循環結構
循環結構的應用場景
如果在程序中我們需要重復的執行某條或某些指令,例如用程序控制機器人踢足球,如果機器人持球而且還沒有進入射門范圍,那麼我們就要一直發出讓機器人向球門方向奔跑的指令。當然你可能已經注意到了,剛才的描述中其實不僅僅有需要重復的動作,還有我們上一個章節講到的分支結構。再舉一個簡單的例子,比如在我們的程序中要實現每隔1秒中在屏幕上列印一個"hello, world"這樣的字元串並持續一個小時,我們肯定不能夠將print('hello, world')這句代碼寫上3600遍,如果真的需要這樣做那麼編程的工作就太無聊了。因此,我們需要了解一下循環結構,有了循環結構我們就可以輕松的控制某件事或者某些事重復、重復、再重復的發生。在Python中構造循環結構有兩種做法,一種是for-in循環,一種是while循環。
for-in循環
如果明確的知道循環執行的次數或者是要對一個容器進行迭代(後面會講到),那麼我們推薦使用for-in循環,例如下面代碼中計算。
"""
用for循環實現1~100求和
"""
sum = 0
for x in range(101):
sum += x
print(sum)
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
需要說明的是上面代碼中的range類型,range可以用來產生一個不變的數值序列,而且這個序列通常都是用在循環中的,例如:
range(101)可以產生一個0到100的整數序列。
range(1, 100)可以產生一個1到99的整數序列。
range(1, 100, 2)可以產生一個1到99的奇數序列,其中的2是步長,即數值序列的增量。
知道了這一點,我們可以用下面的代碼來實現1~100之間的偶數求和。
"""
用for循環實現1~100之間的偶數求和
"""
sum = 0
for x in range(2, 101, 2):
sum += x
print(sum)
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
也可以通過在循環中使用分支結構的方式來實現相同的功能,代碼如下所示。
"""
用for循環實現1~100之間的偶數求和
"""
sum = 0
for x in range(1, 101):
if x % 2 == 0:
sum += x
print(sum)
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
while循環
如果要構造不知道具體循環次數的循環結構,我們推薦使用while循環,while循環通過一個能夠產生或轉換出bool值的表達式來控制循環,表達式的值為True循環繼續,表達式的值為False循環結束。下面我們通過一個「猜數字」的小游戲(計算機出一個1~100之間的隨機數,人輸入自己猜的數字,計算機給出對應的提示信息,直到人猜出計算機出的數字)來看看如何使用while循環。
"""
猜數字游戲
計算機出一個1~100之間的隨機數由人來猜
計算機根據人猜的數字分別給出提示大一點/小一點/猜對了
"""
import random
answer = random.randint(1, 100)
counter = 0
while True:
counter += 1
number = int(input('請輸入: '))
if number < answer:
print('大一點')
elif number > answer:
print('小一點')
else:
print('恭喜你猜對了!')
break
print('你總共猜了%d次' % counter)
if counter > 7:
print('你的智商余額明顯不足')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
說明: 上面的代碼中使用了break關鍵字來提前終止循環,需要注意的是break只能終止它所在的那個循環,這一點在使用嵌套的循環結構(下面會講到)需要引起注意。除了break之外,還有另一個關鍵字是continue,它可以用來放棄本次循環後續的代碼直接讓循環進入下一輪。
和分支結構一樣,循環結構也是可以嵌套的,也就是說在循環中還可以構造循環結構。下面的例子演示了如何通過嵌套的循環來輸出一個九九乘法表。
"""
C. python基本結構有哪三種
程序的基本結構
程序由三種基本結構組成:順序結構、分支結構和循環結構。任何程序都由這三種基本結構組合而成。
這些基本結構都有一個入口和一個出口。任何程序都由這三種基本結構組合而成。
順序結構
順序結構是程序按照線性順序依次執行的一種運行方式,其中語句塊1S1和語句塊S2表示一個或一組順序執行的語句。
分支結構
分支結構是程序根據條件判斷結果而選擇不同向前執行路徑的一種運行方式,基礎的分支結構是二分支結構。由二分支結構會組合形成多分支結構。
循環結構
循環結構是程序根據條件判斷結果向後反復執行的一種運行方式,根據循環體觸發條件不同,包括條件循環和遍歷循環結構。
D. Python中常見的循環結構有兩種實現方式:一是_____;二是_____
循環結構有兩種實現方式:
一是:for語句
二是:while語句
E. python-數據結構 循環隊列的實現 設計循環隊列
Leet Code 原題鏈接
Leet Code 原題動畫演示視頻
設計你的循環隊列實現。 循環隊列是一種線性數據結構,其操作表現基於 FIFO(先進先出)原則並且隊尾被連接在隊首之後以形成一個循環。它也被稱為「環形緩沖器」。
循環隊列的一個好處是我們可以利用這個隊列之前用過的空間。在一個普通隊列里,一旦一個隊列滿了,我們就不能插入下一個元素,即使在隊列前面仍有空間。但是使用循環隊列,我們能使用這些空間去存儲新的值。
你的實現應該支持如下操作:
Design your implementation of the circular queue. The circular queue is a linear data structure in which the operations are performed based on FIFO (First In First Out) principle and the last position is connected back to the first position to make a circle. It is also called "Ring Buffer".
One of the benefits of the circular queue is that we can make use of the spaces in front of the queue. In a normal queue, once the queue becomes full, we cannot insert the next element even if there is a space in front of the queue. But using the circular queue, we can use the space to store new values.
Your implementation should support the following operations:
我們仔細研究一下 Leet Code 原題動畫演示視頻 這一個視頻,發現來判斷隊空和隊滿的條件。假定我們有兩個指針,分別為頭指針head和尾指針tail。
F. python 循環中嵌套循環 循環次數不固定
是不固定的。
Python不僅支持if語句相互嵌套,while和for循環結構也支持嵌套。所謂嵌套(Nest),就是一條語句裡面還有另一條語句,例如for裡面還有forwhile裡面還有while,甚至while中for或者for中有while也都是允許的。
G. pythonfor循環語句是什麼
Python for 循環語句:遍歷任何序列的項目,可以是字元串、列表、元組、字典、集合對象。
功能
for 循環提供了python中最強大的循環結構(for循環是一種迭代循環機制,而while循環是條件循環,迭代即重復相同的邏輯操作,每次操作都是基於上一次的結果,而進行的)。
Python for循環可以遍歷任何序列的項目,如一個列表或者一個字元串。
語法
for循環的一般格式如下:
for iter_var in iterable:
suite_to_repeat
註解:每次循環, iter_var 迭代變數被設置為可迭代對象(序列, 迭代器, 或者是其他支持迭代的對 象)的當前元素, 提供給 suite_to_repeat 語句塊使用。
H. python的程序結構有哪幾種
①順序結構:即語句從上到下按順序執行
②分支結構:一條大路,會有很多分支路口。在python常用if..elif..else判斷語句
③循環結構:例如像放歌一樣,歌單循環播放。在python常用while循環或是for循環
I. 在Python中,選擇結構和循環結構必須帶有else子句
不是必須使用,根據需要來使用。
比如單分支結構,只有一個條件情況需要有觸發,那麼就沒有else。
循環結構的else觸發條件是,對應的循環體,一次都沒有執行,或者完整的執行完,沒有觸發break。就像例子那樣,for循環完整走完,沒有觸發break,這時就會觸發else,否則就會跳過。