色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

想要弄懂Python?買一次西瓜就可以了

5RJg_mcuworld ? 來源:未知 ? 作者:胡薇 ? 2018-04-27 15:42 ? 次閱讀

什么是code?

code就就是一種語言,一種計算機能讀懂的語言。計算機是一個傻子,他理解不了默認兩可的任何東西。比如,你讓你老公去買個西瓜,你老公會自己決定去哪里買,買幾個,找個搞活動打折的買,總之,你給他錢,他就給你買回來讓你吃到爽的西瓜。但是,你想讓計算機買一個西瓜?你要告訴他:去門口的鮮豐水果店買,買沙瓤無子西瓜,若旁邊的店打折,就去旁邊的店買。總之,你不能讓計算機做任何決定,你要清楚的告訴他所有情況下的所有的行為。而code,就是你和計算機交流的語言,或者說是對計算機的命令。

我們就把計算機理解為一個人,這個人很死板,只能按照你給他的詳細命令進行工作。而這個人工作速度特別特別快,并且保證工作結果都是正確的。

編程語言其實不重要,重要的是要明白如何和計算機交流,明白了這個也就能看懂代碼了。

編程 = 算法 + 數據結構

python就是一種和計算機交流的語言,這種語言單詞(關鍵字)不多,規則也少。下面所有的內容都基于python。

1、判斷

當你命令計算機做一件事情的時候,這件事情可能分一些情況進行處理。

判斷通常涉及到的關鍵字有:if , else, elseif, and, or,<, >,=,<=,>=,==

比如,你讓計算機買西瓜,希望買到打折的西瓜,不打折的話你就不吃了。

if 水果店打折:

買西瓜

else:

不買了

通過這個命令,計算機變得更智能了一些,他可以根據情況執行你的命令。

水果店不打折你就吃不到西瓜,你不開心。那么,我們讓計算機更智能一些。假如西瓜打折,就買西瓜;不打折的話讓計算機跟老板講價,老板同意打折,就買西瓜;不同意,不吃了;

if 水果店打折:

買西瓜

else:

與老板講價

if 講價成功:

買西瓜

else:

不吃了。

雖然和老板講價一般都能講成功,但是有的老板給力給打五折,有的老板只給打九折。你就想了,若老板打五折,我就買兩個,今天吃一個,明天吃一個。若老板不給力,打折不到五折,就買一個,今天先吃,明天再說。

if 水果店打折:

買西瓜

else:

與老板講價

if 打折成功 and 打折力度<=5:

買兩個西瓜

elseif 打折成功 and 打折力度 > 5:

買一個西瓜

else:

不吃了。

此外,有沒有發現,打著成功這段代碼其實也可以寫成:

if 打折成功:

if 打折力度<=5:

買兩個西瓜

else:

買一個西瓜

else:

不吃了。

由此可見,計算機也不是完全的一成不變,只要你給他的命令他能理解并且不會默認兩可,他都可以完成工作。

and的意思代表且,or的意思代表或。and和or的順序不同,結果也不同,可以通過括號來說明判斷條件的優先級。

a==b是比較a和b是否相等的意思,而=代表賦值。賦值的含義,我在下面的變量章節介紹。

2、循環

python中涉及到循環的關鍵字包括:for…in… ,while,break,continue

上面的例子我們已經讓電腦成功的可以根據不同的情況去水果店買西瓜了,但是若老板不打折,你就吃不到西瓜了。這時,你就想了,咱們小區門口有三家水果店,分別是鮮豐水果、四季水果和路邊攤,一家不打折不代表三家都不打折啊,所以你希望電腦可以去三家都去看看,挑一家打折的店買西瓜。

for 水果店 in (鮮豐水果、四季水果和路邊攤):

if 水果店 打折:

買西瓜

break(循環結束)

else:

啥都不做

帶西瓜回家

循環的意義在于,可以用電腦對不同的對象執行相同的命令。

介紹下break,break的意思就是結束循環。比如,這段代碼中的break表示,我們一旦買了西瓜,那么就帶西瓜回家。

3、變量

現在是時候介紹’變量’這個重要的東西了。

我們依然把電腦理解為幫我們工作的一個人,那么作為一個人,他需要有記憶力,而我們就可以通過變量去控制、利用計算機的記憶力。

