0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

編程語言其實(shí)不重要,重要的是要明白如何和計(jì)算機(jī)交流

電子工程師 ? 來源:lq ? 2019-02-27 10:10 ? 次閱讀

什么是code

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

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

編程語言其實(shí)不重要,重要的是要明白如何和計(jì)算機(jī)交流,明白了這個(gè)也就能看懂代碼了。

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

判斷

當(dāng)你命令計(jì)算機(jī)做一件事情的時(shí)候,這件事情可能分一些情況進(jìn)行處理。

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

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

if水果店打折:買西瓜else:不買了

通過這個(gè)命令,計(jì)算機(jī)變得更智能了一些,他可以根據(jù)情況執(zhí)行你的命令。

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

if水果店打折:買西瓜else:與老板講價(jià)if講價(jià)成功:買西瓜else:不吃了。

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

if水果店打折:買西瓜else:與老板講價(jià)if打折成功and打折力度<=5:????????買兩個(gè)西瓜????elseif?打折成功?and?打折力度?>5:買一個(gè)西瓜else:不吃了。

此外,有沒有發(fā)現(xiàn),打著成功這段代碼其實(shí)也可以寫成:

if打折成功:if打折力度<=5:????????????買兩個(gè)西瓜????????else:????????????買一個(gè)西瓜????else:????????不吃了。

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

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

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

循環(huán)

python中涉及到循環(huán)的關(guān)鍵字包括:for...in... ,while,break,continue

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

for水果店in(鮮豐水果、四季水果和路邊攤):if水果店打折:買西瓜break(循環(huán)結(jié)束)else:啥都不做帶西瓜回家

循環(huán)的意義在于,可以用電腦對不同的對象執(zhí)行相同的命令。

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

變量

現(xiàn)在是時(shí)候介紹'變量'這個(gè)重要的東西了。

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

變量可以理解為計(jì)算機(jī)的一個(gè)記憶單元,計(jì)算機(jī)擁有極好的記憶力,所以,可以隨心所欲的使用,用完了就扔,需要了就要。(當(dāng)然,說隨心所欲是不嚴(yán)謹(jǐn)?shù)?,但是你可以理解為隨心所欲)

那為什么叫變量呢,就是因?yàn)榭梢愿淖?。為什么要改變呢?比如我們都有自己的年齡,我今年18,明年就19了。所以,'年齡'在我的記憶里是每年改變的。

變量對應(yīng)的一個(gè)東西叫常量,在我的記憶力,我的老婆是江江同學(xué)。而這個(gè)'老婆'這個(gè)記憶單元在我的腦子里是不會變的,她永遠(yuǎn)都是江江同學(xué)。常量你現(xiàn)在可以不用理解,我寫主要是為了秀恩愛。

現(xiàn)在,計(jì)算機(jī)又要去買西瓜了。不過這次,你希望計(jì)算機(jī)可以在三個(gè)水果店中,找到一個(gè)打折力度最大的水果店去買水果。

之前所有水果店的最大折扣=None之前給最大折扣的水果店=Nonefor水果店in(鮮豐水果、四季水果和路邊攤):當(dāng)前水果店折扣=老板給的折扣if當(dāng)前水果店折扣

以上有以下幾個(gè)記憶單元:

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

之前給最大折扣的水果店

當(dāng)前水果店折扣

水果店 注意,for a in b,a也是一個(gè)變量,他在每次執(zhí)行的時(shí)候都是b中的當(dāng)前執(zhí)行的一個(gè)元素。

這里需要介紹一些概念:

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

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

變量的作用域

作用域這個(gè)東西非常重要,但是真心不想講,因?yàn)闆]辦法結(jié)合現(xiàn)實(shí)的例子,不過還是大體說明下。

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

1之前所有水果店的最大折扣=None2之前給最大折扣的水果店=None3for水果店in(鮮豐水果、四季水果和路邊攤):4---當(dāng)前水果店折扣=老板給的折扣5---if當(dāng)前水果店折扣

你看這個(gè)例子可能納悶,為什么要先給'之前所有水果店的最大折扣'、'之前給最大折扣的水果店'這兩個(gè)變量賦值為None呢。就是因?yàn)樽饔糜騿栴}。

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

1A=None2————B=None3————..4————————C=None5————————..6————D=None7————..8————————..9————————..10..11..

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

函數(shù)和模塊

看懂以上幾節(jié),大概應(yīng)該明白計(jì)算機(jī)如何執(zhí)行代碼的了。

而函數(shù)和模塊,和之前的介紹不太一樣。之前是介紹如何讓計(jì)算機(jī)工作,是面向計(jì)算機(jī)的。而這一節(jié),是面向人的,是如何讓我們寫給計(jì)算機(jī)的代碼看起來更加簡潔、明了。函數(shù)和模塊都是對代碼結(jié)構(gòu)的優(yōu)化,否則一個(gè)稍微大點(diǎn)的項(xiàng)目,一大坨代碼,計(jì)算機(jī)看得懂人看不懂,不利于管理和交流。

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

