Python 程序設計入門(020)—— 循環結構程序設計(1):for 循環

Python 程序設計入門(020)—— 循環結構程序設計(1):for 循環

目錄

  • Python 程序設計入門(020)—— 循環結構程序設計(1):for 循環
    • 一、for 循環的語法
    • 二、for 循環中使用 range() 函數
    • 三、for … else 語句
    • 四、for 表達式

一、for 循環的語法

for 循環是一個計次循環,適用于枚舉或遍歷序列和迭代對象中的元素,一般應用于循環次數已知的情況下。for 循環的語法格式如下:

for 迭代變量 in 對象:循環體

說明:

(1)迭代變量:用于保存讀取出的值。

(2)對象:要遍歷或迭代的對象,可以是任何有序的序列對象,比如:字符串、列表、元組等。

(3)循環體:一組需要重復執行的語句。

(4)Python 采用代碼縮進和冒號(:)區分代碼層次。for 循環表達式行尾的冒號和下一行的縮進(通常采用 4 個空格作為一個縮進量)表示一個代碼塊的開始,縮進結束則表示一個代碼塊的結束。使用 for 循環時,必須嚴格按照縮進規則編寫代碼。

例如:

(1)提取出字符串中的數字、字母、英文符號與其他字符。

str1 = "ds3,3jH.iee/我fj*32的&號30U,碼河。……H54南"
digit = ""
letter = ""
pun = ""
other = ""
for item in str1:if ord(item) in range(48,58):  # 數字的ASCII碼為48-57digit += itemelif ord(item) in range(65,91) or ord(item) in range(97,123):  # 大寫字母的ASCII碼為65-90,小寫字母的ASCII碼為97-122letter += itemelif ord(item) < 128:  # 去除數字和字母pun += itemelse:  # 其他字符(ASCII碼大于127)other += item
print("數字為:",digit)
print("字母為:",letter)
print("英文字符為:",pun)
print("其他字符:",other)程序的運行結果為:
===================== RESTART: C:\Python\Python38\First.py =====================
數字為: 33323054
字母為: dsjHieefjUH
英文字符為: ,./*&
其他字符: 我的號,碼河。……南

(2)遍歷列表數據

list1 = ["Tom","Jerry","Kate","Black"]
for item in list1:print(item)
print("="*30)
for item in range(len(list1)):print(list1[item])程序的運行結果為:
===================== RESTART: C:\Python\Python38\First.py =====================
Tom
Jerry
Kate
Black
==============================
Tom
Jerry
Kate
Black

(3)遍歷元組數據

tuple1 = (["Tom",20],["Jerry",22],["Kate",18],["Black",19])
for item in tuple1:print("Name:",item[0],"\tAge:",item[1])
print("="*30)
for item in tuple1:print("姓名:{}\t年齡:{}".format(item[0],item[1]))
print("="*30)
for item in tuple1:for i in item:print(i,end="\t")print()程序的運行結果為:
===================== RESTART: C:\Python\Python38\First.py =====================
Name: Tom 	Age: 20
Name: Jerry 	Age: 22
Name: Kate 	Age: 18
Name: Black 	Age: 19
==============================
姓名:Tom	年齡:20
姓名:Jerry	年齡:22
姓名:Kate	年齡:18
姓名:Black	年齡:19
==============================
Tom	20	
Jerry	22	
Kate	18	
Black	19	

(4)遍歷字典數據

dict1 = {"Tom":20,"Jerry":22,"Kate":18,"Black":19}
for key in dict1.keys():print("Name:{}\tAge:{}".format(key,dict1.get(key)))
print("="*30)
for item in dict1.items():print("Name:{}\tAge:{}".format(item[0],item[1]))程序的運行結果為:
===================== RESTART: C:\Python\Python38\First.py =====================
Name:Tom	Age:20
Name:Jerry	Age:22
Name:Kate	Age:18
Name:Black	Age:19
==============================
Name:Tom	Age:20
Name:Jerry	Age:22
Name:Kate	Age:18
Name:Black	Age:19

二、for 循環中使用 range() 函數

for 循環通過迭代變量遍歷對象中的每個元素。通過索引遍歷對象時,經常使用 range() 函數,以生成一系列連續的整數。range() 函數的格式如下:

range([start,] end[, step])
說明:
(1)start:指定計數的起始值。如果省略,則從0開始計數。
(2)end:指定計數的結束值,該參數不能省略,當函數中只有一個參數時即表示技術的結束值。生成的序列不包括結束值。比如 range(5),生成的序列為[0-4]range(1,11),生成的序列為[1-10]。
(3)step:指定步長,即兩個數之間的間隔,如果省略則步長為1。
(4)在使用 range() 函數時,如果只有一個參數,則指定的是end;如果有兩個參數,則指定的是start和end;指定三個參數時,第一個參數為start,第二個參數為end,第三個參數為step。

例如:

(1)遍歷列表元素

list1 = ["Tom","Jerry","Kate","Black"]
for i in list1:print("{}".format(i),end="\t")
print()
print("="*30)
for i in range(len(list1)):print("{}".format(list1[i]),end="\t")程序的運行結果為:
===================== RESTART: C:\Python\Python38\First.py =====================
Tom	Jerry	Kate	Black	
==============================
Tom	Jerry	Kate	Black	

(2)計算 5!(1*2*3*4*5)

f = 1
for i in range(1,6):f *= i
print("5!結果為:",f)程序的運行結果為:
===================== RESTART: C:\Python\Python38\First.py =====================
5!結果為: 120

(3)計算 1-100 中所有奇數的和

sum1 = 0
for i in range(1,101,2):sum1 += i
print("1-100的和:",sum1)程序的運行結果為:
===================== RESTART: C:\Python\Python38\First.py =====================
1-100的和: 2500

三、for … else 語句

for 循環可以添加一個 else 分支語句。只有當 for 循環語句正常執行后,才會執行 else 語句。如果 for 循環語句中遇到 break 或 exit(0) 語句,同時又符合跳出的條件,則不會執行 else 語句。for … else 語句的語法格式如下:

for <迭代變量> in <遍歷結構>:語句塊1
else:語句塊2

說明:else 后面的語句會在 for 循環執行完成的情況下執行。

例如:

(1)else 語句被執行

代碼如下:

num = 97
for i in range(2,int(num**0.5) + 1):if num % i == 0:break
else:print("{}是一個素數。".format(num))程序的運行結果為:
===================== RESTART: C:\Python\Python38\First.py =====================
97是一個素數。

(2)else 語句沒有被執行

num = 95
for i in range(2,int(num**0.5) + 1):if num % i == 0:print("{}不是一個素數。".format(num))break
else:print("{}是一個素數。".format(num))程序的運行結果為:
===================== RESTART: C:\Python\Python38\First.py =====================
95不是一個素數。

四、for 表達式

for 表達式可以利用迭代對象創建新的序列,for 表達式也稱為序列遞推式。語法格式如下:

[表達式 for 迭代變量 in 可迭代對象 [if 條件表達式] ]

例如:

(1)求 2-100 之間的素數

list1 = [2]
for i in range(3,101):if 0 not in [i%j for j in range(2,int(i**0.5) + 1)]:list1.append(i)
print(list1)程序的運行結果為:
===================== RESTART: C:\Python\Python38\First.py =====================
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

(2)處理列表數據

list1 = ["Tom","Jerry","Kate","Black"]
list2 = ["Name:" + item for item in list1]
print(list2)程序的運行結果為:
===================== RESTART: C:\Python\Python38\First.py =====================
['Name:Tom', 'Name:Jerry', 'Name:Kate', 'Name:Black']

(3)使用 zip() 函數組合多個列表

list1 = ["Tom","Jerry","Kate","Black"]
list2 = [21,20,18,19]
list3 = [name + ":" + str(age) for name,age in zip(list1,list2)]
print(list3)程序的運行結果為:
===================== RESTART: C:\Python\Python38\First.py =====================
['Tom:21', 'Jerry:20', 'Kate:18', 'Black:19']

(4)for 表達式中使用條件

list1=[x ** 2 for x in range(1,10) if x % 2 == 0]            # 返回1-9之間偶數的平方組成的列表
num = [2*x if x>=2 and x<=5 else x**2 for x in range(1,11)]  # 如果x的值介于2和5之間返回 2*x,否則返回 x**2
print(list1)
print(num)程序的運行結果為:
===================== RESTART: C:\Python\Python38\First.py =====================
[4, 16, 36, 64]
[1, 4, 6, 8, 10, 36, 49, 64, 81, 100]

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

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

相關文章

ZDH-wemock模塊

本次介紹基于版本v5.1.1 目錄 項目源碼 預覽地址 安裝包下載地址 wemock模塊 wemock模塊前端 配置首頁 配置mock wemock服務 下載地址 打包 運行 效果展示 項目源碼 zdh_web: https://github.com/zhaoyachao/zdh_web zdh_mock: https://github.com/zhaoyachao/z…

TCGA數據下載推薦:R語言easyTCGA包

#使用easyTCGA獲取數據 #清空 rm(listls()) gc() # 安裝bioconductor上面的R包 options(BioC_mirror"https://mirrors.tuna.tsinghua.edu.cn/bioconductor") if(!require("BiocManager")) install.packages("BiocManager") if(!require("TC…

怎樣讓音頻速度變慢?請跟隨以下方法進行操作

怎樣讓音頻速度變慢&#xff1f;在會議錄音過程中&#xff0c;經常會遇到主講人語速過快&#xff0c;導致我們無法清晰聽到對方說的內容。如果我們能夠減慢音頻速度&#xff0c;就能更好地記錄對方的講話內容。此外&#xff0c;在聽到快速播放的外語或方言時&#xff0c;我們也…

LA@2@1@線性方程組和簡單矩陣方程有解判定定理

文章目錄 矩陣方程有解判定定理線性方程組有解判定特化:齊次線性方程組有解判定推廣:矩陣方程 A X B AXB AXB有解判定證明推論 矩陣方程有解判定定理 線性方程組有解判定 線性方程組 A x b A\bold{x}\bold{b} Axb有解的充分必要條件是它的系數矩陣A和增廣矩陣 ( A , b ) (A,…

機器人的運動范圍

聲明 該系列文章僅僅展示個人的解題思路和分析過程&#xff0c;并非一定是優質題解&#xff0c;重要的是通過分析和解決問題能讓我們逐漸熟練和成長&#xff0c;從新手到大佬離不開一個磨練的過程&#xff0c;加油&#xff01; 原題鏈接 機器人的運動范圍https://leetcode.c…

高等數學教材重難點題型總結(二)導數與微分

本章重點題目較少&#xff0c;除了*標題頁沒什么特別難的&#xff0c;本帖出于總結性的角度考慮并未囊概全部的*標&#xff0c;最后會出一期*標題的全部內容整理&#xff0c;在攻克重難點的基礎上更上一層樓。 1.根據定義求某點處的導數值 2.通過定義證明導數 3.左右導數的相關…

【數據庫】P4 過濾數據 WHERE

過濾數據 WHERE 簡介WHERE 子句操作符檢測單個值案例范圍值檢查 BETWEEN AND空值檢查 NULL 簡介 數據庫表一般包含大量的數據&#xff0c;很少需要檢索表中的所有行。我們只檢索所需數據需要指定搜索條件(search criteria)&#xff0c;搜索條件也稱為過濾條件(filter conditio…

完全備份、增量備份、差異備份、binlog日志

Top NSD DBA DAY06 案例1&#xff1a;完全備份與恢復案例2&#xff1a;增量備份與恢復案例3&#xff1a;差異備份與恢復案例4&#xff1a;binlog日志 1 案例1&#xff1a;完全備份與恢復 1.1 問題 練習物理備份與恢復練習mysqldump備份與恢復 1.2 方案 在數據庫服務器192…

問AI一個嚴肅的問題

chatgpt的問世再一次掀起了AI的浪潮&#xff0c;其實我一直在想&#xff0c;AI和人類的關系未來會怎樣發展&#xff0c;我們未來會怎樣和AI相處&#xff0c;AI真的會完全取代人類嗎&#xff0c;帶著這個問題&#xff0c;我問了下chatgpt&#xff0c;看一看它是怎么看待這個問題…

Modbus工業RFID設備在自動化生產線中的應用

傳統半自動化生產線在運作的過程&#xff0c;因為技工的熟練程度&#xff0c;專業素養的不同&#xff0c;在制造過程中過多的人為干預&#xff0c;工廠將很難對每條生產線的產能進行標準化管理和優化。如果半自動化生產線系統是通過前道工序的作業結果和檢測結果來決定產品在下…

react實現模擬彈框遮罩的自定義hook

需求描述 點擊按鈕用于檢測鼠標是否命中按鈕 代碼實現 import React from react; import {useState, useEffect, useRef} from react;// 封裝一個hook用來檢測當前點擊事件是否在某個元素之外 function useClickOutSide(ref,cb) {useEffect(()>{const handleClickOutside…

JMeter接口自動化測試實例—JMeter引用javaScript

Jmeter提供了JSR223 PreProcessor前置處理器&#xff0c;通過該工具融合了Java 8 Nashorn 腳本引擎&#xff0c;可以執行js腳本以便對腳本進行前置處理。其中比較典型的應用就是通過執行js腳本對前端數據進行rsa加密&#xff0c;如登錄密碼加密。但在這里我就簡單的應用javaScr…

PyTorch翻譯官網教程-NLP FROM SCRATCH: GENERATING NAMES WITH A CHARACTER-LEVEL RNN

官網鏈接 NLP From Scratch: Generating Names with a Character-Level RNN — PyTorch Tutorials 2.0.1cu117 documentation 使用字符級RNN生成名字 這是我們關于“NLP From Scratch”的三篇教程中的第二篇。在第一個教程中</intermediate/char_rnn_classification_tutor…

ChatGPT爆火,會給教育帶來什么樣的影響或者沖擊?

近來&#xff0c;人工智能聊天機器人ChatGPT連上熱搜&#xff0c;火爆全網。ChatGPT擁有強大的信息整合能力、自然語言處理能力&#xff0c;可謂是“上知天文&#xff0c;下知地理”&#xff0c;而且還能根據要求進行聊天、撰寫文章等。 ChatGPT一經推出&#xff0c;便迅速在社…

stop job is running for Advanced key-value store

今天虛擬機磁盤撐滿了&#xff0c;本來還能湊合運行&#xff0c;結果重啟了下&#xff0c;就報了這個 stop job is running for Advanced key-value store (1min 59s / no limit) 解決方式很簡單&#xff0c; 1、虛擬機關電源&#xff0c;任務管理器&#xff0c;關閉VM&#x…

OpenCV-Python中的圖像處理-圖像直方圖

OpenCV-Python中的圖像處理-圖像直方圖 圖像直方圖統計直方圖繪制直方圖Matplotlib繪制灰度直方圖Matplotlib繪制RGB直方圖 使用掩膜統計直方圖直方圖均衡化Numpy圖像直方圖均衡化OpenCV中的直方圖均衡化CLAHE 有限對比適應性直方圖均衡化 2D直方圖OpenCV中的2D直方圖Numpy中2D…

當Visual Studio遇到 “當前不會命中斷點.還沒有為該文檔加載任何符號“的情況

1.配置項目調試路徑&#xff1a; 2.問題解決方案&#xff1a; VS配置調試路徑不是默認路徑時&#xff0c;需要看生成的文件是否在配置路徑內&#xff0c;如果不在的話&#xff0c;可能發生"當前不會命中斷點.還沒有為該文檔加載任何符號"的情況&#xff1b; 右鍵項…

Kotlin語法

整理關鍵語法列表如下&#xff1a; https://developer.android.com/kotlin/interop?hlzh-cn官方指導鏈接 語法形式 說明 println("count ${countnum}")字符串里取值運算 val count 2 var sum 0 類型自動推導 val 定義只讀變量&#xff0c;優先 var定義可變變量…

計算機競賽 python+opencv+深度學習實現二維碼識別

0 前言 &#x1f525; 優質競賽項目系列&#xff0c;今天要分享的是 &#x1f6a9; pythonopencv深度學習實現二維碼識別 &#x1f947;學長這里給一個題目綜合評分(每項滿分5分) 難度系數&#xff1a;3分工作量&#xff1a;3分創新點&#xff1a;3分 該項目較為新穎&…

HotSpot虛擬機之字節碼執行引擎

目錄 一、棧幀 1. 棧幀結構 2. 基于棧的解釋執行過程 二、方法調用 1. 方法調用指令 2. 分派 三、動態類型語言 四、參考資料 一、棧幀 1. 棧幀結構 棧幀是Java虛擬機棧進行方法調用和執行的數據結構&#xff0c;是方法最基本的執行單元&#xff0c;是棧的元素。一個棧…