在線實例詳解Python range()函數


本文轉自https://www.freeaihub.com/article/range-function-in-python.html,實例均在在線交互學習

在本文中,我們將range()在不同的示例的幫助下學習如何使用Python的函數。內置函數range()生成給定起始整數和終止整數之間的整數,即,它返回范圍對象。使用for循環,我們可以迭代該range()函數產生的數字序列。range()通過一個簡單的示例,讓我們了解如何使用Python 3 的功能。

print("Python range() example")
print("Get numbers from range 0 to 6")
for i in range(6):
    print(i, end=', ')

注意:由於range()函數不包含結果中的最后一個(停止)數字,因此我們獲得了0到5之間的整數 。

range()函數的語法和參數

range(start, stop[, step])

它需要三個參數。這三個參數中的三個是可選的。即,start和step是可選參數。

  1. 開始參數是序列的起始號碼。即下限。默認情況下,如果未指定,則以0開頭。
  2. 一個停止參數是一個上限。即,生成不超過該數字的數字。結果range()中不包括該數字。
  3. 步驟是在結果每個數字之間的差值。如果未指定,則該步驟的默認值為1。

range()函數示例

現在讓我們看看所有可能的情況。以下是range()函數的三個變體

# Print first 5 numbers using range function
for i in range(5):
    print(i, end=', ')

只有stop參數傳遞給range()。因此,默認情況下,它需要start = 0step = 1

示例二–使用兩個參數(即開始和停止)

# Print integers within given start and stop number using range()
for i in range(5, 10):
    print(i, end=', ')

注意:默認情況下,它的步進值為1。

示例三 –使用所有三個參數

# using start, stop, and step arguments in range()
print("Printing All even numbers between 2 and 10 using range()")
for i in range(2, 10, 2):
    print(i, end=', ')

所有三個參數,即指定start = 2stop = 10step = 2。步長值為2,因此每個數字之間的差為2。

實踐問題

在Python中使用range()函數生成從9到100可以被3整除的數字范圍。

解決方案

for i in range(9, 100, 3):
    print(i)

關於range()函數參數要記住的要點

  • range()僅適用於整數。所有參數必須是整數。您不能在的start,stop和step參數中使用浮點數或任何其他類型range()
  • 這三個參數都可以是正數或負數。
  • 步長值不能為零。如果步驟為零,Python會引發ValueError 異常。

使用range()進行循環

如您所知,for循環重復執行代碼或語句塊固定次數。使用for循環,我們可以遍歷該range()函數產生的數字序列。讓我們看看如何使用for循環和range()函數打印1到10之間的奇數。使用此示例,我們可以了解在一起i使用range()和for循環時如何獲得其價值。

for i in range(1, 10, 2):
    print("Current value of i is:", i)

for i in range()i中,是迭代器變量。要了解for i in range()Python的含義,首先,我們需要了解range()函數的工作原理。該range()函數使用生成器生成一個范圍內的數字,即,它不會一次生成所有數字。僅在for循環迭代要求時才生成下一個值。在每次循環迭代中,Python都會生成下一個值,並將其分配給iterator變量i

程序執行

  • 正如您在輸出中看到的那樣,該變量i沒有同時獲得值1、3、5、7、9。
  • 在for循環的第一次迭代中,的值為i的值start。即,的第一個值i是范圍的起始編號。在這里,范圍從1開始。
  • 接下來,在for循環的每個后續迭代中,值的值i順序遞增。的值i由公式確定i = i + step。即,在第二次迭代中,i變為3,依此類推。

如您所知,在for循環的每次迭代中,都會range()生成下一個數字並將其分配給iterator變量i。即,我們按需獲取數字(range()在循環移至下一個迭代時,逐個生成數字)。因此,此行為range()更快並且節省了內存。

實踐問題

使用Python range()和for循環打印以下數字模式。

1個 
2 2 
3 3 3 

解析方案

for num in range(4):
    for i in range(num):
        print(num, end=" ")
    print()  # new line after each row to show pattern correctly

包含范圍

在本節中,我們將學習如何生成一個包含范圍。該 range(n) 是獨家性質的,這就是為什么它不包括在輸出中的最后一個數字。即,給定的端點永遠不會成為生成結果的一部分。例如,range(0, 5) = [0, 1, 2, 3, 4]。結果包含從0到最多5的數字,但不包括5,總計數為5。range(start, stop)輸出中不包括停止號,因為在Python中索引(i)始終以0開頭。

