C語言-分支與循環(2)

目錄

1、while循環

1.1 if 和 while 的對比

1.2 while 語句的執行流程

6.3 while循環簡單例題

2、for 循環

2.1 語法形式

2.2 for循環與while循環對比

2.3?for循環的執行流程

2.4?for循環的簡單例題

2.5?擴展:for循環的初始化,判斷,調整三個部分都是可以省略的

3、do-while 循環

3.1 語法形式

3.2 do-while 循環的執行流程

3.3 do-while循環的簡單例題

4、break和continue語句

4.1 while循環中的break 和continue?

4.1.1 break舉例

4.1.2?continue舉例

4.2?for循環中的break 和continue?

4.2.1 break 舉例

4.2.1 continue舉例

?4.3 do-while循環中的break和continue

5、循環的嵌套

5.1 例題

5.2 題目分析:

5.3 代碼演示

6、goto語句


前言:

嗨嗨嗨!新的一篇來啦!這一次,我攜帶著滿滿的關于while、for和do-while等的精彩內容,準備與大家分享。希望你們喜歡這一頓知識的大餐,也希望我的文章能為你的編程之路增添一份樂趣。別忘了,這篇文章也意味著“分支與循環”板塊的完美收官哦!期待你們的閱讀,我們文末見分曉!


話不多說,直接上正文

1、while循環

C語言提供了3種循環語句,while 就是其中一種,接下來將要介紹一下while語句。

while語句的語法結構和 if 語句非常相似。

1.1 if 和 while 的對比

1 if(表達式)
2? ? ? ? ? 語句;
3
4? while(表達式)
5? ? ? ? ? 語句;//如果循環體想包含更多的語句,可以加上大括號

代碼演示:

//代碼 1  if#include <stdio.h>int main()
{if(1)printf("hehe \n");//if后邊條件滿足,打印一次hehereturn 0; 
} //代碼 2 while#include <stdio.h>int main()
{while(1)printf("hehe \n");//while后邊條件滿足,循環打印hehereturn 0; 
} 

代碼結果:

代碼1:

代碼2 :

我們從上面代碼結果可以直觀的看到他們之間的區別,while語句時可以實現循環效果的。

while 和 if?一樣,想要控制多條語句需要加上?{}

代碼演示:

#include <stdio.h>
int main()
{while(1){printf("hello \n");printf("China \n");}return 0;
}

代碼結果:

1.2 while 語句的執行流程

?#include <stdio.h>
?int main()
{
? ? while(1)? ?//while后的表達式稱為判斷表達式
? ? ? ? ?printf("hehe \n");
? ? return 0;?
}?

首先上來就是執行判斷表達式,表達式的值為0,循環直接結束;表達式的值不為0,則執行循環語句,語句執行完后再繼續判斷,是否進行下一次判斷。

6.3 while循環簡單例題

?例:在屏幕上打印1~10的值

代碼演示:

#include <stdio.h>
int main()
{int i = 1;//初始化while (i<=10)//判斷{printf("%d\n",i);i++;//調整}return 0;
}

?代碼結果:

解讀:

i = 1進到while循環,由于i=1 <10,因此表達式為真,打印出1后再加1(后置++),然后 i = 2 再次進入到while 循環,打印出?2?后再加1,以此類推,當 i = 10進入循環然后打印出來再加 1,i= 11?不滿足 i <= 10 的表達式,結果為假,因此循環結束。


while循環落下帷幕,for循環的精彩即將上演
或許你會好奇,為何在擁有while的足智多謀后,我們還需要for的加入?別急,且聽我細細道來。
?

2、for 循環

2.1 語法形式

for 循環時三種循環中使用最多的,for 循環的語法形式如下:

1 for (表達式1; 表達式2; 表達式3;)

2? ? ? 語句: //如果循環體想包含更多語句,可以加上大括號{}

表達式1?:用于循環變量的初始化
表達式2?:用于循環結束條件的判斷
表達式3 :用于循環變量的調整

