python-for x in range的用法(註意要點、細節)

for x in ...循環 就是把每個元素代入變量x,然後執行縮進塊的語句。

range()函數,可以生成一個整數序列,再通過list()函數可以轉換為list。

比如我們想計算1-10的整數之和,

可以用一個sum變量做累加:

sum = 0 
for x in [1,2,3,4,5,6,7,8,9,10]: 
sum = sum + x 
print(sum)
sum = 0 
for x in range(11): 
sum = sum + x 
print(sum)

以上兩種表示方法,結果相同。簡單易錯哦!一定要細心

range(101)就可以生成0-100的整數序列

計算如下:

sum = 0 
for x in range(101): 
sum = sum + x 
print(sum)

補充:Python中的for i in range(range()函數的for循環)如何使用,詳細介紹

range函數的for循環

1.定義

range是一個函數,它返回的是一個可迭代對象,大多使用於for循環中。相當於C/Java 裡面的 for (int i = m; i < n; i++)循環

2.兩種形式

range(stop)
range(start, stop[, step])

start作為開始值,開始值作為開始的那個數,不輸入的話默認從0開始

stop作為結束值,結束值所代表的不是結束的那個值,而是結束的那個下標,結束值的下標是從0開始算起。例如你輸入5,那麼輸出之後就是4。(註意:結束值不可省略)

step作為步進值,不進值代表一次你想要步進多少個,假如輸入1的話,那輸出之後就可以看到每一個數據之間相隔瞭1的差距,如果步進值省略的話,它的默認值依舊是1,隻有當你自己輸入其他的步進值,它才會改變。

3.可理解性例子

根據代碼來理解range函數的重要值,將代碼復制到你的pycharm中,就可以看到三個值的含義瞭

代碼

#coding=utf-8
import time
#代表1到4,不包含4
for i in  range(1, 4):
    print(i)
#設置停頓三秒
time.sleep(3)
#代表1到10,間隔2,不包含10
for i in range(1, 10, 2):
    print(i)
time.sleep(3)
#代表0到5,不包含5
for i in range(5):
    print(i)
time.sleep(3)

4.range函數的特性詳述

4.1 左閉右開

eg:

代碼:

#1<=i<6
for i in  range(1, 6):
    print(i)

輸出結果

在這裡插入圖片描述

從上圖可知,1是取到的,而6是沒有取到的,相當於數學中的左閉右開區間[1,6)

4.2 開始值默認為0

如果開始值不寫的話,就會默認從0開始

eg:

代碼

#開始值不輸入的話默認從0開始,打印輸出0到9
for i in  range(10):
    print(i)

運行結果

在這裡插入圖片描述

4.3 步長值默認為1

代碼

#步長值不輸入的話默認為1
for i in  range(1, 10):
    print(i)

運行結果

在這裡插入圖片描述

當我們輸入步長值為2的時候:

代碼

#步長值輸入為2
for i in  range(1, 10, 2):
    print(i)

運行結果

在這裡插入圖片描述

由上可知,步長值為2的時候,他的間隔就為2

4.4 range函數的反向輸出

代碼

#打印輸出10,9,8,7,6,5,4,3,2,1,0
for i in range(10, -1, -1):
    print(i)

運行結果

在這裡插入圖片描述

由上可知,range(10,-1,-1)反向輸出10,9,8,7,6,5,4,3,2,1,0。此時的結束值為-1,而-1取不到,因此取到0,長是-1,相當於每次-1。

5.與列表list的使用

代碼

list1 = ["看不", "見你", "的", "笑", "我怎麼", "睡", "得", "著"]
for i in range(len(list1)):
    print(i, list1[i])

運行結果

在這裡插入圖片描述

6.range與list的區別

range()是依次取順序的數值,常與for循環一起用,如for范圍內的每個(0, 5):for循環執行5次,每個取值是0〜4 而list()是把字符串轉換為列表,如a = ‘01234’ , b = list(a), a打印出來會是一個列表:[‘0′, ‘1’,‘2’,‘3’,‘4′], 如a = [0, 1, 2, 3, 4],輸出的結果就會是[0, 1, 2, 3, 4]

代碼

#對比range與list
for i in range(0, 5):
    print(i)
a = [0, 1, 2, 3, 4]
print(a)

運行結果

在這裡插入圖片描述

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀: