Python中的range()函數詳解:掌握迭代的利器

更多資料獲取

📚 個人網站:ipengtao.com


Python中的range()函數是一個強大的工具,用于生成一系列的數字,常用于循環操作。雖然看似簡單,但其靈活性和功能卻不容小覷。在本文中,將深入研究range()函數,探討其用法、參數和一些高級技巧,幫助你更好地利用這個迭代工具。

range()函數的基礎用法

首先,來看一下range()函數的基本用法。range()函數可以接受一個、兩個或三個參數,分別表示起始值、結束值和步長(默認為1)。

# 基本用法
for i in range(5):print(i, end=' ')
# 輸出: 0 1 2 3 4

上述示例中,range(5)生成了一個從0到4的整數序列,被用于for循環,依次打印了這些數字。

指定起始值和結束值

也可以通過指定起始值和結束值來創建一個范圍。這在需要非零起始值或以不同步長進行迭代時非常有用。

# 指定起始值和結束值
for i in range(2, 8):print(i, end=' ')
# 輸出: 2 3 4 5 6 7

在這個例子中,range(2, 8)生成了一個包含2到7的整數序列。

設置步長

range()函數的第三個參數可以設置步長。這意味著可以按照自定義的步長跳過一些值。

# 設置步長
for i in range(1, 10, 2):print(i, end=' ')
# 輸出: 1 3 5 7 9

上述代碼中,range(1, 10, 2)生成了一個包含1到9的奇數序列。

逆序迭代

range()函數同樣可以被用于逆序迭代。通過設置適當的起始值、結束值和負的步長,可以輕松地逆序生成一個序列。

# 逆序迭代
for i in range(10, 0, -2):print(i, end=' ')
# 輸出: 10 8 6 4 2

在這個例子中,range(10, 0, -2)生成了一個逆序的偶數序列。

創造列表

除了在循環中使用,range()函數還可以用于創建列表。通過將range()的輸出傳遞給list()函數,可以得到一個包含特定范圍內所有整數的列表。

# 創建列表
my_list = list(range(3, 9))
print(my_list)
# 輸出: [3, 4, 5, 6, 7, 8]

這是一個將range()list()結合使用的常見用法。

使用range()生成字母序列

有時候,希望生成字母序列而不是數字序列。這時,可以借助ord()chr()函數將字符轉換為相應的ASCII碼和反向轉換。

# 生成字母序列
for char in map(chr, range(ord('A'), ord('G'))):print(char, end=' ')
# 輸出: A B C D E F

這個例子中,range(ord('A'), ord('G'))生成了從’A’到’F’的ASCII碼序列,然后通過map()chr()將其轉換為字符序列。

range()與列表切片

range()函數還可以與列表切片結合,用于生成指定范圍內的索引序列。

# 與列表切片結合
my_list = ['apple', 'orange', 'banana', 'grape']
for i in range(len(my_list)):print(my_list[i], end=' ')
# 輸出: apple orange banana grape

在這個例子中,range(len(my_list))生成了一個與my_list長度相同的索引序列,用于訪問列表中的元素。

高級技巧:生成不等間隔的浮點數

如果你需要生成不等間隔的浮點數序列,可以結合numpy庫的arange()函數和range()函數。

import numpy as np# 生成不等間隔的浮點數序列
for num in np.arange(0, 1, 0.1):print(num, end=' ')
# 輸出: 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

這個例子中,np.arange(0, 1, 0.1)生成了一個以0.1為步長的浮點數序列。

總結

在Python編程中,range()函數作為一個簡單而強大的迭代工具,為程序員提供了靈活性和效率。通過對其參數和用法的深入理解,能夠更好地利用這一函數。基礎用法中,分享了如何使用range()生成從0開始的整數序列,以及如何指定起始值和結束值。通過設置步長,可以自定義迭代步長,實現更靈活的循環。同時,range()還可以逆序迭代,輕松生成逆序序列。

range()不僅僅在循環中有用,還能用于創建列表。這個特性在需要快速生成數字序列時非常實用。另外,通過與列表切片結合,可以生成索引序列,方便訪問列表中的元素。進一步探索中,學到如何使用range()生成字母序列,通過ASCII碼的轉換實現這一功能。最后,了解了一個高級技巧,結合numpy庫的arange()函數,生成不等間隔的浮點數序列。