變量可以理解為計算機的一個記憶單元,計算機擁有極好的記憶力,所以,可以隨心所欲的使用,用完了就扔,需要了就要。(當然,說隨心所欲是不嚴謹的,但是你可以理解為隨心所欲)

那為什么叫變量呢,就是因為可以改變。為什么要改變呢?比如我們都有自己的年齡,我今年18,明年就19了。所以,’年齡’在我的記憶里是每年改變的。

變量對應的一個東西叫常量,在我的記憶力,我的老婆是江江同學。而這個’老婆’這個記憶單元在我的腦子里是不會變的,她永遠都是江江同學。常量你現在可以不用理解,我寫主要是為了秀恩愛。

現在,計算機又要去買西瓜了。不過這次,你希望計算機可以在三個水果店中,找到一個打折力度最大的水果店去買水果。

之前所有水果店的最大折扣 = None

之前給最大折扣的水果店 = None

for 水果店 in (鮮豐水果、四季水果和路邊攤):

當前水果店折扣 = 老板給的折扣

if 當前水果店折扣 < 之前所有水果店的最大折扣:#4折比5折力度大

之前所有水果店的最大折扣 = 當前水果店折扣

之前給最大折扣的水果店 = 水果店

去 之前給最大折扣的水果店 買一個西瓜

以上有以下幾個記憶單元:

之前所有水果店的最大折扣

之前給最大折扣的水果店

當前水果店折扣

水果店 注意,for a in b,a也是一個變量,他在每次執行的時候都是b中的當前執行的一個元素。

這里需要介紹一些概念:

None 在python中表示空,表示這個記憶單元現在啥都沒有。比如在我情竇初開時,腦海中就已經有了情人這個記憶單元,我一直在尋找,但遇到你之前一直沒有找到,所以那段時間這個記憶單元里面一直是空。

賦值符號:=。 注意,在計算機語言里面,一個’=’號表示賦值,兩個等號’==’表示比較前后元素。賦值的意思是,把后面的元素,放到前面的變量里面。

變量的作用域

作用域這個東西非常重要,但是真心不想講,因為沒辦法結合現實的例子,不過還是大體說明下。

還是剛才的例子,我加了行號,并且我使用-代表空格,表示代碼的縮進。

1 之前所有水果店的最大折扣 = None

2 之前給最大折扣的水果店 = None

3 for 水果店 in (鮮豐水果、四季水果和路邊攤):

4 ---當前水果店折扣 = 老板給的折扣

5 ---if 當前水果店折扣 < 之前所有水果店的最大折扣:#4折比5折力度大

6 ------之前所有水果店的最大折扣 = 當前水果店折扣

7 ---之前給最大折扣的水果店 = 水果店

8 去 之前給最大折扣的水果店 買一個西瓜

你看這個例子可能納悶,為什么要先給’之前所有水果店的最大折扣’、’之前給最大折扣的水果店’這兩個變量賦值為None呢。就是因為作用域問題。

你看這個程序,每行代碼的縮進都是不一樣的。變量作用域可以理解為:一個變量,只有在其第一次出現的地方的縮進,以及縮進更多的代碼里面,才有效。我們第1、2行的變量,就可以用于3-8行,因為這些代碼的縮進都在1、2行的后面。而第四行的變量’當前水果店折扣’,只在5、6、7行有效

1 A = None

2 ————B = None

3 ————..

4 ————————C = None

5 ————————..

6 ————D = None

7 ————..

8 ————————..

9 ————————..

10 ..

11 ..

再舉個例子,ABCD是變量,..代表某些代碼。A的作用域就是1-11行,即1-11行都可以使用A。B的作用域是2-9行,C的作用域只有4-5行,注意,8-9行就不能再使用C了,雖然他的縮進和4、5行一樣,作用域遇到第一個不能用縮進行代碼即結束。D的作用域就是6-9行。

4、函數

看懂以上幾節,大概應該明白計算機如何執行代碼的了。

而函數和模塊,和之前的介紹不太一樣。之前是介紹如何讓計算機工作,是面向計算機的。而這一節,是面向人的,是如何讓我們寫給計算機的代碼看起來更加簡潔、明了。函數和模塊都是對代碼結構的優化,否則一個稍微大點的項目,一大坨代碼,計算機看得懂人看不懂,不利于管理和交流。

首先說函數。函數是一系列代碼的集合,用函數一般是有幾個原因:

1.給一段代碼起個名字。