如果要在輸出中包括最后一個數字,即,如果要包含一個包含范圍,則將stop參數值設置為stop+step

包含range()示例

# Printing inclusive range
start = 1
stop  = 5 
step  = 1
stop +=step #now stop is 6

for i in range(start, stop, step):
    print(i, end=', ')

例子2

# Printing inclusive range
start = 2
stop  = 10 
step  = 2
stop +=step #now stop is 12

for i in range(start, stop, step):
    print(i, end=', ')

range()中的步長

步驟是的可選參數range()。步驟是結果序列中每個數字之間。如果步長為2,則每個數字之間的差為2。如果未指定,則步長的默認大小為1。我們可以通過有效地使用步驟參數來執行很多操作,例如反轉序列,打印負范圍。

使用負步減range()

我們可以在range()函數的所有參數(即開始,停止和步進)中使用負值。

start = -2
stop = -10
step = -2
print("Negative number range")
for number in range(start, stop, step):
    print(number, end=', ')

我們先來了解上面的程序,我們設置,start = -2stop = -10step = -2

  • 在for循環的第一次迭代中,結果是 -2
  • 在for循環的第二次迭代中,結果是-2, -4因為 -2+(-2) = -4,依此類推。
  • 最后的迭代輸出是 -2, -4, -6,-8

從負數到正數的范圍遞減

在此示例中,我們將學習如何使用step參數顯示從負到正的數字范圍。負數范圍。

# printing range from negative to positive
for num in range(-2, 5, 1):
    print(num, end=", ")

Python范圍從正數到負數

在此示例中,我們可以學習如何有效地使用step參數來顯示從正到負的數字。

print (" printing range from Positive to Negative")
for num in range(2,-5,-1):
    print(num, end=", ")

將range()轉換為列表

如果執行print( type( range(10) ) ),將得到``輸出。Python range()函數不返回列表類型。它返回一個范圍對象,即類型為range的序列對象。因此,我們得到一個不可變的整數序列對象。

我們可以將a的輸出轉換range()為Python列表。使用listclass將范圍輸出轉換為list。讓我們用下面的例子來理解這一點。

print("Converting python range() to list")
even_list = list( range(2, 10, 2))
print("printing list", even_list)

我們還可以使用range()函數通過其索引號訪問Python列表項。

print("Use of range() to access Python list using index number")
sample_list = [10, 20, 30, 40, 50]
for i in range(len(sample_list)):
  print("List item at index ", i, "is ", sample_list[i])

注意:使用len(list),我們可以獲得列表項的計數,我們使用此計數range()來循環迭代固定的次數。

反向范圍

如果要在Python中按降序或逆序打印范圍內的數字序列,則可以使用兩種方法。

第一種是使用負值或向下步進值。即,將a的step參數設置range()-1。例如,如果要顯示一個像[5,4,3,2,1,0]這樣的數字序列,即我們想要帶range()功能的for循環的反向迭代或反向迭代。

讓我們看看如何使用 Python中的索引向后循環以顯示從5到0的數字范圍。

輸出

以相反的順序顯示數字范圍
5、4、3、2、1、0

使用reversed函數在Python中反轉范圍

另外,使用reversed()函數,我們可以反轉任何序列。如果我們將reversed()函數與一起使用range(),則將返回range_iterator,以相反的順序訪問給定范圍的數字。下面的示例將使您知道如何在Python中進行反向for循環。

print("Printing reverse range using reversed()")
for i in reversed(range(0, 5)):
    print(i)

檢查輸出類型是否range()reversed()

print("Checking the type")
print(type(range(0, 5)))
print(type(reversed(range(0,5))))

另外,如果您需要列表,則需要將reversed()函數的輸出轉換為list。因此,您可以獲得范圍的反向列表。

使用反向打印列表range()

print("Printing list in reverse order with range")
reverseed_list = list(reversed(range(0, 5)))
print(reverseed_list)

print("Second example to reverse list with range")
reverse_list2 = list(range(5, -1, -1))
print(reverse_list2)

print("Third Example to reverse list with range")
reverse_list3 = list(range(2, 20, 2)[::-1])
print(reverse_list3)

本文翻譯自:https://pynative.com/python-range-function/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM