15課python快遞編程代碼人Python語法簡單才會越來越被編程界歡迎

2020-12-11 天天讀史

明確項目目的

分析流程,拆解項目

逐步執行,代碼實現

3.1 先能用

3.2 再改進

3.3 精細化

節課的項目和上個項目難度差不多,從我們學習完函數之後,我們就可以做出一些有用的程序了。這節課,我們做一個閃電快遞配送的項目, 用來解決快遞配送的人員與送貨量的配比問題。

這次開發實用程序的流程和上次是一模一樣。

接下來,我們一步一步來實現這個項目。明確項目目的先來看一下項目需求:

看完了項目需求,那個快遞老闆朋友又來了。

既然我那BOSS朋友要得急,那我們使用「敏捷開發」。 我們來分析一下這個項目。分析流程,拆解項目我們的任務就是做一個「快遞配送調配程序」,雖然這朋友要的比較著急,但是我們也不著急於編程開發,應該先梳理清楚需求,做出的程序功能達到什麼樣的效果。計算器,首先配送站BOSS要輸入信息,然後自動計算出結果。為了搞清楚計算過程,我們得到計算公式。梳理需求,得到下圖結果:

根據上面的分析,試著補全代碼,將計算公式寫在下面,運行程序。

因為這BOSS朋友著急,先做出程序,以後再優化吧。所以,我們把程序版本大致規劃成3個階段。

明確每個階段任務後,接下來我們逐步用代碼實現功能。

江湖秘籍:%f是字符串格式化,格式字符串為浮點數,%.1f的意思是格式化字符串為浮點數,並且保留一位小數。

發現:向上取整是math.ceil(), 括號內放數字。

也就是使用math.ceil()方法,就能把數字向上取整。並且在開始位置,有一句import math, 怎麼有些似曾相識. 在上個項目實戰中,我們使用隨機數,也用過import math代碼。

現在解決了項目bug,感覺應該可以了。

等等,BOSS朋友需要使用兩個函數才能計算配送次數,計算配送員數,有沒有辦法能夠讓她使用一個函數就能完成功能。

如何解決這個問題?還是用之前方法流程來處理:

要想實現這樣效果,我們怎麼傳遞參數,才能讓函數區分是【計算配送次數】還是【計算配送員數】。

OK,現在這個程序已經可以運行了。

但是,我們在調用函數的時候,你還要輸入參數名與參數值,太麻煩,我們能不能有個簡單方法。

是不是簡單的多了,但是還沒完。

BOSS朋友不想每次都去調用函數,才能計算結果,那就給她整個交互過程。

增加可交互性,讓BOSS朋友只輸入內容即可, 使用input()函數。

看,是不是可以輸入了。但是,有bug唉。不信,貼圖來看。

當我們選擇計算配送次數, 項目大小為2.2倍,快遞員數為1時。 計算工時:需要配送次數 = 2.2*100/20/1 ,得到的結果應該是11次,可是列印出來卻是12次。是為什麼呢? 還是老問題, python江湖中的除法,會將數字都轉換二進位再進行計算,得到的結果是一個二進位,造成數字增加。不信,你運行一下下面程序。

明可以整除的,造成還存在小數部分,然後向上取整後得到12。那麼有沒有辦法可以改變有, 我們使用math中的round函數。

是不是沒問題了。round()函數是python中提供解決小數的保留問題。此函數格式round(x ,n) x表示小數,n表示需要保留的小數位。我們保留小數2位,將round加入到我們的案例方法中。運行以下代碼,觀察終端結果。

BOSS朋友是不是可以輸入了。但是,按照函數封裝代碼的思想,我們現在代碼寫的很雜。那我們把它優化一下?怎麼優化呢?江湖箴言:創建一個主函數,用來調用其他子函數。這不就是函數的嵌套嗎?

在這裡函數BOSS_input()負責收集BOSS朋友輸入的數據;函數calculate_job()負責計算工作量.函數res()負責調用兩個函數,傳入參數.只要調用res()函數,就能讓整個程序跑起來。

是不是很完美了?這就是這節課完成的實用程序,解決快遞配送調配問題。

我要把我的程序送給BOSS朋友去了。