總之,range()函數是Python編程中一個不可或缺的工具,通過善于運用其靈活的參數,能夠編寫更為優雅、高效的代碼。希望本文的深入討論和豐富的示例代碼,能夠幫助大家更好地掌握并運用range()函數,提高編碼效率,使代碼更加精致。


Python學習路線

在這里插入圖片描述

更多資料獲取

📚 個人網站:ipengtao.com

如果還想要領取更多更豐富的資料,可以點擊文章下方名片,回復【優質資料】,即可獲取 全方位學習資料包。

在這里插入圖片描述
點擊文章下方鏈接卡片,回復【優質資料】,可直接領取資料大禮包。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/207383.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/207383.shtml
英文地址,請注明出處:http://en.pswp.cn/news/207383.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

9. 從零用Rust編寫正反向代理, HTTP2改造篇之HPACK示例, 了解http2頭信息如何處理

wmproxy wmproxy是由Rust編寫,已實現http/https代理,socks5代理, 反向代理,靜態文件服務器,內網穿透,配置熱更新等, 后續將實現websocket代理等,同時會將實現過程分享出來&#xff…

vue3,元素可拖拽,自定義指令,鼠標以及手指事件的寫法不一樣

使用很簡單&#xff0c;直接 <div v-drag><div class"header"></div><div class"content"></div> </div>// 自定義指令 —— 拖動div const vDrag {// 在綁定元素的父組件// 及他自己的所有子節點都掛載完成后調用m…

docker容器_自定義上傳jenkins鏡像(Dockerfile實現)

1.創建jenkins目錄&#xff0c;并上傳相應的包 mkdir /jenkins/ 2.創建一個Dockerfile文件 FROM daocloud.io/library/centos:7#把當前目錄下的jenkins.war包傳到內部容器的/ 下 ADD ./jenkins.war /#把當前目錄下的jdk傳到內部容器的/opt/,并解壓 ADD ./jdk-11.0.19_linu…

程序解釋與編譯

?1.程序的解釋執行方式 程序語言強寫的計策機指令序列稱為“源程序”,計算機并不能直接執行用高級語言編寫的源程序&#xff0c;源程序必須通過“翻譯程序”翻譯成機器指令的形式&#xff0c;計算機才能項別和執行。源程序的翻譯有兩種方式&#xff1a;解釋執行和編譯執行。不…

網絡編程基礎api

1. IP 協議 1.1 IP 分片 &#xff08;1&#xff09;IP 分片和重組主要依靠 IP 頭部三個字段&#xff1a;數據報標識、標志和片偏移 以太網幀的 MTU 是 1500 字節&#xff1b; 一個每個分片都有自己的 IP 頭部&#xff0c;它們都具有相同的標識值&#xff0c;有不同的片偏移…

css 十字分割線(含四等分布局)

核心技術 偽類選擇器含義li:nth-child(2)第2個 lili:nth-child(n)所有的lili:nth-child(2n)所有的第偶數個 lili:nth-child(2n1)所有的第奇數個 lili:nth-child(-n5)前5個 lili:nth-last-child(-n5)最后5個 lili:nth-child(7n)選中7的倍數 border-right: 3px solid white;borde…

EasyExcel-最簡單的讀寫excel工具類

前言&#xff1a; easyExcel 的官網文檔給的示例非常全&#xff0c;可以參考https://easyexcel.opensource.alibaba.com/docs/current/quickstart/read 在此我貼出自己的工具類&#xff0c;可以直接用 導包 <dependency><groupId>com.alibaba</groupId><…

機器學習第15天:GBDT模型

??主頁 Nowl &#x1f525;專欄《機器學習實戰》 《機器學習》 &#x1f4d1;君子坐而論道&#xff0c;少年起而行之 ?? 文章目錄 GBDT模型介紹 Boosting 殘差 GBDT的缺點 python代碼實現 代碼 模型參數解釋 結語 GBDT模型介紹 GBDT&#xff08;Gradient Boos…

vivado $clog2函數

對于.v文件在vivado中是不支持&#xff0c;但是可以修改為.sv或更改文件屬性使用sytemverilog來支持。 /*** Math function: $clog2 as specified in Verilog-2005** clog2 0 for value 0* ceil(log2(value)) for value > 1** This implementatio…

php+mysql期末作業小項目

目錄 1、登錄界面 2、注冊界面 3、主界面 4、學生表界面 5 、查詢學生界面?編輯 6、修改學生信息界面?編輯 7、刪除學生信息界面 8、添加學生信息界面 9、后臺數據庫?編輯 一個簡單的php?mysql項目學生信息管理系統&#xff0c;用于廣大學子完成期末作業的參考&…

