Python從菜鳥到高手(1):初識Python

1 Python簡介

1.1 什么是Python

??Python是一種面向對象的解釋型計算機程序設計語言,由荷蘭人吉多·范羅蘇姆(Guido van Rossum)于1989年發明,第一個公開發行版發行于1991年。目前Python的最新發行版是Python3.6。

??Python是純粹的自由軟件,源代碼和解釋器都遵循 GPL(GNU General Public License)協議。Python語法簡潔清晰,特色之一是強制用空白符(white space)作為語句縮進。

??Python具有豐富和強大的庫。它常被稱為膠水語言,能夠把用其他語言制作的各種模塊(尤其是C/C++)很輕松地集成在一起。常見的一種應用場景是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),然后對其中有特別要求的部分,用更合適的編程語言改寫,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,然后封裝為Python可以調用的擴展類庫。需要注意的是在您使用擴展類庫時可能需要考慮平臺問題,某些庫可能不提供跨平臺的實現。

??盡管Python源代碼文件(.py)可以直接使用python命令執行,但實際上Python并不是直接解釋Python源代碼,而是先將Python源代碼編譯生成Python Byte Code(Python字節碼,字節碼文件的擴展名一般是.pyc),然后再由Python Virtual Machine(Python虛擬機,可以簡稱為PVM)來執行Python Byte Code。也就是說,這里說Python是一種解釋型語言,指的是解釋Python Byte Code,而不是Python源代碼。這種機制的基本思想跟Java和.NET是一致的。

??盡管Python也有自己的虛擬機,但Python的虛擬機與Java或.NET的虛擬機不同的是,Python的虛擬機是一種更高級的虛擬機。這里的高級并不是通常意義上的高級,不是說Python的虛擬機比Java或.NET的功能更強大,而是說與Java 或.NET相比,Python的虛擬機距離真實機器的距離更遠。或者可以這么說,Python的虛擬機是一種抽象層次更高的虛擬機。Python語言程序代碼的編譯和運行過程如下圖所示。
image

1.2 Python的應用領域

??Python是一種跨平臺編程語言,理論上,Python可以運行在任何操作系統平臺上。目前最常用的操作系統平臺是Windows、Mac OS X和Linux。毫無疑問,這3個平臺都會成為Python的主戰場。