2.這段代碼和使用它的代碼關系不大,所以可以抽出來,抽出來后代碼更簡潔。關系不大的意思就是:使用函數的代碼通過傳給函數幾個參數,函數就可以執行。

3.代碼集合起來就可以在代碼的不同地方使用。

依然我們去買西瓜,不過我們希望電腦可以今天買完西瓜明天再買一個。按照之前的方式,這個邏輯應該寫成這樣:

for 水果店 in (鮮豐水果、四季水果和路邊攤):

if 水果店打折:

買西瓜

else:

與老板講價

if 打折成功 and 打折力度<=5:

買兩個西瓜

elseif 打折成功 and 打折力度 > 5:

買一個西瓜

else:

不吃了。

休息一天。

for 水果店 in (鮮豐水果、四季水果和路邊攤):

if 水果店打折:

買西瓜

else:

與老板講價

if 打折成功 and 打折力度<=5:

買兩個西瓜

elseif 打折成功 and 打折力度 > 5:

買一個西瓜

else:

不吃了。

上面的代碼可以實現我們的要求,但是買西瓜的代碼其實是重復的,對于重復代碼,管理起來比較麻煩,比如你想改一點,那么就要去各個地方都改一次。

那么,我們把買西瓜的代碼弄成一個函數,代碼就可以整理為:

def 買西瓜_函數():

for 水果店 in (鮮豐水果、四季水果和路邊攤):

if 水果店打折:

買西瓜

else:

與老板講價

if 打折成功 and 打折力度<=5:

買兩個西瓜

elseif 打折成功 and 打折力度 > 5:

買一個西瓜

else:

不吃了。

買西瓜_函數()

休息一天。

買西瓜_函數()

這一次,代碼整潔多了,而且,我們每次想修改買西瓜的代碼,都只需要改這個函數一處代碼都可以。

在python中,使用def function_name():定義函數,函數下面所有的縮進都屬于這個函數,叫函數體。

使用function_name()調用函數。

4.1 函數參數

現在你又不滿足與電腦只會買西瓜了,你又想吃柚子。怎么辦呢,那么是不是我們又要寫一個買柚子的函數呢。

當然可以再寫一個買柚子函數,但是買柚子函數的邏輯和買西瓜函數的邏輯都是一樣的,命令也一樣,唯一的區別就是之前是賣西瓜,現在是買柚子。如果再寫一個類似的買柚子函數,那么又出現剛才說的問題,每次修改買水果的邏輯,都需要同時去修改買西瓜、買柚子函數,如果柚子吃膩了,又要買香蕉、蘋果、梨,豈不是要寫非常多的函數?

為了解決這個問題,其實有一個更好的方法,就是使用函數參數。

由于我們買水果(無論是西瓜、還是柚子)的功能都是一樣的,所以我們可以寫一個買水果函數,買水果函數定義了買一個水果的流程,當我們使用這個函數的時候,我們只要告訴這個函數我們要買什么水果,函數就可以根據你告訴他的水果名,去買對應的水果。

買水果函數的代碼如下:

def 買水果函數(水果名):

for 水果店 in (鮮豐水果、四季水果和路邊攤):

if 水果店打折:

買[水果名]

else:

與老板講價

if 打折成功 and 打折力度<=5:

買兩個[水果名]

elseif 打折成功 and 打折力度 > 5:

買一個[水果名]

else:

不吃了。

買水果函數(西瓜)#讓電腦去買西瓜

買水果函數(柚子)#讓電腦去買柚子

在python中想使用函數參數,只需要在函數定義的時候,在括號里面加上參數即可,我們這里的參數就是’水果名’。在函數體中代碼可以使用函數參數。

在調用函數的時候,把一個變量或者常量寫在函數名后面的括號里面,傳給函數。

注意,若是存在多個參數,函數定義和調用函數的參數順序一定要一致。

在python中,還存在默認參數、關鍵字參數等稍微高級一點的使用方式,舉個例子,不詳細說明了。

def sum(a, b = 0,c = 1):#b/c是默認參數

return a+b+c

func(1,0,1)

func(1)

func(1,c=1)

這三個func調用的結果都是一樣的。

5、模塊

剛才我們已經講了函數,函數就是把代碼整合起來。而模塊,就是把更多代碼整合起來。

模塊和函數的引入是為了解決類似的問題:管理代碼段,并且給他們起一個名字。