相關焦點

  • Python遊戲編程
    為了達到這一目的,本課程應用python語言的語法知識帶領學生從無到有的開發遊戲,通過每個遊戲項目逐步應用學到的語法知識,在實際編程中加深體會。在課程設計中儘量站在初學者的角度,降低開發遊戲的難度,從而方便學生理解及掌握遊戲編程的基本原理和實現方法,逐步提高學生對編程的興趣和能力。
  • 第十三課人生苦短我用Python語法簡單才會越來越被編程界歡迎
    1 函數的作用人生苦短,我用Python」,正因為Python語法簡單,才會越來越被編程界歡迎。換言之,我們編程,更應該避免重複性代碼。前面學習的循環是減少代碼重複的一種手段,那麼接下來要學習的函數也是減少重複性代碼的另一種手段。它的定義是:什麼意思呢?我們之前寫的代碼只能執行一次,但是函數中的代碼可以使用多次。
  • 風變編程的python課程真的簡單易學,適合小白
    我也是先後購買了多家培訓機構的編程Python課程,踩了多個坑之後,才終於遇到了可以實現兩者兼具的python課程——風變科技Python小課,忍不住分享我的血淚史,也希望後有來者的朋友們可以少走彎路。最開始接觸風變編程,在百度和知乎檢索了一下他的品牌信息和用戶評價,總體口碑和品牌實力都感覺挺棒的,但其實心裡還有點半信半疑。
  • 「技術文章」《Python 資料庫 GUI CGI編程》
    2.1 Linux下安裝MySQLdb模塊 使用包安裝可以 wget http://sourceforge.net/projects/mysql-python/files/latest/download$ tar xfz MySQL-python-1.2.3.tar.gz$ cd MySQL-python-1.2.3$whereis mysql_config
  • 小白學編程?從一個簡單的程序開始學習Python編程
    筆者學習編程的時間也挺長的,因為業餘,因為時間不多,各種原因,自學編程的路特別難走。然後筆者發現,自己能為小白貢獻一些力量,然後決定創作適合小白的python編程類內容。今天,筆者想帶編程小白們從一個簡單的程序開始學習Python編程。
  • Python程式語言被納入浙江高考,小學生都開始學了
    今年9月份開始的新學期,浙江省三到九年級信息技術課將同步替換新教材。其中,新初二將新增Python編程課程內容。新高一信息技術程式語言由VB替換為Python,大數據、人工智慧、程序設計與算法按照教材規劃五六年級開始接觸。
  • Python為什麼這麼火?小孩子適合學習python編程嗎?
    「人生苦短,我選Python」——魯迅程式語言由於學習門檻比較高,一直以來似乎只有程式設計師之間會互相討論,普通人也很難對冰冷的語法和算法什麼的感興趣。但自從Python出現後,程式語言和我們日常生活中的鴻溝被悄悄打破了,越來越多的人開始使用它,甚至開始愛上它。
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    6套課程) 資料庫操作(1套課程) python高級編程(6套課程) 注:零基礎全能篇中,針對windows和liunx系統均有兩套課程可供選擇學習,單純學python,哪個系統都一樣,初學者只需選擇自己熟悉的系統學習相應課程即可。
  • python+C、C++混合編程的應用
    語言的發展不是越來越common,而是越來越專注領域。有的語言專注於簡單高效,比如python,內建的list,dict結構比c/c++易用太多,但同樣為了安全、易用,語言也犧牲了部分性能。在有些領域,比如通信,性能很關鍵,但並不意味這個領域的coder只能苦苦掙扎於c/c++的陷阱中,比如可以使用多種語言混合編程。
  • 少兒學python編程:小學幾年級開始學編程?學哪個程式語言合適?
    大家好,歡迎學習python,本文從基礎開始,會連續寫作,喜歡的朋友可以收藏一下,在某一天用到的時候可以回來看一看。思想決定行動。看某一件事情是否需要去做,首先,要從思想上高度重視,並且從內心願意為之付出和努力。今天就來談談為什麼要學習PYthon,建議從幾歲開始學習。
  • 瀋陽皇姑Python少兒編程學習班怎樣?
    能力的提升編程知識對標青少年編程能力等級第2部分:Python編程。學習樂博樂博Python基礎語法知識,包括順序結構、循環結構、分支結構的語法規則,教授孩子更多的源碼編程技巧,讓孩子逐步適應源碼編程的方式。
  • python語法基礎
    歡迎關注」生信修煉手冊」!學一門語言,基礎語法一定要紮實。
  • Python在程式語言中處於怎樣的地位?
    Python現在的使用已經不能算是一個小眾的程式語言了,如今的用途廣泛,包括很多老師的科研項目裡面很多都用python,多數網站用的也是python比如:谷歌、知乎、facebook等。不知道你們是否有聽過這麼一個段子:幾個程式語言走在路上,遇見了一群敵人C:拿出一根棍子,一個一個把敵人砸死。C++:用機關槍。java:我打電話叫十萬個基佬!perl:我會功夫!ruby大喊著拿著武士刀衝上去了。python:用氫彈。lisp:我先把敵人分組一下吧!haskell:我們可以用殲星艦啊!
  • 無所不能的python編程是怎麼快速畫圖的呢?5分鐘學會!
    θɑ:n]),是一種面向對象、直譯式電腦程式語言,也是一種功能強大的通用型語言,已經具有近二十年的發展歷史,成熟且穩定。它包含了一組完善而且容易理解的標準庫,能夠輕鬆完成很多常見的任務。它的語法非常簡捷和清晰,與其它大多數程序設計語言不一樣,它使用縮進來定義語句。
  • Python零基礎入門-03-Python基礎語法
    Python零基礎入門-03-Python基礎語法本節課的知識點:1,python系列教程的學習方法。2,熟悉Python的基礎語法內容。1,python系列課程學習方法由於python屬於腳本語言,如果單純的解釋語法沒有什麼實在的意義,所以我python系列的課程都是以視頻講解為主,至於這裡的文章,是給你複習用的。2. 基礎語法python的基礎語法都將以小例子作為驅動來講解。如果你有其他程式語言的基礎,那麼直接看文章就會很快上手。
  • scratch/python/c++,小孩學編程學哪個好?
    少兒編程,現在越來越火了。國務院號召編程從娃娃抓起,NCT全國青少年編程能力等級測試也搭乘2019年的末班車成功進行了第一屆認定。除此之外,作為五大奧賽之一的信息奧賽,信息競賽的獲獎者一直很受名校青睞。
  • Python編程基礎,數字及數學運算
    慢步越來越喜歡看「官網」了,一本python的二級教材大略看完,架構有了,發現還有很多細節沒有,網上各種網站找太複雜,這不,還是官網好。慢步去看了python的官網,純英文這個閱讀會比較難受,但收穫還是有很多的。發現了很多二級教材中沒有的細項內容。
  • python基礎學習教程:Python基礎語法
    在本章中我們將來學習 Python 的基礎語法,讓你快速學會 Python 編程。第一個 Python 程序交互式編程交互式編程不需要創建腳本文件,是通過 Python 解釋器的交互模式進來編寫代碼。linux上你只需要在命令行中輸入 Python 命令即可啟動交互式編程,提示窗口如下:$ pythonPython 2.7.6 (default, Sep 9 2014, 15:04:36) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwinType
  • 年薪30萬+的python編程難不難?好學嗎?
    python翻譯成中文就是蟒;蚺蛇的意思。在計算機專業裡面Python是一門課程,專門學習計算機編程的課程,是一種跨平臺的電腦程式設計語言。一種高級,熱門的程式語言。那python好學嗎?先來了解下python這門計算機語言的特點:1、語法簡略和傳統的 C/C++、Java、C# 等言語比較,Python 對代碼格局的要求沒有那麼嚴厲,這種寬鬆使得用戶在編寫代碼時比較舒暢,不用在細枝末節上花費太多精力。
  • Linux 平臺下 Python 腳本編程入門(一)
    容易上手,廣泛使用,擁有海量「開箱即用」的模塊(它是一組包含 Python 語句的外部文件),Python 理所當然地成為了美國計算機專業大學生在一年級時所上的程序設計課所用語言的不二之選。在這個由兩篇文章構成的系列中,我們將回顧 Python 的基礎部分,希望初學編程的你能夠將這篇實用的文章作為一個編程入門的跳板,和日後使用 Python 時的一篇快速指引。