??Python的簡單易學、眾多第三方程序庫,以及運行速度快等特性讓Python的應用領域異常廣泛。Python的應用領域主要有以下幾個方面。

  • Linux/Unix運維
  • 命令行程序開發
  • GUI程序開發(PyQt 、Kivy等)
  • Web程序開發(Django等框架)
  • 移動App開發(PyQt 、Kivy等)
  • 服務端程序開發(基于Socket等協議)
  • 網絡爬蟲(為搜索引擎、深度學習等領域提供數據源)
  • 數據分析
  • 深度學習
  • 科學計算

    ??盡管這里沒有列出Python的所有應用領域,但光這些列出的領域,就已經包含了絕大多數開發場景。用過Mac OS X或Linux的讀者會發現,在這兩個操作系統中,已經內置了Python解釋器,也就是說,Python程序可以在Mac OS X和Linux上直接運行。所以很多運維工程師習慣使用Python來完成很多自動化操作。而且Python在操作網絡、文本方面尤為突出。Google搜索引擎的第一個版本就是用Python寫的。現在超級火熱的深度學習也離不開Python,而且Python已經成為了深度學習的第一語言。因此,從各個角度來看,無論是學生、程序員,還是數據分析師,或是科學家,都離不開Python。Python儼然已經成為了編程語言領域的世界語。

    1.3 如何學好Python

    ??如何學好Python語言,是所有初學者需要共同面對的問題,其實每種編程語言的學習方法都大同小異。下面是給初學者的幾點建議。

  • 大體了解一下Python是一種怎樣的編程語言,以及主要的應用領域。說白了,就是要了解Python能做什么,擅長做什么。對Python語言有一個宏觀的認識。
  • 搭建開發環境,不管三七二十一,先弄出一個Hello World再說(可以復制現有的代碼)。這樣會給自己帶來繼續學習下去的信心。我們可以設想,學了一個星期,如何連一行代碼都寫不出來,繼續學下去的興趣還會剩多少呢?
  • 不要深究設計模式,這些東西是給那些有多年經驗的程序員準備的,而且設計模式也不是用來學的,更不是用來記的,是依靠自己的多年經驗和實踐得出來的。這就像學英語,只管說就好了,管他什么語法,說多了,英語自然就純正了。所以在一開始寫程序時,只管寫就好了,讓設計模式見鬼去吧!
  • 模仿書中的例子代碼,一定要自己親手寫代碼,當然,一開始為了看運行結果,可以將書中的例子直接復制過來,但一定要完全自己寫一遍,代碼可以與書中的例子不同,只要實現同樣的功能即可。
  • 在編寫代碼的過程中,不需要對Python語言的語法死記硬背,如果某些語法實在記不住,就把這些語法寫在卡片上,或干脆放到有道云筆記上,以便隨時查看,寫多了自然就記住了。
  • 初學者不需要大量閱讀Python的書籍,也不需要在網上查閱過多的技術資料,因為在自己的功力還沒有達到一定火候時,攝入太多的信息會分散自己的精力,可能會適得其反。用一句武林中的話說就是:走火入魔。因此,對于初學者來說, 應充分利用本書給出的代碼多做練習,當學會了本書給出的各種知識和技巧后,就可以隨心所欲地攝取任何自己想獲得的知識了。
  • 讀者應充分利用隨書贈送的Python視頻課程,這套視頻課程是與本書同步的。書與視頻的差別就是書只能給出一個結果,而視頻不僅可以給出結果,還可以詳細演示操作過程,這對于初學者尤其重要。
  • 在模仿書中例子編寫代碼的過程中,可能對有些代碼沒有理解透徹,這并不要緊,讀者應仔細閱讀本書的相關內容,以及利用隨書贈送的Python視頻課程反復觀看,以便領悟其中的奧秘。如果實在領悟不了,也可以到極客起源IT問答社區(https://geekori.com )去提問,會有很多人回答你提出的問題。
  • 本書配有大量練習題,讀者可以通過這些練習題更好地掌握書和視頻中的知識點,而且這些練習題不是生硬地給出,而是通過“過關斬將”、“測能力”等形式給出(這些功能需要依托歐瑞科技旗下“極客題庫”小程序實現)。讀者可以通過這些功能以闖關的方式完成自己的學習任務,并對自己的知識點掌握情況了如指掌。
  • 經常總結是一個好習慣,這個習慣對于程序員來說尤其重要。讀者可以經常把自己的學習心得,以及經常需要查閱的內容發布到博客(如https://geekori.com )上,這樣不僅可以提高自己的技術能力,還可以提高自己的語言表達能力。
  • 經常回答同行提出的技術問題也是一種提高技術能力的方式,而且更有效。如果你沒有能力回答任何技術問題,或只能回答不到10%的技術問題,那么你還是個小白。如果能回答超過30%的技術問題,那么說明你已經至少達到了程序員的中級水平,如果這個比例是50%,那么恭喜,你已經成為該領域的高手了。如果提高到80%,會毫無懸念地成為該領域的專家。另外,歐瑞科技旗下的極客起源IT問答社區(https://geekori.com )包含了李寧老師大量學員和讀者提出的各種問題,各位讀者也可以試試自己到底屬于哪個層次。另外,在https://geekori.com 中提問、回答問題以及撰寫博客,都會獲得可觀的積分,可以換取更多的學習資源。
  • 大量閱讀源代碼。如果前面的方法讀者做的都很好,那么相信讀者的技術水平已經有了一個質的飛躍,剩下來的工作就是更進一步地提高自己的技術能力。閱讀各種開源項目的源代碼是一個非常好的方式。另外,要注意,閱讀源代碼不是目的,目的是要理解這些源代碼背后的原理,當然,最終的目的是自己可以實現一個類似的功能。讀者可以到https://github.com 獲取各種類型的Python源代碼。

2 搭建Python開發環境

2.1 安裝官方的Python運行環境

??不管用什么工具開發Python程序,都必須安裝Python的運行環境。由于Python是跨平臺的,所以在安裝之前,先要確定在哪一個操作系統平臺上安裝,目前最常用的是Windows、Mac OS X和Linux三大平臺。由于目前使用Windows的人數最多,所以本書主要以Windows為主介紹Python運行環境的搭建與程序的開發。

??讀者可以直接到Python的官網下載相應操作系統平臺的Python安裝包。

https://www.python.org/downloads

??進入下載頁面,瀏覽器會根據不同的操作系統顯示不同的Python安裝包下載鏈接。如果讀者使用的是Windows平臺,會顯示如下圖所示的Python下載頁面。

image

??如果讀者使用的是Mac OS X平臺,會顯示如下圖所示的Python下載頁面。

image

??不管是哪個操作系統平臺的下載頁面,都會出現“Download Python 3.6.2”和“Download Python 2.7.13”兩個按鈕(隨著時間的推移,可能版本號略有不同)。由于本書使用Python 3講解,所以點擊“Download Python3.6.2”按鈕即可。如果是Windows平臺,下載的是exe安裝程序,如果是Mac OS X平臺,下載的是pkg文件,這是Mac OS X上的安裝程序,直接安裝即可。

??現在主要來說說在Windows平臺如何安裝Python運行環境。首先運行下載的exe文件,會顯示如下圖所示的Python安裝界面。建議讀者選中界面下方的“Add Python 3.6 to PATH”復選框,這樣安裝程序就會自動將Python的路徑加到PATH環境變量中。

image

??在該界面中出現兩個安裝選項,“Install Now”和“Customize installation”,一般點擊“Install Now”即可,點擊該選項后,會開始安裝Python,下圖是顯示安裝進度的界面,讀者只需要耐心等待Python安裝完即可。

image

??安裝完后,會出現下圖所示的安裝成功界面。

image

2.2 配置PATH環境變量

??在安裝完Python運行環境后,我們可以測試一下Python運行環境,不過如果在安裝Python的過程中忘記了選中“Add Python 3.6 to PATH”復選框,那么默認情況下,Python安裝程序是不會將Python安裝目錄添加到PATH環境變量的。這樣一來,我們就無法在Windows命令行工具中的任何目錄執行python命令了,必須進入Python的安裝目錄才可以使用python命令。

image

完整目錄

京東
當當

??為了更方便地執行python命令,建議將Python安裝目錄添加到PATH環境變量中。在Windows平臺配置PATH環境變量的步驟如下:

??1. 回到Windows的桌面,鼠標右鍵“計算機”,在彈出菜單中單擊 “屬性”菜單項,會顯示如下圖所示的“系統”窗口。

image

??點擊“系統”窗口左側的“高級系統設置”,會彈出如下圖所示的“系統屬性”窗口。

image

??點擊“系統屬性”窗口下方的“環境變量(N)...”按鈕,會彈出如下圖所示的“環境變量”窗口。

image

??在“環境變量”窗口有兩個列表,上面的列表是為Windows當前登錄用戶設置環境變量,在這里設置的環境變量只對當前登錄用戶有效。下面的列表是對所有用戶設置的環境變量,也就是說這些變量對所有的用戶都有效。讀者在哪里設置PATH環境變量都可以,本書在上面的列表中設置了PATH環境變量。如果在列表中沒有PATH環境變量,點擊“新建(N)...”按鈕添加一個新的PATH環境變量。如果已經有了PATH環境變量,雙擊PATH,就會彈出“編輯用戶變量”對話框。

??讀者需要在“變量值(V)”文本框中添加Python的安裝目錄,多個路徑之間要用分號(;)分隔。那么我們怎么找到Python的安裝路徑呢?實際上,在Python安裝界面的“Install Now”按鈕下方就是Python的默認安裝路徑,這個路徑可以修改,不過一般保持默認設置即可。如果仍然使用Python的默認安裝路徑,那么需要在PATH環境變量的最后添加如下的路徑。

C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32

??我們可以進入該路徑,就會看到如下圖所示的目錄內容。很顯然,我們要使用的就是目錄中的python.exe文件。

image

??現在打開Windows命令行工具,執行python --version命令,如果輸出Python 3.6.2,說明Python安裝成功了。

2.3 安裝Anaconda Python開發環境

??開發一個完整的Python應用,光使用Python本身提供的模塊是遠遠不夠的,因此,需要使用大量第三方的模塊。在發布Python應用時安裝這些第三方模塊是一件令人頭痛的事,不過有了Anaconda,讓這件事輕松不少。Anaconda是一個集成的Python運行環境。除了包含Python本身的運行環境外,還集成了很多第三方模塊,如本書后面要將的numpy、pandas、flask等模塊都集成在了Anaconda中,也就是說,只要安裝了Anaconda,這些模塊都不需要安裝了。
??Anaconda的安裝相當簡單,首先進入Anaconda的下載頁面,地址如下:
https://www.anaconda.com/download

??Anaconda的下載頁面也會根據用戶當前使用的操作系統自動切換到相應的Anaconda安裝包。Anaconda是跨平臺的,支持Windows、Mac OS X和Linux。不管是哪個操作系統平臺的安裝包,下載直接安裝即可。

??Anaconda的安裝包分為Python3.x和Python2.x兩個版本,由于目前Python3.x最新版是Python3.6,而Python2.x最新版是Python2.7,所以習慣上稱這兩個版本為Python3.6版和Python2.7版,由于本書使用的是Python3.6,所以建議讀者下載Python3.6版的Anaconda。下載界面如下圖所示。下載完后,直接安裝即可,如果安裝完后,如果未設置Python的PATH環境變量,可以按上一節的方式進行設置。

image

2.4 安裝PyCharm

??PyCharm是一個專門用于開發Python程序的IDE,由JetBrains公司開發,這個公司開發出了很多非常流行的IDE,例如,WebStorm、Intellj IDEA等,其中Android Studio(開發Android App的IDE)就是基于Intellj IDEA社區版開發的。

??PyCharm有兩個版本:社區版和專業版。社區版是免費的,但功能有限,不過使用PyCharm編寫本書的案例足夠了。

??讀者可以到下面的PyCharm官網下載PyCharm的安裝文件。

https://www.jetbrains.com/pycharm

??盡管PyCharm下載頁面后,將頁面垂直滾動條滑動到中下部,會看到如下圖所示的PyCharm專業版和社區版的下載按鈕。

image

??PyCharm下載頁面會根據用戶當前使用的操作系統自動切換到相應的安裝文件,Windows是exe文件,Mac OS X是dmg文件,Linux是tar.gz文件。讀者只需要點擊右側的“DOWNLOAD”按鈕即可下載相應操作系統平臺的安裝程序。

??下載完PyCharm后即可運行PyCharm,第1次運行PyCharm,會顯示如下圖所示的歡迎界面。點擊“Create New Project”按鈕即可建立Python工程。

image

2.5 配置PyCharm

??現在點擊PyCharm歡迎界面的“Create New Project”按鈕會顯示“New Project”窗口,這個窗口是用來創建Python工程的。在“Location“文本框中輸入Python工程的名字,如果讀者要選擇不同的Python運行環境,可以點擊“Project Interpreter”,會在“New Project”窗口下方顯示如下圖所示的Python運行環境選擇界面。

image

??如果讀者已經配置好了PyCharm中的Python運行環境,從“Interpreter”列表中選擇一個Python運行環境即可。如果讀者還沒有對PyCharm進行配置,需要點擊“Interpreter”列表框右側的按鈕,然后在彈出菜單中點擊“Add Local…”菜單項,會彈出如下圖所示的“Add Local Python Interpreter”窗口。

image

??選擇左側列表中的“Virtualenv Environment”,點擊右側“Interpreter”列表框右側的省略號按鈕,會彈出一個“Select Python Interpreter”窗口,如下圖所示。在該窗口中選擇Anaconda或其他Python解釋器,然后點擊“OK”按鈕關閉該窗口。

image

??接下來回到“New Project”窗口,在“Interpreter”列表中選擇剛才指定的Python運行環境,最后點擊“Create”按鈕創建Python工程。一個空的Python工程如下圖所示。

image

??Python源代碼文件可以放在Python工程的任何位置,通常會將Python源代碼文件放在src目錄中,然后選擇src目錄,在右鍵菜單中點擊“New”>“Python File”菜單項創建一個Python文件(這里是Test.py),如下圖所示。

image

??第一次運行Python程序可以選擇Test.py文件,然后在右鍵菜單中選擇“Run ‘Test’”菜單項會運行Test.py腳本文件,以后再運行,可以直接點擊MyCharm主界面右上角的綠色箭頭按鈕。現在為Test.py文件輸入一行簡單的代碼,如print('hello world '),然后運行Test.py腳本文件,會得到如下圖所示的輸出結果。如果讀者按前面的步驟進行,并得到這個輸出結果,就說明PyCharm已經安裝成功了。

image

### 2.6 Python中的REPL環境

Python有如下3種運行方式。

  • 直接通過python命令運行
  • 在Python IDE中運行
  • 在Python的REPL環境中運行

    ??本節將介紹如何在REPL環境中運行Python程序,這里的REPL是Read-Eval-Print Loop的縮寫,是一個簡單的交互式編程環境,也可以將Python REPL環境稱為Python控制臺。為了統一,本書后面的章節都稱Python REPL為Python控制臺。

    ??讀者只需要在Windows命令行工具中執行python命令,即可進入REPL環境。在命令提示符(>>>)后輸入print("hello world"),按回車鍵,就會在REPL環境中輸出“hello world”,如下圖所示。

    image

    ??如果在Windows下,按Ctrl+Z退出REPL環境,如果在Mac OS X,按Ctrl+D退出REPL環境。

1.3 第一個Python程序

??本節會編寫我們的第一個Python程序。這個程序定義了兩個整數類型的變量n和m,并將兩個變量相加,最后調用print函數輸出這兩個變量的和。

(1)讀者可以使用任何一個文本編輯器、Eclipse或PyCharm創建demo.py文件,并輸入下面的Python代碼。

n = 20
m = 30
print("n + m =",n + m)

??建議讀者使用Eclipse或PyCharm來創建demo.dy文件,因為這樣做可以直接在IDE中執行Python程序,并不需要像命令行方式運行Python程序那樣在文本編輯器和Window命令行工具之間來回切換。

(2)運行Python程序

??如果讀者想在Windows命令行工具中運行demo1.py,可以在命令行工具中進入demo1.py所在的目錄,然后執行下面的命令運行demo1.py。

python demo1.py

在命令行工具中運行demo1.py的輸出結果如下圖所示。

image

1.4 調試Python程序

??在開發復雜的Python程序時,如果出現bug(也就是程序中出現的錯誤),就需要對程序進行調試,以便找出bug對應的代碼行。調試程序的方法很多,例如,可以使用print函數在程序的不同位置輸出相應的信息,以便縮小bug出現的范圍。不過這種方法太原始了,現在普遍使用的方法是通過調試器一步步跟蹤代碼行,這種方式可以非常方便地找到bug所在的位置。

??由于PyDev是Eclipse插件,所以調試Python程序可以使用與調試Java類似的方式(PyCharm的調試方法類似)。Eclipse提供了調試接口,后臺調用了各種編程語言的調試器。在調試Python代碼時會調用Python的調試器。

??用Python調試器調試Python代碼的步驟如下:

(1)設置斷點

??設置斷點是調試程序的過程中必不可少的一步。Python調試器每次遇到斷點時會將當前線程掛起,也就是暫停當前程序的運行。

??可以在Python編輯器中顯示代碼行號的位置雙擊添加或刪除當前行的斷點,或者在當前行號的位置鼠標右鍵單擊,會顯示如下圖所示的彈出菜單。在菜單中單擊“Add Breakpoint”菜單項,會在當前代碼行添加斷點。也可以單擊“Disable Breakpoint”菜單項,禁用當前行的斷點。如果當前行已經有斷點了,菜單中會出現“Remove Breakpoint”菜單項,單擊該菜單項,會刪除當前行的斷點。

image

添加斷點后的Python編輯器如下圖所示。其中第2行設置了一個斷點。

image

(2)以調試方式運行Python程序

??在Eclipse中運行分為兩種方式:Release和Debug,也就是發行和調試。如果只是觀察程序的執行效果,可以選擇Release方式,如果要調試程序,就需要使用Debug方式。

??Debug按鈕在Eclipse工具欄左側,如圖1-54所示(有一個小爬蟲的按鈕,在Release按鈕的左側)。

image

??現在點擊Debug按鈕,就會運行Python程序,如果Python程序沒有設置任何斷點,Debug和Release方式運行的效果是一樣的,都會輸出運行結果。不過用Debug方式運行程序,Eclipse會進入Debug透視圖(Perspective),這里的透視圖就是Eclipse中將多個相關視圖以一定位置和尺寸放到一起,便于開展工作。Debug透視圖則是將與調試相關的視圖放到一起,便于調試。

??如果Python程序中有斷點,當程序執行到斷點處,就會暫停程序,并且在斷點行用綠色背景展示,如下圖所示。

image

(3)觀察調試信息

??調試的主要目的是將程序中的數據展現出來,也就是說,調試調的就是程序中的數據。因此,通過Python調試器,可以用多種方式觀察Python程序中數據的變化。例如,由于n = 20在m = 30前面,所以在m = 30處中斷后,n = 20肯定是已經執行了,所以可以將鼠標放到n = 20語句上,這時會在彈出窗口中顯示變量n的數據類型和當前的值,如下圖所示。

image

??在右上角的Variables視圖中也可以觀察變量值的變化情況,如下圖所示。

image

(4)跟蹤調試程序

??調試的另一個重要功能是可以一步步跟蹤程序,也就是step into(單獨跳入)和step over(單步跳過)。其中step into可以跟蹤進函數內部,step over并不會跟蹤進函數內部。這兩個功能可以通過點擊左上側的兩個按鈕實現,如下圖所示。

image

??現在點擊“step over”按鈕,會發現Python代碼區域m = 30代碼行執行了,并且綠色背景跑到下一行了,如下圖所示。

image

1.5 實戰與練習

  1. 嘗試修改1.3節的例子,使程序輸出n * m的值。

  2. 嘗試編寫Python程序,分別用“*、+、-、/”四個在四則運算符將兩行字符串包圍起來,并Eclipse的Console視圖中輸出如下圖所示的結果。

image

Python技能樹,Get新技能

enter image description here

掃描二維碼關注“極客起源”公眾號,技術文章、視頻課程應有盡有

enter image description here

歡迎關注“Python開發者基地”公眾號

enter image description here

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

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

相關文章

如何成為數據科學家_成為數據科學家需要了解什么

如何成為數據科學家Data science is one of the new, emerging fields that has the power to extract useful trends and insights from both structured and unstructured data. It is an interdisciplinary field that uses scientific research, algorithms, and graphs to…

2053. 數組中第 K 個獨一無二的字符串

2053. 數組中第 K 個獨一無二的字符串 獨一無二的字符串 指的是在一個數組中只出現過 一次 的字符串。 給你一個字符串數組 arr 和一個整數 k ,請你返回 arr 中第 k 個 獨一無二的字符串 。如果 少于 k 個獨一無二的字符串,那么返回 空字符串 “” 。 …

阿里云對數據可靠性保障的一些思考

背景互聯網時代的數據重要性不言而喻,任何數據的丟失都會給企事業單位、政府機關等造成無法計算和無法彌補的損失,尤其隨著云計算和大數據時代的到來,數據中心的規模日益增大,環境更加復雜,云上客戶群體越來越龐大&…

linux實驗二

南京信息工程大學實驗報告 實驗名稱 linux 常用命令練習 實驗日期 2018-4-4 得分指導教師 系 計軟院 專業 軟嵌 年級 2015 級 班次 (1) 姓名王江遠 學號20151398006 一、實驗目的 1. 掌握 linux 系統中 shell 的基礎知識 2. 掌握 linux 系統中文件系統的…

個人項目api接口_5個免費有趣的API,可用于學習個人項目等

個人項目api接口Public APIs are awesome!公共API很棒! There are over 50 pieces covering APIs on just the Towards Data Science publication, so I won’t go into too lengthy of an introduction. APIs basically let you interact with some tool or servi…

5918. 統計字符串中的元音子字符串

5918. 統計字符串中的元音子字符串 子字符串 是字符串中的一個連續(非空)的字符序列。 元音子字符串 是 僅 由元音(‘a’、‘e’、‘i’、‘o’ 和 ‘u’)組成的一個子字符串,且必須包含 全部五種 元音。 給你一個字…

咕泡-模板方法 template method 設計模式筆記

2019獨角獸企業重金招聘Python工程師標準>>> 模板方法模式(Template Method) 定義一個操作中的算法的骨架,而將一些步驟延遲到子類中Template Method 使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟Template Me…

如何評價強gis與弱gis_什么是gis的簡化解釋

如何評價強gis與弱gisTL;DR — A Geographic Information System is an information system that specializes in the storage, retrieval and display of location data.TL; DR — 地理信息系統 是專門從事位置數據的存儲,檢索和顯示的信息系統。 The standard de…

clone-graph

1. clone-graph Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors. 思路:dfs,其實就是遞歸。 1 /**2 * Definition for undirected graph.3 * struct UndirectedGraphNode {4 * int label;5 * …

5919. 所有子字符串中的元音

5919. 所有子字符串中的元音 給你一個字符串 word ,返回 word 的所有子字符串中 元音的總數 ,元音是指 ‘a’、‘e’、‘i’、‘o’ 和 ‘u’ 。 子字符串 是字符串中一個連續(非空)的字符序列。 注意:由于對 word …

Scrum沖刺-Ⅳ

第四次沖刺任務 團隊分工 成員:劉鵬芝,羅樟,王小莉,沈興艷,徐棒,彭康明,胡廣鍵 產品用戶:王小莉 需求規約:彭康明,羅樟 UML:劉鵬芝,沈…

Github入門詳情教程

前言 之前我寫了一篇文章《一篇文章了解Github和Git教程》還延伸了幾篇閱讀,對大部分小白很有用,那么我繼續普及下Github頁面及其概念。 定義 GitHub 是一個網站,一個面向開源及私有軟件項目的托管平臺,因為只支持Git作為唯一的版…

機器人影視對接_機器學習對接會

機器人影視對接A simple question like ‘How do you find a compatible partner?’ is what pushed me to try to do this project in order to find a compatible partner for any person in a population, and the motive behind this blog post is to explain my approach…

Android系統啟動系列----init進程

Android系統啟動系列 Android系統啟動系列----init進程Android系統啟動系列----Zygote進程引言 在開發app的過程中,是不是會有疑問: java程序的運行不是從main方法開始么,怎么app入口是Application的onCreate方法?那java的運行環境…

598. 范圍求和 II

598. 范圍求和 II 給定一個初始元素全部為 0&#xff0c;大小為 m*n 的矩陣 M 以及在 M 上的一系列更新操作。 操作用二維數組表示&#xff0c;其中的每個操作用一個含有兩個正整數 a 和 b 的數組表示&#xff0c;含義是將所有符合 0 < i < a 以及 0 < j < b 的元…

mysql 數據庫優化之執行計劃(explain)簡析

數據庫優化是一個比較寬泛的概念&#xff0c;涵蓋范圍較廣。大的層面涉及分布式主從、分庫、分表等&#xff1b;小的層面包括連接池使用、復雜查詢與簡單查詢的選擇及是否在應用中做數據整合等&#xff1b;具體到sql語句執行效率則需調整相應查詢字段&#xff0c;條件字段&…

自我接納_接納預測因子

自我接納現實世界中的數據科學 (Data Science in the Real World) Students are often worried and unaware about their chances of admission to graduate school. This blog aims to help students in shortlisting universities with their profiles using ML model. The p…

距離產生美

那天下午我跟簡坐在學校操作草地上聊天 夕陽的余暉照射著我們 陽光在青草的縫隙間拉長了倒影 溫暖的晚風輕拂著簡劉海前的幾根發絲 淡淡的發香迎面撲來&#xff0c;我望著遠山上的煙囪。 對簡說&#xff1a; 我覺得我們坐得太近了。感覺相距 50cm 比較好。 簡一臉驚訝說&#x…

299. 猜數字游戲

299. 猜數字游戲 你在和朋友一起玩 猜數字&#xff08;Bulls and Cows&#xff09;游戲&#xff0c;該游戲規則如下&#xff1a; 寫出一個秘密數字&#xff0c;并請朋友猜這個數字是多少。朋友每猜測一次&#xff0c;你就會給他一個包含下述信息的提示&#xff1a; 猜測數字…

mysql數據庫中case when 的用法

場景1&#xff1a;比如說我們在數據庫存了性別的字段&#xff0c;一般都是存0 和 1 代表男和女 然后我們會得到0和1之后在java中判斷 &#xff0c;很麻煩有么有&#xff1f;其實我們完全可以在sql中判斷好之后拿來現成的。就是在sql中做判斷就ok SELECT*,CASEWHEN ly app th…