一般來說,一把模塊就是一個py文件,里面可能包括很多函數,也可以包括一些類的定義(這個我們后面講哦)。

模塊的引入就是為了將代碼更好地管理。

我們把代碼放在一個py文件中,這個py文件就是一個模塊,在其他py文件里面,我們就可以使用import關鍵字,將模塊引入。

比如,我們現在有一個a.py文件,里面有一些函數,比如buy_xigua,buy_youzi等,若我們想在b文件中使用這些函數,那么我們必須在使用前,導入a模塊。

導入一個模塊并使用模塊里面的函數有很多方法,我把常見的方法列在下面.

方法一:

import a

a.buy_xigua()

a.buy_youzi()

這種方法導入模塊a,然后通過模塊.函數調用函數。

方法二:

from a import *

buy_xigua()

buy_youzi()

這個方式導入模塊a中的所有內容,可以直接使用。

方法三:

from a import buy_xigua,buy_youzi

buy_xigua()

buy_youzi()

這個方式導入模塊a中的指定內容,可以直接使用,一般這種方法在軟件開發過程中使用的比較多,原因是我們只把需要的內容導入使用,不需要的不導入。(按需使用別浪費,在哪里都是個好習慣,深層原因超出教程范圍)

6、類和對象

類和對象的概念,對于沒有接觸過編程的同學來說,可能稍微有些不好理解。我記得當年第一次接觸這個概念,也迷糊了段時間。

之前,我們介紹過‘變量’。變量的引入,是為了描述程序內的記憶單元。一個變量可以是一個數字,也可以是一個字符串(比如設置一個變量 名字='水風')。

但是,有些東西需要使用很多變量共同描述才可以。比如,一個買西瓜的人。買西瓜的人有很多特征,比如:名字、存款,持有西瓜數量。此外,買西瓜的人也有一些行為,比如買西瓜這個行為。為了實現買西瓜的人這個功能,我們引入類和對象的概念。注意,類/對象引入想解決的問題和函數、模塊所解決的問題不一樣。函數和模塊的引入更多的是為了管理代碼,而類/對象的引入是為了把狀態和行為封裝在一起。

那么,類和對象分別是什么意思呢。類是我們定義的一種東西有哪些狀態和行為,比如買西瓜的人有狀態和行為,我們提前定義好他們,類的概念是一種虛擬的。而對象就是代碼在執行的過程中,去動態創建、生成的一個實體。

比如買西瓜的人,我們之前寫了買西瓜的流程,現在我們想創建兩個買西瓜的人,每人負責一天,這樣買西瓜的人也可以休息了。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Code
    +關注

    關注

    0

    文章

    69

    瀏覽量

    15393
  • python
    +關注

    關注

    56

    文章

    4795

    瀏覽量

    84646