1.給一段代碼起個(gè)名字。

2.這段代碼和使用它的代碼關(guān)系不大,所以可以抽出來,抽出來后代碼更簡潔。關(guān)系不大的意思就是:使用函數(shù)的代碼通過傳給函數(shù)幾個(gè)參數(shù),函數(shù)就可以執(zhí)行。

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

依然我們?nèi)ベI西瓜,不過我們希望電腦可以今天買完西瓜明天再買一個(gè)。按照之前的方式,這個(gè)邏輯應(yīng)該寫成這樣:

for水果店in(鮮豐水果、四季水果和路邊攤):if水果店打折:買西瓜else:與老板講價(jià)if打折成功and打折力度<=5:????????????買兩個(gè)西瓜????????elseif?打折成功?and?打折力度?>5:買一個(gè)西瓜else:不吃了。休息一天。for水果店in(鮮豐水果、四季水果和路邊攤):if水果店打折:買西瓜else:與老板講價(jià)if打折成功and打折力度<=5:????????????買兩個(gè)西瓜????????elseif?打折成功?and?打折力度?>5:買一個(gè)西瓜else:不吃了。

上面的代碼可以實(shí)現(xiàn)我們的要求,但是買西瓜的代碼其實(shí)是重復(fù)的,對于重復(fù)代碼,管理起來比較麻煩,比如你想改一點(diǎn),那么就要去各個(gè)地方都改一次。

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

def買西瓜_函數(shù)():for水果店in(鮮豐水果、四季水果和路邊攤):if水果店打折:買西瓜else:與老板講價(jià)if打折成功and打折力度<=5:????????????????買兩個(gè)西瓜????????????elseif?打折成功?and?打折力度?>5:買一個(gè)西瓜else:不吃了。買西瓜_函數(shù)()休息一天。買西瓜_函數(shù)()

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

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

使用function_name()調(diào)用函數(shù)。

函數(shù)參數(shù)

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

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

為了解決這個(gè)問題,其實(shí)有一個(gè)更好的方法,就是使用函數(shù)參數(shù)。

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

買水果函數(shù)的代碼如下:

def買水果函數(shù)(水果名):for水果店in(鮮豐水果、四季水果和路邊攤):if水果店打折:買[水果名]else:與老板講價(jià)if打折成功and打折力度<=5:????????????????買兩個(gè)[水果名]????????????elseif?打折成功?and?打折力度?>5:買一個(gè)[水果名]else:不吃了。買水果函數(shù)(西瓜)#讓電腦去買西瓜買水果函數(shù)(柚子)#讓電腦去買柚子

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

在調(diào)用函數(shù)的時(shí)候,把一個(gè)變量或者常量寫在函數(shù)名后面的括號里面,傳給函數(shù)。

注意,若是存在多個(gè)參數(shù),函數(shù)定義和調(diào)用函數(shù)的參數(shù)順序一定要一致。

在python中,還存在默認(rèn)參數(shù)、關(guān)鍵字參數(shù)等稍微高級一點(diǎn)的使用方式,舉個(gè)例子,不詳細(xì)說明了。

defsum(a,b=0,c=1):#b/c是默認(rèn)參數(shù)returna+b+cfunc(1,0,1)func(1)func(1,c=1)

這三個(gè)func調(diào)用的結(jié)果都是一樣的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7204

    瀏覽量

    87222
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1916

    瀏覽量

    34400
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84106

