菜鳥學習日記(python)——循環語句

python中的循環語句包括for循環語句和while循環語句,但是python中是沒有do...while循環語句的。

while循環語句

while循環語句的一般格式為;

while condition:loop body

condition是循環判斷條件,loop?body是循環體。

當循環條件成立時,就執行循環體中的語句,循環條件不成立時,跳出循環。

下面是一個簡單的實例:

# #計算0到100的和
sum=0
i=0
while i<=100:sum=sum+ii=i+1
print('0到100的整數和為:%d'%sum)

無限循環:

當我們設置條件表達式永遠不為 false時,可以實現無限循環

#無限循環
while True:height=input('請輸入你的身高(cm):')height=float(height)print('你的身高對應標準體重為:%fkg'%(height-105))

可以按終止按鈕來退出死循環

無限循環在服務器上客戶端的實時請求非常有用

while...else語句

while condition:loop body
else:CodeBlock

如果while后面的條件表達式(condition)成立,那么執行循環體中(loop body)的語句,不成立時,就執行else后面的(CodeBlock)語句。

簡單實例如下:

#隨機才一個0到10的整數
num=random.randint(0,10)    #隨機生成一個0到10之間的整數
num2=int(input('請輸入你猜想的數字(整數):'))       #輸入猜想的數字
i=1         #i用于計算猜數的次數
while num2!=num:        #條件表達式print('猜錯了,再猜一次')num2 = int(input('請輸入你猜想的數字(整數):'))i = i + 1
else:print('一共猜了%d次猜對啦!'%i)          #條件表達式不成立就執行這條語句

如果while的循環體中只有一條語句的話,可以將這條語句和while寫在同一行

flag=1
while flag:print('這是一個無限循環')

for循環語句

for循環的一般格式如下:

for <variable> in <sequence>:<statements1>

variable是一個變量名,sequence是變量范圍,當變量在變量范圍內時,執行statements1里面的語句,否則執行statements2中的語句

下面是簡單的實例:

for num in range(1,5):      #range(1,5)表示1到5的整數print(num,end='\t')     #end='\t'表示制表符,也就是4個空格
print('\n')         #\n是換行符str1='hello'        #字符串
for str in str1:print(str,end='\t')
print('\n')list1=[1,2,3]       #列表
for num in list1:print(num,end='\t')
print('\n')tuple1=(4,5,6)      #元組
for num in tuple1:print(num,end='\t')
print('\n')#注意:集合是無序的,所以打印出來的數據也是無序的
set1={'t1','t2','t3'}       #集合
for str in set1:print(str,end='\t')
print('\n')dict1={'name':'風之海藍','sex':'男','age':33}        #字典
for str in dict1.values():print(str,end='\t')
print('\n')

需要注意的是,對于集合,打印出來的結果并不是有序的

for...else

它的一般格式為:

for <variable> in <sequence>:<statements1>
else:<statements2>

statements1是循環主體,statements2是循環結束后執行的語句

一個簡單實例:

for num in range(5):print(num,end='\t')
else:print('end')

range()函數

如果需要遍歷數字序列,可以使用內置 range() 函數。它會生成數列,就像上面的實例一樣。

我們可以指定區間值,也可以指定步長

for num in range(0,10,2):       #0到10的整數,步長為2print(num,end='\t')
print('\n')
for num in range(0,10,3):       #0到10的整數,步長為3print(num,end='\t')
print('\n')
for num in range(0,-10,-3):       #0到-10的整數,步長為-3print(num,end='\t')
print('\n')
for num in range(-10,0,3):       #-10到0的整數,步長為3print(num,end='\t')

可以看到,range的區間可以是正數區間,也可以是負數區間,區間的右邊界值不被包含在內,步長也可以是正數或者負數。但是要注意的是,區間如果是從小到大,那么步長的數值要為正,區間如果是從大到小,那么步長的數值要為負數,否則會取不到數值。

我們可以結合 range() 和 len() 函數來遍歷一個序列的索引,如下所示:

list1=['t1','t2','t3']
for i in range(len(list1)):print(list1[i])

break和continue

在循環語句中,我們常常要用到break語句和continue語句,它們是用來跳出循環的,但是兩者又有區別。

break:跳出整個循環。它可以跳出 for 和 while 的循環體,如果從 for 或 while 循環中使用break終止,那么對應的循環 else 塊將不執行。

continue:跳出當前循環。也就是在當前循環中,continue后面的語句不執行了,直接進入下一輪循環。

以下是簡單實例:

#for循環中使用break
for num in range(1,10):if num==5:breakprint(num,end='\t')
print('結束')#for循環中使用continue
for num in range(1,10):if num == 5:continueprint(num,end='\t')
print('結束')#while中使用break
num = 10
while num > 0:num = num - 1if num == 5:breakprint('當前變量值為 :', num, end='\t')
print('結束')#while中使用continue
num = 10
while num > 0:num = num - 1if num == 5:continueprint('當前變量值為 :', num, end='\t')
print('結束')

可以看到,無論是在for循環中,還是在while循環中,如果使用的是break,那么它會跳出整個循環,后面的循環語句都不會執行了(如果有else子句,else子句里面的語句也不會執行)。但是如果用的是continue,那么只有當前循環中的剩余語句不會執行,后面循環中的語句以及else子句中的語句都會執行。

如果是在嵌套循環語句中,執行break,那么會跳出當前的整個循環,不會跳出外層循環

下面是一個簡單的實例:

for n in range(2, 10):for x in range(2, n):if n % x == 0:print(n, '等于', x, '*', n // x)breakelse:# 循環中沒有找到元素print(n, ' 是質數')

pass語句

?pass是一個空語句,使用它是為了保持程序結構的完整性。pass 不做任何事情,一般用做占位語句。

以下是一個實例:

list1=['花花','殼哥','颯颯','絨絨','海鷗哥哥']
for str in list1:if str=='颯颯':passprint('這是%s'%str)print(str)
print('結束')

可以看到pass不會對程序造成影響,不影響程序的正常運行,只作占位使用

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

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

相關文章

基于ssm的彩妝小樣售賣商城的設計與實現論文

摘 要 隨著科學技術的飛速發展&#xff0c;各行各業都在努力與現代先進技術接軌&#xff0c;通過科技手段提高自身的優勢&#xff1b;對于彩妝小樣售賣商城當然也不能排除在外&#xff0c;隨著網絡技術的不斷成熟&#xff0c;帶動了彩妝小樣售賣商城&#xff0c;它徹底改變了過…

RUST博客帖子編輯示例

狀態模式&#xff08;state pattern&#xff09;是一種面向對象的設計&#xff0c;它的關鍵點在于&#xff1a;一個值擁有的內部狀態由數個狀態對象&#xff08;state object&#xff09;表的而成&#xff0c;而值的行為則隨著內部狀態的改變而改變。 下面的示例用來實現發布博…

Leetcode—231.2的冪【簡單】

2023每日刷題&#xff08;五十四&#xff09; Leetcode—231.2的冪 實現代碼 class Solution { public:bool isPowerOfTwo(int n) {if(n < 0) {return false;}long long ans 1;while(ans < n) {ans * 2;}if(ans n) {return true;}return false;} };運行結果 之后我會…

時間序列預測專欄介紹 — 算法原理、源碼解析、項目實戰

專欄鏈接&#xff1a;https://blog.csdn.net/qq_41921826/category_12495091.html 專欄內容 所有文章提供源代碼、數據集、效果可視化 文章多次上熱搜榜單 時間序列預測存在的問題 現有的大量方法沒有真正的預測未來值&#xff0c;只是用歷史數據做驗證 利用時間序列分解算法存…

【Vue第3章】使用Vue腳手架_Vue2

目錄 3.1 初始化腳手架 3.1.1 說明 3.1.2 具體步驟 3.1.3 模板項目的結構 3.1.4 筆記與代碼 3.1.4.1 筆記 3.1.4.2 01_src_分析腳手架 3.2 ref與props 3.2.1 ref 3.2.2 props 3.2.3 筆記與代碼 3.2.3.1 筆記 3.2.3.2 02_src_ref屬性 3.2.3.3 03_src_props配置 3…

根據應聘者的姓名和所學專業判斷是否需要這樣的程序設計人員

一、程序分析 導入Scanner函數&#xff0c;分別輸入應聘者的姓名和應聘者所學的程序設計語言。 二、具體代碼 import java.util.Scanner; public class Recruitment {public static void main(String[] args){try (Scanner scan new Scanner(System.in)) {System.out.prin…

Spring Boot 3 整合 Mybatis-Plus 實現動態數據源切換實戰

&#x1f680; 作者主頁&#xff1a; 有來技術 &#x1f525; 開源項目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 倉庫主頁&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 歡迎點贊…

1-5、JDK API文檔

語雀原文鏈接 文章目錄 jdk1.8中文.CHM JDK8中文在線文檔&#xff1a;https://www.matools.com/api/java8Java11中文在線文檔&#xff1a;https://www.matools.com/api/java11

CEEMDAN-Transformer時間序列預測實戰完整代碼數據可直接運行

項目視頻講解: CEEMDAN-Transformer時間序列預測實戰完整代碼數據_嗶哩嗶哩_bilibili 完整代碼: import pandas as pd import numpy as np from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler import torch import to…

ROS-log功能區別

ROS使用rosout包來記錄各個節點的log信息&#xff0c;通常這些log信息是一些可以讀懂的字符串信息&#xff0c;這些信息一般用來記錄節點的運行狀態。 ROS有五種不同類型的log信息&#xff0c;分別為&#xff1a;logdebug、loginfo、logwarn、logerr、logfatal。 等級由低到高&…

GO設計模式——6、原型模式(創建型)

目錄 原型模式&#xff08;Prototype Pattern&#xff09; 優缺點 使用場景 注意事項 代碼實現 原型模式&#xff08;Prototype Pattern&#xff09; 原型模式&#xff08;Prototype Pattern&#xff09;是用于創建重復的對象&#xff0c;同時又能保證性能。這種類型的設計…

m_map導入本地地形數據

m_map繪制地形圖時&#xff0c;雖然自帶有1的地形圖以及從NOAA下載的1分的地形圖&#xff08;詳見&#xff1a;Matlab下地形圖繪圖包m_map安裝與使用&#xff09;&#xff0c;但有時需要對地形圖分辨率的要求更高&#xff0c;便無法滿足。 此時&#xff0c;需要導入本地地形數…

算法Day22 星南二樓(最長升序子序列)

星南二樓&#xff08;最長升序子序列&#xff09; Description Input Output Sample 代碼 import java.util.*;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();int[] grid new int[n];for(int j0;j&l…

selenium火狐避免被檢測向ChartGPT的有效提問

問題描述 當我們問 ChartGPT 如果解決 selenium 被屏蔽問題的時候&#xff0c;它總是回答解決問題的方向&#xff0c;沒有給出具體怎么用代碼實現。 問題原因 1、可能是描述不清晰 沒有告訴GPT使用什么編程語言&#xff0c;沒有說明使用火狐還是谷歌瀏覽器&#xff0c;沒有…

深入解析NK模型:復雜適應性系統的演化之謎

NK模型是一種用于研究復雜適應性系統的數學模型&#xff0c;最初由生物學家 Stuart Kauffman 于1993年提出。這模型的目的是模擬生物進化過程中的復雜性&#xff0c;并通過網絡結構和相互作用來研究解空間的性質。 目錄 一、NK模型介紹1. 模型基礎2. 模型參數3. 適應性函數4..…

ubuntu里安裝docker

1、更新軟件包 在終端中執行以下命令來更新Ubuntu軟件包列表和已安裝軟件的版本: sudo apt update sudo apt upgrade 2、安裝docker依賴 Docker在Ubuntu上依賴一些軟件包。執行以下命令來安裝這些依賴: apt-get install ca-certificates curl gnupg lsb-release 3、添加Do…

postman接口自動化測試

Postman除了前面介紹的一些功能&#xff0c;還有其他一些小功能在日常接口測試或許用得上。今天&#xff0c;我們就來盤點一下&#xff0c;如下所示&#xff1a; 1.數據驅動 ? ? 想要批量執行接口用例&#xff0c;我們一般會將對應的接口用例放在同一個Collection中&#xf…

unity 2d 入門 飛翔小鳥 Cinemachine 鏡頭跟隨小鳥 多邊形碰撞器 解決鏡頭不會穿模問題(十二)

1、安裝 window->package manager 2、創建Cinemachine 右鍵->Cinemachine->2D Carmera 3、創建空對象和多邊形控制器如圖 記得勾選 is Trigger 空對象位置記得要和小鳥保持一致&#xff0c;不然等下寫完腳本后&#xff0c;鏡頭一開始會移動一下 4、將多邊形觸…

代碼隨想錄算法訓練營第四十天|139.單詞拆分,多重背包,背包問題

139. 單詞拆分 - 力扣&#xff08;LeetCode&#xff09; 給你一個字符串 s 和一個字符串列表 wordDict 作為字典。請你判斷是否可以利用字典中出現的單詞拼接出 s 。 注意&#xff1a;不要求字典中出現的單詞全部都使用&#xff0c;并且字典中的單詞可以重復使用。 示例 1&a…

【Delphi】FMX開發 ios 和 android 異同點(踩坑記)

目錄 一、前言 二、補充下基礎知識 1. APP程序事件&#xff1a;TApplicationEvent 2. APP內置Web服務器或者UDP服務端或者TCP服務端 三、iOS 和 android 平臺的不同點 1. TApplicationEvent的不同點&#xff1a;以下不同點&#xff0c;請仔細閱讀&#xff01; 2. APP內置…