原文標題:Python難懂?買一次西瓜就懂了!

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ADXRS290想要一次傳輸中想要讀取到XD0 XD1 YD0 YD1,怎么操作?

    對于ADXRS290 如果想要一次傳輸中想要讀取到XD0 XD1 YD0 YD1,只需要發一次寄存器地址之后保持CS信號拉低直給8*4=
    發表于 12-28 08:21

    內存小的有福,只要你的硬盤有多就可以當內存用

    內存小的有福,只要你的硬盤有多就可以當內存用下載后打開就用,只要你認為自己的那個盤多出5G不用的,就可以拿那個盤來作內存用了,用比原來的系統操作要快倍!很好用的!!! Vista有
    發表于 06-28 13:29

    最后一次

    最后一次PCB打樣找華強 http://www.hqpcb.com 樣板2天出貨
    發表于 12-06 23:43

    請給個430驅動蜂鳴器的程序,只用讓它叫就可以

    請給個430驅動蜂鳴器的程序,只用讓它叫就可以!!!!!!!!!
    發表于 11-25 10:46

    請問下,DDS芯片內部寄存器是不是只需要配置一次就可以

    我用的是AD9954,FPGA來配置內部寄存器,頻率控制字等寄存器。是不是只需要配置一次就可以?下次上電不需要重新配置
    發表于 12-24 11:59

    關于用單片機遙控空調,解碼編碼發送就可以了嗎?

    解碼8位數碼管顯示,按一次得到兩組數據,xx xx xx xxxx xx xx xx 然后發送這組數據就可以控制空調,是這樣子的嗎?
    發表于 01-02 17:29

    [轉]Python難懂?買一次西瓜就懂了!

    , and, or,,=,=,==比如,你讓計算機買西瓜,希望買到打折的西瓜,不打折的話你就不吃了。if水果店打折: 買西瓜else: 不買了通過這個命令,計算機變得更智能
    發表于 04-20 13:19

    C語言基礎學習到什么程度就可以開始

    ,都差點崩潰! 學習單片機開發需要掌握的東西很多,就個C語言,學了3個月,還是頭霧水,你還能堅持的下去嘛?如果不是因為當年要參加電賽,我早都放棄,所以大家千萬不要走我的老路。那
    發表于 07-15 10:24

    循環充放電一次就是少一次壽命嗎?

    循環充放電一次就是少一次壽命嗎?循環就是使用,我們是在使用電池,關心的是使用的時間,為了衡量充電電池的到底可以使用多長時間這樣個性能,就規定
    發表于 09-07 02:06 ?2059次閱讀

    4G,是不是就可以砍掉固網?

    自移動4G試商用以來,4G速率高成為毫無爭議。來自各種宣傳的說法,杭州TDD-LTE實測最高速率達到100Mbps,遠超于現有固網寬帶速率。有4G,我們是不是就可以砍掉固網
    發表于 02-20 10:56 ?1160次閱讀

    數據分析為什么用Python?只需4代碼就可以畫地圖

    Python 4行代碼即可以畫出個地圖,8行代碼畫出個中國地圖!
    的頭像 發表于 05-28 16:16 ?4965次閱讀
    數據分析為什么用<b class='flag-5'>Python</b>?只需4代碼<b class='flag-5'>就可以</b>畫地圖

    鋰離子電池第一次充電充滿就可以了嗎?

    日常生活中,鋰離子電池的使用已經非常深入廣泛,鋰離子電池能量密度大,平均輸出電壓高,自放電小,沒有記憶效應, 第一次充電不需要激活電池,只需要給電池充滿電即可。如果電池過度充電或過度放電,會
    的頭像 發表于 07-13 09:00 ?2.2w次閱讀

    PLC控制伺服到底需要哪些信號就可以實現定位控制

    PLC控制伺服到底需要哪些信號就可以實現定位控制?下面給大家分享兩種控制。
    發表于 06-06 09:49 ?1143次閱讀
    PLC控制伺服到底需要哪些信號<b class='flag-5'>就可以</b>實現定位控制<b class='flag-5'>了</b>?

    一次調頻和二調頻的概念 一次調頻可以實現無差調節?

    一次調頻和二調頻的概念 一次調頻可以實現無差調節? 一次調頻和二
    的頭像 發表于 10-17 16:15 ?9339次閱讀

    了解這些就可以搞懂 IGBT

    了解這些就可以搞懂 IGBT
    的頭像 發表于 11-24 15:47 ?3039次閱讀
    了解這些<b class='flag-5'>就可以</b>搞懂 IGBT
    主站蜘蛛池模板: 4480YY旧里番在线播放| 99精品视频免费观看| BT7086福利二区最新| 电影 qvod| 九九热视频免费观看| 日本69xxxxx| 怡春院国产精品视频| 成人性生交大片免费看中文| 国产综合无码一区二区色蜜蜜| 女性BBWBBWBBWBBW| 亚洲乱亚洲乱妇在线观看| 9久爱午夜视频| 精品久久免费视频| 日韩AV无码一区二区三区不卡毛片| 夜色帮首页| 国产成人在线播放视频| 妈妈的朋友6未删减版完整在线 | 轻点灬大ji巴太粗太双性高h| 亚洲黄色网页| 边做边爱免费视频播放| 久久国产精品永久网站| 色综合久久久久久| 99视频全部看免费观| 精品含羞草免费视频观看| 三级黄色在线视频| 4399的视频BD高清在线观看免费| 国产人在线成免费视频| 青柠在线观看视频在线高清完整| 一天不停的插BB十几次| 国产日韩欧美高清免费视频| 人妻体内射精一区二区| 最近中文字幕完整版高清| 国产中文字幕乱码免费| 色欲AV精品人妻一区二区三区 | 亚洲熟女丰满多毛XXXXX| 粉嫩AV国产一区二区福利姬| 男女又黄又刺激B片免费网站| 夜夜澡人人爽人人喊_欧美| 国产精品久久久久久人妻香蕉 | 久久re这里视频精品8| 香蕉在线播放|