原文標(biāo)題:給老婆寫個(gè)Python教程

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    計(jì)算機(jī)語言概述

    計(jì)算機(jī)語言概述 在計(jì)算機(jī)技術(shù)發(fā)展過程中,出現(xiàn)過各種各樣的程序設(shè)計(jì)語言。從程序設(shè)計(jì)語言發(fā)展過程來看,可分為機(jī)器語言、匯
    發(fā)表于 12-06 00:17

    [轉(zhuǎn)]Python難懂?買一次西瓜就懂了!

    個(gè)人工作速度特別特別快,并且保證工作結(jié)果都是正確的。編程語言其實(shí)不重要重要的是
    發(fā)表于 04-20 13:19

    計(jì)算機(jī)編程 精選資料分享

    其實(shí)我感覺計(jì)算機(jī)編程有兩個(gè)坎(我就經(jīng)歷這么多):一個(gè)是入門,另一個(gè)是應(yīng)用。 對于新手,那些語句仿佛是一大堆無意義的字母,看上去亂七八糟的。其實(shí)計(jì)算
    發(fā)表于 07-15 06:09

    c語言為什么要用指針

    c語言為什么要用指針?C語言到底重不重要? 大學(xué)考C語言計(jì)算機(jī)二級考C語言,單片機(jī)、嵌入式還是
    發(fā)表于 07-20 08:04

    什么是計(jì)算機(jī)系統(tǒng)、計(jì)算機(jī)硬件和計(jì)算機(jī)軟件?

    第一章 計(jì)算機(jī)系統(tǒng)概論1. 什么是計(jì)算機(jī)系統(tǒng)、計(jì)算機(jī)硬件和計(jì)算機(jī)軟件?硬件和軟件哪個(gè)更重要?解:P3計(jì)算
    發(fā)表于 07-22 09:06

    什么是計(jì)算機(jī)系統(tǒng)?硬件和軟件哪個(gè)更重要?

    第一章計(jì)算機(jī)系統(tǒng)概論1 .什么是計(jì)算機(jī)系統(tǒng)、計(jì)算機(jī)硬件和計(jì)算機(jī)軟件?硬件和軟件哪個(gè)更重要?解: P3計(jì)算
    發(fā)表于 07-26 07:18

    微型計(jì)算機(jī)的用途

    接口技術(shù)實(shí)驗(yàn)大綱.《匯編語言與接口技術(shù)》實(shí)驗(yàn)指導(dǎo)河南大學(xué)計(jì)算機(jī)與信息工程學(xué)院概 述學(xué)習(xí)微機(jī)接口技術(shù),實(shí)踐是非常重要的環(huán)節(jié)。我們學(xué)習(xí)微型計(jì)算機(jī)不僅
    發(fā)表于 09-10 07:32

    計(jì)算機(jī)重要的特點(diǎn)是什么

    的是______。A:體積龐大B:計(jì)算精度高C:運(yùn)算快速D:通用性強(qiáng)答案: A3、計(jì)算機(jī)重要的特點(diǎn)是______。A:有記憶能力B:高速度與高精度C:可靠性與可用性D:存儲程序與自動(dòng)控制答案: D4、把
    發(fā)表于 09-10 07:07

    基于邏輯語言計(jì)算機(jī)軟件設(shè)計(jì)(JAVA語言

    研究基于邏輯語言計(jì)算機(jī)軟件開放設(shè)計(jì)問題。應(yīng)用對比法分析在計(jì)算機(jī)軟件開放設(shè)計(jì)之中,當(dāng)前應(yīng)用不同計(jì)算機(jī)邏輯語言的優(yōu)勢,并可應(yīng)用最優(yōu)的
    發(fā)表于 11-01 15:19 ?0次下載
    基于邏輯<b class='flag-5'>語言</b><b class='flag-5'>計(jì)算機(jī)</b>軟件設(shè)計(jì)(JAVA<b class='flag-5'>語言</b>)

    計(jì)算機(jī)編程語言有哪些

    第一個(gè)階段是 機(jī)器碼編程 (你肯定知道計(jì)算機(jī)只能識別0和1,以前就是這樣編程的)。
    發(fā)表于 09-26 09:32 ?1.9w次閱讀

    C語言計(jì)算機(jī)資料介紹怎樣編程?和函數(shù)的詳細(xì)概述

    C語言是程序員與計(jì)算機(jī)交流的工具,程序員借助C語言“指揮”計(jì)算機(jī)為用戶提供服務(wù),因此,只有先了解了計(jì)算機(jī)
    發(fā)表于 10-18 17:49 ?11次下載
    C<b class='flag-5'>語言</b>和<b class='flag-5'>計(jì)算機(jī)</b>資料介紹怎樣<b class='flag-5'>編程</b>?和函數(shù)的詳細(xì)概述

    計(jì)算機(jī)硬件的重要部件

    本視頻主要詳細(xì)介紹了計(jì)算機(jī)硬件的重要部件,分別是控制器、運(yùn)算器、存儲器、輸入設(shè)備、輸出設(shè)備以及中央處理器。
    的頭像 發(fā)表于 11-24 10:34 ?1.8w次閱讀

    計(jì)算機(jī)編程語言發(fā)展的三個(gè)重要階段你都知道嗎?

    第一代計(jì)算機(jī)語言稱為機(jī)器語言。機(jī)器語言就是0/1代碼。計(jì)算機(jī)只能識別0和1。在計(jì)算機(jī)內(nèi)部,無論是一部電影還是一首歌曲或是一張圖片,最終保存的
    發(fā)表于 02-04 11:46 ?1.9w次閱讀
    <b class='flag-5'>計(jì)算機(jī)</b><b class='flag-5'>編程</b><b class='flag-5'>語言</b>發(fā)展的三個(gè)<b class='flag-5'>重要</b>階段你都知道嗎?

    導(dǎo)熱硅膠片厚度到底重不重要

    導(dǎo)熱硅膠片厚度到底重不重要?自從進(jìn)入導(dǎo)熱界面材料這一行,就一直沒覺得導(dǎo)熱硅膠片厚度問題,會是存在疑問的一個(gè)點(diǎn),但是今天早上聽到同事在跟客戶通電話,聽到對方說導(dǎo)熱硅膠片厚度不重要,常規(guī)就行,聽到這么一
    發(fā)表于 03-15 22:10 ?1610次閱讀

    以Python編程語言為例介紹編程語言

    編程語言是研發(fā)人員與計(jì)算機(jī)交流的工具,計(jì)算機(jī)中的程序和軟件均通過編程
    的頭像 發(fā)表于 02-09 10:11 ?1155次閱讀