和文科妹子學程式設計 第4課 函式 上

2021-09-11 06:25:29 字數 3658 閱讀 7123

生成乙個陣列

列印這個陣列

對這個陣列進行xx操作

列印這個陣列

氣泡排序為例:

//生成乙個陣列

let array

=

constn =

100

for

(let i =0

;i i ++

)

//列印這個陣列

for

(let i =0

;i<

array

.length;i

++)

//氣泡排序

for

(let i=0

;i<

array

.length;i

++)

}

}

//列印這個陣列

for

(let i =0

;i<

array

.length;i

++)

在這種練習裡,我們經常要列印這個陣列也就是這段**:

//列印這個陣列

for

(let i =0

;i<

array

.length;i

++)

我們在最最開始,就已經明白了一點

真.程式設計師無法容忍任何重複性的勞動,包括複製貼上在內

你也許會問,為什麼不能複製貼上?

且聽我慢慢講,假如我們碰到的pm(產品經理)提的需求是這樣的:

生成乙個陣列

列印這個陣列

對這個陣列進行排序

列印這個陣列

當你按如上要求搞定後,pm跑過來說: 「把列印這個陣列的輸出格式變成

陣列的第

n個元素是

x

」你改了兩行**

然後pm又跑來說,「把陣列輸出的最開始加上一行:

下面開始輸出陣列

」你想改就改吧,於是你加了兩行**。

然後pm又跑來說: 「陣列輸出結束後要列印提示語表示資料輸出完畢」

……「陣列的輸出要四捨五入顯示兩位小數」

……「我們只輸出前十個就可以了」

……「不用輸出最開始的提示語了」

…………

什麼?你向我要刀?!?

什麼?磚頭也行?!!!!

姑娘,咱冷靜冷靜,古人云吃一塹長一智,咱下次千萬不要複製貼上了,咱們用函式對付他!

其實,大家對函式都不陌生,我們在高中數學裡就見過它:

y=f

(x)

對於f,每給定乙個x,就會對應輸出的乙個y,比如三角函式。在計算機語言中,函式也是類似的定義,即:函式是由事件驅動的或者當它被呼叫時執行的可重複使用的**塊。

這裡有幾個點:

1.事件驅動,這個我們在很後面的地方才會用到,暫時忽略;

2.被呼叫執行————函式是不會自己執行的,只有在「呼叫」時才會執行;

3.可重複使用————函式可以被反覆的「呼叫」,從而達到重複使用的目的;

4.**塊————函式也是**(這不廢話麼)

「什麼?整這麼多條條框框有什麼用,能看懂什麼?

talk is cheap,show me the code

那麼好,我們先來看函式的定義,先來一種正統的方式,他是這個樣子的:

let sum 

=function(a

,b)

這裡,我們定義了乙個求和函式sum ,它的作用是返回兩個數字的和,其中a,b是它的引數,function是乙個關鍵字,表明接下的**是乙個函式,而return

c表明這個函式將把c的值返回;

試驗如下**:

let sum 

=function(a

,b)

let d

=sum(3

,5)

console

.log(d

)

let a

=10

let b =20

let c

=sum(a

,b)

這段**有幾個有意思的地方:

在function(a,b)內,這裡的變數a,b,c只是在函式內部有效的(想起來我們之前聊過的變數作用域了麼?)

在sum定義以後,它並沒有執行,而是直到letd=

sum(3,

5)時,sum才執行了第一次,這時a是3,b是5

letc=

sum(a,

b)時,sum執行了第二次,這時a是10,b是20

除了這種定義,還有一種更酷的定義方法,它是這樣寫的 :

let sum =(

a ,b)=>

簡化了相應的寫法,用 ()=> 來表明這是一段函式.

另外,最傳統的寫法應該是這種:

function

sum (a

,b)

在我們接下來相當長的一段學習過程中,這三種形式是等效的,因此討論函式的三種寫法在本質上和討論回字的四種寫法是一樣的,但是,在讀別的**的時候,我們要認得哈。

也就是說,在某個時刻,你會發現,他們還是有區別的

理解了這一段**,我們再討論乙個有意思的話題,就是有我們可能不需要返回值,比在在上一文的要求裡,我們只需要輸出,不需要返回結果:

let printarray =(

items

)=>

}

當你呼叫乙個無返回值的函式時,如果你要強行拿到他的返回,那麼你會得到乙個 undefined.

也有不需要輸入值的,比如我們定義乙個列印歡迎詞的函式:

let printgreeting 

=()=>

由於函式的東西可以講上一籮筐,所以咱分成上下兩部分哈。 記住,今天的重點是

將引子中的pm 的幾個要求都實現出來。

要多關愛 pm 哈。

零基礎學pythyon 安裝python程式設計環境

任何高階語言都是需要乙個自己的程式設計環境的,這就好比寫字一樣,需要有紙和筆,在計算機上寫東西,也需要有文字處理軟體,比如各種名稱的office。筆和紙以及office軟體,就是寫東西的硬體或軟體,總之,那些文字只能寫在那個上邊,才能最後成為一篇文章。那麼程式設計也是,要有個什麼程式之類的東西,要把...

產學深度合作,資料賦能科研,共創新文科大資料新生態

2020年12月,華東師範大學與和鯨科技達成合作,將基於和鯨科技旗下核心產品 modelwhale 打造乙個資料建立 發布 計算 引用 追溯等閉環的資料中臺,實現人文社科資料匯聚整合 資料提純加工 資料服務視覺化 資料價值變現,方便科研人員完成跨學科 跨領域的資料研究創新工作。這也是雙方在共同建立 ...