2.2 for循環與while循環對比

while循環代碼格式:

#include <stdio.h>
int main()
{int i = 1;//初始化while (i<=10)//判斷{printf("%d\n",i);i++;//調整}return 0;
}

從上面代碼中,我們可以看到初始化,判斷,調整三塊是分開的,而且這三個數據無論哪一個變了,都會影響到循環結果。因此,在這個循環比較大的情況下,我們對循環的掌控就沒有那么全面,很容易出現錯誤。

我們在來看for 循環的代碼書寫格式

 for (表達式1; 表達式2; 表達式3;)初始化    判斷    調整語句: //如果循環體想包含更多語句,可以加上大括號{}

for循環中,初始化,判斷,調整是整合在一起的。到這應該就明白了為什么for 循環的使用是最多的了吧!for循環在面對大型循環的時候,容錯會比while循環高。

總結:for和while在實現循環的過程中都有初始化、判斷、調整這三個部分,但是for循環的三個部分非常集中,便于代碼的維護,而如果代碼較多的時候while循環的三個部分就比較分散,所以從形式上 for循環要更優一些。

2.3?for循環的執行流程

解讀:

首先執行 表達式1 初始化循環變量,接下來就是執行 表達式2判斷部分,表達式2的結果如果==0,則循環結束;表達式2的結果如果 !=0 則執行循環語句,循環語句執行完后,再去執行表達式3調整循環變量,然后再去 表達式2 的地方執行判斷,表達式2的結果是否為0,決定循環是否繼續。
整個循環的過程中,表達式1初始化部分只被執行1次,剩下的就是表達式2、循環語句、表達式3在循環。

2.4?for循環的簡單例題

在屏幕上打印1~10的值

代碼演示:

int main()
{int i = 0;for(i = 1;i <= 10;i++){printf("%d",i);}return 0;
}

演示結果:?

可以看到和while循環結果是相同的,在嚴格意義上,沒有規定必須用哪一個,你可以根據自己的情況來選擇,哪一種順手就用哪一種。

2.5?擴展:for循環的初始化,判斷,調整三個部分都是可以省略的

代碼演示:

int maiin()
{for( ; ;){printf("hehe\n");}return 0;
}

for循環中的這三個可以同時省略,也可以單個省略。

但是:如果判斷部分被省略,那么判斷部分就恒為真,就會造成死循環。


for循環的旅程就此結束,接下來是do-while循環的低調亮相時刻。雖然它很少被重用,但它的存在仍然為程序世界增添了一份獨特的風采。讓我們期待它在特定場景下的精彩表現吧!

3、do-while 循環

3.1 語法形式

在循環語句中do-while 語句的使用最少,它的語法形式如下:

do語句;while(表達式);

whilefor 這兩種循環都是先判斷,條件如果滿足就進入循環執行循環語句,如果不滿足就跳出循環;
do while 循環則是先直接進入循環體執行循環語句,然后再執行 while 后的判斷表達式,表達式為真,就會進行下一次,表達式為假,則不再繼續循環。

3.2 do-while 循環的執行流程

do while循環中先執行圖上的“語句”,執行完語句,在去執行“判斷表達式”,判斷表達式的結果是 !=0,則繼續循環,執行循環語句;判斷表達式的結果 ==0,則循環結束。
所以在 do while語句中循環體是至少執行一次的,這是do while循環比較特殊的地方。

3.3 do-while循環的簡單例題

在屏幕上打印1~10的值

代碼演示:

int main()
{int i = 1;//初始化do{printf("%d ", i);i++;//變量} while (i <= 10);//判斷return 0;
}

代碼結果:?

4、break和continue語句

4.1 while循環中的break 和continue?

在循環執行的過程中,如果某些狀況發生的時候,需要提前終止循環,這是非常常見的現象。C語言中提供了 break continue 兩個關鍵字,就是應用到循環中的。
break 的作用是用于永久的終止循環,只要break 被執行,直接就會跳出循環,繼續往后執行。? ? continue 的作用是跳過本次循環中 continue后邊的代碼,在for 循環和while循環中有所差異的。