測試架構工程師需要具備哪些能力 ?

前言 相比于我們常見的研發架構師&#xff0c;測試架構師是近幾年才出現的一個崗位&#xff0c;當然崗位title其實沒有特殊的含義&#xff0c;在我看來測試架構師其實更像對某一類人的抽象稱呼和對其復合能力的期待及認可。 在聊這篇文章的主題之前&#xff0c;先來看這樣一個…

算法訓練營Day4(鏈表)

語言 采用的Java語言&#xff0c;一些分析也是用于Java&#xff0c;請注意。 24. 兩兩交換鏈表中的節點 24. 兩兩交換鏈表中的節點 - 力扣&#xff08;LeetCode&#xff09; 解題 這道題就是考驗鏈表的基礎操作&#xff0c;但是有個語言方面的知識需要去掌握&#xff0c;就是|…

TCP通信

第二十一章 網絡通信 本章節主要講解的是TCP和UDP兩種通信方式它們都有著自己的優點和缺點 這兩種通訊方式不通的地方就是TCP是一對一通信 UDP是一對多的通信方式 接下來會一一講解 TCP通信 TCP通信方式呢 主要的通訊方式是一對一的通訊方式&#xff0c;也有著優點和缺點…

如何在Android平板上遠程連接Ubuntu服務器使用code-server代碼開發

目錄 1.ubuntu本地安裝code-server 2. 安裝cpolar內網穿透 3. 創建隧道映射本地端口 4. 安卓平板測試訪問 5.固定域名公網地址 6.結語 1.ubuntu本地安裝code-server 準備一臺虛擬機,Ubuntu或者centos都可以&#xff0c;這里以VMwhere ubuntu系統為例 下載code server服務…

el-table 表格多選(后端接口搜索分頁)實現已選中的記憶功能。實現表格數據和已選數據(前端分頁)動態同步更新。

實現效果&#xff1a;&#xff08;可拉代碼下來看&#xff1a;vue-demo: vueDemo&#xff09; 左側表格為點擊查詢調用接口查詢出來的數據&#xff0c;右側表格為左側表格所有選擇的數據&#xff0c;由前端實現分頁。 兩個el-table勾選數據聯動更新 實現邏輯&#xff1a; el-…

低代碼開發到底是補品還是垃圾食品?

2023&#xff0c;低代碼徹底火了&#xff0c;甚至火到沒有點相關經驗&#xff0c;都不好意思出去面試的程度。 從業者對低代碼的發展充滿了想象&#xff0c;都認為未來低代碼的商業價值不可估量。 據Gartner的最新報告顯示&#xff0c;2023年全球低代碼開發技術市場規模預計將…

內部文件上傳以及渲染-接口API

文件上傳 地址http://172.16.0.118:8090/api/pm/base/affix/upload請求類型POSTContent-Type:text/plain;charsetutf-8參數 prjData {"prjId":"", "jobId":"3031b2c8-c809-4110-8e88-22c80a9c1ec0721aca89-96a1-4346-9b6e-022331d221d1Nec…

【EMNLP 2023】面向Stable Diffusion的自動Prompt工程算法BeautifulPrompt

近日&#xff0c;阿里云人工智能平臺PAI與華南理工大學朱金輝教授團隊合作在自然語言處理頂級會議EMNLP2023上發表了BeautifulPrompt的深度生成模型&#xff0c;可以從簡單的圖片描述中生成高質量的提示詞&#xff0c;從而使文生圖模型能夠生成更美觀的圖像。BeautifulPrompt通…

【MATLAB】MODWT分解+FFT+HHT組合算法

有意向獲取代碼&#xff0c;請轉文末觀看代碼獲取方式~也可轉原文鏈接獲取~ 1 基本定義 MODWT分解FFTHHT組合算法是一種綜合性的信號處理方法&#xff0c;它結合了經驗小波變換&#xff08;Empirical Wavelet Transform&#xff0c;EWT&#xff09;、快速傅里葉變換&#xff…

25.Oracle的回收站

oracle基礎系統學習目錄 01.CentOS7靜默安裝oracle11g 02.Oracle的啟動過程 03.從簡單的sql開始 04.Oracle的體系架構 05.Oracle數據庫對象 06.Oracle數據備份與恢復 07.用戶和權限管理 08.Oracle的表 09.Oracle表的分區 10.Oracle的同義詞與序列 11.Oracle的視圖 12.Oracle的…