4.1.1 break舉例

代碼演示:打印結果是多少?

int main()
{int i = 1;while (i <= 10){if (i == 5)break;      //當i等于5后,就執行break,循環就終止了printf("%d",i);i++;}return 0;
}

?代碼結果:

1 2 3?4

?分析:打印了1,2,3,4后,當 i 等于5的時候,循環在break的地方終止,不再打印,不再循環。
所以 break 的作用就是永久的終止循環,只要break被執行,break外的第一層循環就終止了。
那以后我們在循環中,想在某種條件下終止循環,則可以使用break來完成我們想要的效果。

4.1.2?continue舉例

continue 是繼續的意思,在循環中的作用就是跳過本次循環中continue后邊的代碼,繼續進行下一次循環的判斷。
上面的代碼,如果把 break 換成 continue 會是什么結果呢?

代碼演示:打印結果是多少?

int main()
{int i = 1;while (i <= 10){i++;if (i == 5)continue;printf("%d",i);}return 0;
}

代碼結果:

2 3 4 6 7 8 9 10 11

?分析結果:

i=1 進來后遇到 i++ 變為 2,因為2!=5continue未執行,打印?2,然后繼續循環,直到 i=5后執行continue,跳過printf,因此5不打印。再來到 i++ 這時 i 的值變為 6,continue未執行,繼續打印 6 直到i=10后再加1,循環結束。

??觀察continue 的這兩組代碼,你有發現什么不同嗎?

int main()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? int main()? ? ? ? ? ? ? ? ? ? ?
{? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??{
? ?int i = 1;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? int i = 1;
? ?while (i <= 10)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?while (i <= 10)
? ?{? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?{
? ? ? if (i == 5)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? i++;
? ? ? ? ?break;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?if (i == 5)?
? ? ? printf("%d",i);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?break;?
? ? ? i++;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? printf("%d",i);? ?
? ?}? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??}
? ? ? return 0;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?return 0;
}? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?}

沒錯!? i++ 的位置不同了。那么,為什么我們要將i++的位置調到continue的前面呢?

來,代碼結果展示:

這個代碼是還在運行的,不過打印完1 2 3 4 后死循環了。

解釋一下:continue 的作用是跳過本次循環中 continue后邊的代碼,因此當i=5進入while循環后continue被執行會直接跳過它后面的兩行代碼:

  printf(“%d”,i);i++;

然后直接來到while( i<=10)這一行,繼續再次進入while循環,continue再次被執行...因此進入死循環。

現在應該明白i++為什么要放到continue前面了吧!

4.2?for循環中的break 和continue?

4.2.1 break 舉例

for和while里的break用法一樣,不管循環還需要循環多少次,只要執行到了break,循環就會徹底終止。

代碼演示:

int main()
{int i = 0;for(i = 1;i <= 10;i++){if(i == 5)break;printf("%d",i);}return 0;
}

代碼結果:

1 2 3 4

break的作用是永久終止循環,未來我們在每個條件發生的時候,不想再繼續循環的時候,就可以使用break來完成。

4.2.1 continue舉例

上面的代碼,如果把break換成continue會發生什么結果呢?

?代碼演示:

int main()
{int i = 0;for(i = 1;i <= 10;i++){if(i == 5)continue;printf("%d",i);}return 0;
}

?代碼結果:

2 3 4 6 7 8 9 10 11

?4.3 do-while循環中的break和continue

do-while語句中的break和continue的作用于while循環中幾乎一模一樣

#include <stdio.h>
int main()
{int i = 1;do{if(i == 5)break;printf("%d",i);i = i + 1;} while(i<=10);return 0;
}
#include <stdio.h>
int main()
{int i = 1;do{if(i == 5)continue;printf("%d",i);i = i + 1;} while(i<=10);return 0;
}

5、循環的嵌套

在前面,本文詳細介紹了三種循環while、for、do-while的使用方法,相信聰明的伙伴們已經掌握了這三種循環的單獨使用了把!!但是有句話說的好,人多力量大。當我們把這三種循環嵌套在一起使用時才能夠更好的解決問題。這也就是我們所說的:循環嵌套。我們用一道題目來學習循環嵌套。

5.1 例題

找出100~200之間的素數,并打印在屏幕上。

補充:素數又稱為質數,指的是只能被 1 本身整除的數字。

5.2 題目分析:

1.要從100~200之前找出素數,首先需要有100~200之間的數,這里能夠使用循環來獲得。我們可以借助for 循環:for i = 100; i <= 200; i++

2.每次循環產生一個 i 的時候,需要判斷 i 是否為素數

怎么判斷 i 是否為素數呢?

拿2 ~ i-1 之間的數字去試除 i

如果2 ~ i-1 之間有數字能整除i,那么 i 就不是素數

如果2 ~ i-1 之間的所有數字都不能整除i,i 就是素數

要產生2~i-1之間的數字,這里也能夠使用 for 循環解決。

for(j=2; j<=i-1; j++)
{i%j == 0
}

5.3 代碼演示

#include <stdio.h>
int main()
{int i = 0;//循環變量for (i = 100; i <= 200; i++)//此for循環的目的:每次循環產生一個i,要判斷 i 是否是素數{int flag = 1;//假設i是素數int j = 0;//下面for循環的循環變量for (j = 2; j <= i - 1; j++){if (i % j == 0){flag = 0;//i 不是素數break;//為了直接跳出這次循環 例如:i = 100 進來后被2 整除后就不用在看后面的數字}}if (flag == 1)//如果 i%j !=o,則跳轉到這里,即 i為素數,然后打印{printf("%d\n", i);}}return 0;
}

代碼里都進行的注釋,如果還有不明白的可以私我!

代碼結果:

這只是關于求素數的一種方法,后面會專門寫一篇關于素數求解的文章 ,期待大家的到來!

這個例子里只用了for循環的循環嵌套,并沒有使用到三種循環的嵌套,但是相信聰明的伙伴們應該也能明白怎么使用循環嵌套了吧。!!!

6、goto語句

C語言中提供了一個非常特別的語法,就是goto語句和跳轉語句,goto語句可以實現在同一個函數內跳轉的設置好的標號處。

goto語句,也被稱為無條件轉移語句,是一種編程語言構造,它允許控制權直接跳轉到程序中指定的標簽標記處。

代碼演示:

#include <stdio.h>
int main()
{printf("China\n");goto next;printf("xly\n");
next:printf("strong\n");return 0;
}

代碼結果:

goto 語句如果使用的不當,就會導致在函數內部隨意亂跳轉,打亂程序的執行流程,所以我們的建議是能不用盡量不去使用;但是goto語句也不是一無是處,在多層循環的代碼中,如果想快速跳出,使用 goto 就非常的方便了。

for(...)
{ror(...){for(...){if(disaster)goto error;}}
}error;

本來 for 循環想提前退出得使用break,一個break 只能跳出一層for循環,如果3層循環嵌套就得使用3個break 才能跳出循環,所以在這種情況下我們使用 goto 語句就會更加的快捷。


結語:

分支與循環模塊的旅程即將告一段落,希望每位小伙伴都能帶著滿滿的收獲繼續前行。真誠地說,你們的進步是我最大的快樂源泉!咱們下一段學習之旅再見哦~

本篇文章可以和題目講解(2)一起食用,效果更佳!!

預告:下篇開始將開啟函數模塊,期待大家的到來!!!

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

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

相關文章

django學習入門系列之第四點《圖標》

文章目錄 圖標往期回顧 圖標 圖標網站&#xff1a; Font Awesome&#xff0c;一套絕佳的圖標字體庫和CSS框架 (dashgame.com) bootstrap提供的不多 注意&#xff0c;要用框架啟動&#xff0c;但用html啟動的話是用不了的&#xff08;圖標啟動不了&#xff09; 如何使用 如果…

DAMA學習筆記(六)-數據安全

1.引言 數據安全包括安全策略和過程的規劃、建立與執行&#xff0c;為數據和信息資產提供正確的身份驗證、授權、訪問和審計。數據安全實踐的目標是根據隱私和保密法規、合同協議和業務要求來保護信息資產。這些要求來自以下幾個方面: 1&#xff09;利益相關方: 應識別利益相關…

YOLO--置信度(超詳細解讀)

YOLO&#xff08;You Only Look Once&#xff09;算法中的置信度&#xff08;Confidence&#xff09;是一個關鍵概念&#xff0c;用于評估模型對預測框內存在目標對象的信心程度以及預測框對目標對象位置的準確性。 一、置信度的定義 數值范圍&#xff1a;置信度是一個介于0和…

ES6 對象的擴展(十五)

1. 屬性的簡潔表示&#xff08;Property Shorthand&#xff09; 特性&#xff1a;在對象字面量中&#xff0c;如果屬性名和變量名相同&#xff0c;可以省略屬性名&#xff0c;直接使用變量值。 用法&#xff1a;簡化對象字面量的書寫。 const x 1, y 2; const obj { x, y …

vscode 打開遠程bug vscode Failed to parse remote port from server output

vscode 打開遠程bug vscode Failed to parse remote port from server output 原因如圖&#xff1a; 解決&#xff1a;

網絡濾波器、EMI濾波器與EMC濾波器在電子元器件中的分類關系

在電子工程領域&#xff0c;濾波器作為關鍵的電子元器件&#xff0c;廣泛應用于信號處理、電磁兼容性和電磁干擾抑制等方面。本文將詳細介紹網絡濾波器、EMI濾波器和EMC濾波器的基本概念、工作原理及其在電子元器件中的分類關系。 一、網絡濾波器 網絡濾波器是一種通過處理信號…

Laravel與現代前端:Vue.js與React的無縫集成

Laravel與現代前端&#xff1a;Vue.js與React的無縫集成 在現代Web開發中&#xff0c;Laravel作為后端框架的佼佼者&#xff0c;與前端技術如Vue.js和React的結合&#xff0c;能夠創造出功能強大且用戶友好的應用。本文將詳細介紹如何在Laravel項目中集成Vue.js和React&#x…

臉書登錄指南:如何在同一臺設備登錄多個Facebook賬號?

海外社媒營銷人員和跨境賣家現在越來越依賴社交媒體平臺來拓展業務和接觸潛在客戶&#xff0c;尤其是Facebook。然而&#xff0c;在進行臉書登錄時&#xff0c;你可能會問&#xff1a;如何在同一臺設備上登錄多個Facebook賬號&#xff0c;而不違反Facebook的使用條款&#xff1…

Android 性能優化之卡頓優化

文章目錄 Android 性能優化之卡頓優化卡頓檢測TraceView配置缺點 StricktMode配置違規代碼 BlockCanary配置問題代碼缺點 ANRANR原因ANRWatchDog監測解決方案 Android 性能優化之卡頓優化 卡頓檢測 TraceViewStricktModelBlockCanary TraceView 配置 Debug.startMethodTra…

vivado 2019.2/modelsim SE-64 2019.2聯合仿真

參考鏈接 需要修改的地方&#xff1a; 編譯時幾個VHDL的庫會報錯&#xff0c;將language改為verilogfamily只選擇當前板子&#xff08;artix-7&#xff09;&#xff0c;速度會更快&#xff0c;錯誤率更低compile library path最好選擇vivado安裝路徑下的位置&#xff0c;很久之…

怎么創一個新的vue3項目

創建一個新的Vue 3項目可以通過多種方式&#xff0c;以下是基于Vue CLI&#xff08;命令行界面&#xff09;和Vue官方新的腳手架工具create-vue的詳細步驟。 使用Vue CLI創建Vue 3項目 安裝Vue CLI&#xff1a; 確保你已經安裝了Node.js&#xff08;建議使用LTS版本&#xff…

Python 基礎——元組

1.元組&#xff1a;元組元素不能修改 tuple1 (1, 2, 3, 4, 5, 6) tuple1[2] 3 #該代碼會顯示運行錯誤 2.元組的一些操作 #1. tuple1 (1, 2, 3, 4, 5, 6) tuple2 tuple1[:]#將tuple1復制到tuple2#2. tuple1 (1, 2, 3, 4, 5, 6) tuple1[:4] #輸出結果為&#xff08;1&am…

用于大規模圖像識別的深度卷積網絡

概述 論文地址&#xff1a;https://arxiv.org/pdf/1409.1556.pdf 這項研究探討了卷積網絡深度對圖像識別準確性的影響。重要的是&#xff0c;對具有小型卷積濾波器的網絡進行的評估表明&#xff0c;具有 16-19 個權重層的深度網絡的性能優于傳統配置。這些結果使得該模型在20…

把ros消息轉換成中文輸出

把ros消息轉換成中文輸出 c實現 發布 //發布性能評估數據 /trilateration_time_log void publishTrilaterationLog(const int reflectorPanelPoints_size,const double duration_count,const std::string& resultType,const std::string& resultChineseMessage,cons…

C#繪制含流動塊的管道

1&#xff0c;效果。 2&#xff0c;繪制技巧。 1&#xff0c;流動塊的實質是使用Pen的自定義DashStyle繪制的線&#xff0c;并使用線的偏移值呈現出流動的效果。 Pen barPen new Pen(BarColor, BarHeight);barPen.DashStyle DashStyle.Custom;barPen.DashOffset startOffse…

MySQL-日志-優化

目錄 介紹一下mysql 的日志 redo log 和binlog 的區別及應用場景 redo log 和 binlog 在恢復數據庫有什么區別? redo log 是怎么實現持久化的? redo log除了崩潰恢復還有什么其他作用? &#xff08;順序寫&#xff09; redo log 怎么刷入磁盤的知道嗎&#xff1f; 兩階…

重塑水利未來:智慧水利解決方案的探索與實踐,從物聯網、大數據到人工智能,科技如何賦能水利行業,實現智慧化管理與決策

本文關鍵詞&#xff1a;智慧水利、智慧水利工程、智慧水利發展前景、智慧水利技術、智慧水利信息化系統、智慧水利解決方案、數字水利和智慧水利、數字水利工程、數字水利建設、數字水利概念、人水和協、智慧水庫、智慧水庫管理平臺、智慧水庫建設方案、智慧水庫解決方案、智慧…

探索 IPython 的歷史記錄:全局命令的魔法

探索 IPython 的歷史記錄&#xff1a;全局命令的魔法 在數據科學和編程的世界里&#xff0c;IPython 以其強大的交互式特性成為了開發者和科學家們的首選工具。其中&#xff0c;IPython 的歷史記錄功能是其眾多亮點之一。本文將帶你深入探索如何在 IPython 中使用 %history 魔…

Python之爬蟲基礎

Python 是進行網絡爬蟲開發的熱門選擇&#xff0c;主要是因為其擁有豐富的庫和框架&#xff0c;如 Requests、BeautifulSoup、Scrapy 等&#xff0c;這些工具極大地簡化了網頁數據的抓取和處理過程。以下是一些 Python 爬蟲的基礎知識和步驟&#xff1a; 1. 理解網絡爬蟲 網絡…

如何通過3D開發組件HOOPS增強Navisworks數據訪問?

隨著建筑信息模型&#xff08;BIM&#xff09;和建筑、工程和施工&#xff08;AEC&#xff09;市場的快速發展&#xff0c;對Navisworks支持的需求也在不斷增長。特別是在多個公司贊助Navisworks項目的大環境下&#xff0c;HOOPS組件的支持顯得尤為重要。這些公司包括一家大型電…