(10.1)Python學習筆記二

1、在項目工程中要模塊化測試一個開發的功能,在測試通過后交付給項目組其他人員繼續開發。要保證代碼開發的性能和效率以及可擴展性。

2、項目工程中的文件夾分類要功能模塊明確清晰,在python中引入某一個 文件夾下的文件可以使用如下方式:

  1. try:
  2. from ..socket.image_pb2 import Image
  3. from ..util.constant import constantProxy
  4. except:
  5. from python.src.socket.image_pb2 import Image
  6. from python.src.util.constant import constantProxy

3、如果在導入某個模塊的時候不存在,則在cmd下使用pip3 install ?modeual名來進行安裝和更新。

4、一個 py文件中可以定義多個class類,類中輸入參數可以實現繼承,其中self關鍵字就是指代當前對象。

5、一般在一個class類中首先有一個__init__函數,這個函數完成一些初始化構造工作。

6、在Python的class類中定義一個個的def方法的時候,要學會多使用try--except的語句。

7、要學會加入log日志打印出錯信息。

8、if __name__ == '__main__':是程序的入口地方。

9、Python更像是一種偽代碼。

?快速入門2.1 Hello world
? ? 安裝完Python之后(我本機的版本是2.5.4),打開IDLE(Python GUI) , 該程序是Python語言解釋器,你寫的語句能夠立即運行.我們寫下一句著名的程序語句:
print "Hello,world!"
? ? 并按回車.你就能看到這句被K&R引入到程序世界的名言.
? ? 在解釋器中選擇"File"--"New Window" 或快捷鍵 Ctrl+N , 打開一個新的編輯器.寫下如下語句:
print "Hello,world!"
raw_input("Press enter key to close this window");
? ? 保存為a.py文件.按F5,你就可以看到程序的運行結果了.這是Python的第二種運行方式.
? ? 找到你保存的a.py文件,雙擊.也可以看到程序結果.Python的程序能夠直接運行,對比Java,這是一個優勢.
--------------------------------------------------------------------------------
2.2 國際化支持
? ? 我們換一種方式來問候世界.新建一個編輯器并寫如下代碼:
print "歡迎來到奧運中國!"
raw_input("Press enter key to close this window");
? ? 在你保存代碼的時候,Python會提示你是否改變文件的字符集,結果如下:

[python]?view plain?copy
?
  1. #?-*-?coding:?cp936?-*-???
  2. ??
  3. print?"歡迎來到奧運中國!"??
  4. raw_input("Press?enter?key?to?close?this?window");??

? ? 將該字符集改為我們更熟悉的形式:

[python]?view plain?copy
?
  1. #?-*-?coding:?GBK?-*-???
  2. ??
  3. print?"歡迎來到奧運中國!"?#?使用中文的例子??
  4. raw_input("Press?enter?key?to?close?this?window");??

? ? 程序一樣運行良好.
--------------------------------------------------------------------------------
2.3?方便易用的計算器
? ? 用微軟附帶的計算器來計數實在太麻煩了.打開Python解釋器,直接進行計算:

[python]?view plain?copy
?
  1. a=100.0??
  2. b=201.1??
  3. c=2343??
  4. print?(a+b+c)/c??

--------------------------------------------------------------------------------
2.4 字符串,ASCII和UNICODE
? ? 可以如下打印出預定義輸出格式的字符串:

[python]?view plain?copy
?
  1. print?"""?
  2. Usage:?thingy?[OPTIONS]?
  3. ?????-h????????????????????????Display?this?usage?message?
  4. ?????-H?hostname???????????????Hostname?to?connect?to?
  5. """??

字符串是怎么訪問的?請看這個例子:

[python]?view plain?copy
?
  1. word="abcdefg"??
  2. a=word[2]??
  3. print?"a?is:?"+a??
  4. b=word[1:3]??
  5. print?"b?is:?"+b?#?index?1?and?2?elements?of?word.??
  6. c=word[:2]??
  7. print?"c?is:?"+c?#?index?0?and?1?elements?of?word.??
  8. d=word[0:]??
  9. print?"d?is:?"+d?#?All?elements?of?word.??
  10. e=word[:2]+word[2:]??
  11. print?"e?is:?"+e?#?All?elements?of?word.??
  12. f=word[-1]??
  13. print?"f?is:?"+f?#?The?last?elements?of?word.??
  14. g=word[-4:-2]??
  15. print?"g?is:?"+g?#?index?3?and?4?elements?of?word.??
  16. h=word[-2:]??
  17. print?"h?is:?"+h?#?The?last?two?elements.??
  18. i=word[:-2]??
  19. print?"i?is:?"+i?#?Everything?except?the?last?two?characters??
  20. l=len(word)??
  21. print?"Length?of?word?is:?"+?str(l)??

? ? 請注意ASCII和UNICODE字符串的區別:

[python]?view plain?copy
?
  1. print?"Input?your?Chinese?name:"??
  2. s=raw_input("Press?enter?to?be?continued");??
  3. print?"Your?name?is??:?"?+s;??
  4. l=len(s)??
  5. print?"Length?of?your?Chinese?name?in?asc?codes?is:"+str(l);??
  6. a=unicode(s,"GBK")??
  7. l=len(a)??
  8. print?"I'm?sorry?we?should?use?unicode?char!Characters?number?of?your?Chinese?\??
  9. name?in?unicode?is:"+str(l);??

--------------------------------------------------------------------------------
2.5 使用List
? ? 類似Java里的List,這是一種方便易用的數據類型:

[python]?view plain?copy
?
  1. word=['a','b','c','d','e','f','g']??
  2. a=word[2]??
  3. print?"a?is:?"+a??
  4. b=word[1:3]??
  5. print?"b?is:?"??
  6. print?b?#?index?1?and?2?elements?of?word.??
  7. c=word[:2]??
  8. print?"c?is:?"??
  9. print?c?#?index?0?and?1?elements?of?word.??
  10. d=word[0:]??
  11. print?"d?is:?"??
  12. print?d?#?All?elements?of?word.??
  13. e=word[:2]+word[2:]??
  14. print?"e?is:?"??
  15. print?e?#?All?elements?of?word.??
  16. f=word[-1]??
  17. print?"f?is:?"??
  18. print?f?#?The?last?elements?of?word.??
  19. g=word[-4:-2]??
  20. print?"g?is:?"??
  21. print?g?#?index?3?and?4?elements?of?word.??
  22. h=word[-2:]??
  23. print?"h?is:?"??
  24. print?h?#?The?last?two?elements.??
  25. i=word[:-2]??
  26. print?"i?is:?"??
  27. print?i?#?Everything?except?the?last?two?characters??
  28. l=len(word)??
  29. print?"Length?of?word?is:?"+?str(l)??
  30. print?"Adds?new?element"??
  31. word.append('h')??
  32. print?word???

--------------------------------------------------------------------------------
2.6?條件和循環語句

[python]?view plain?copy
?
  1. #?Multi-way?decision??
  2. x=int(raw_input("Please?enter?an?integer:"))??
  3. if?x<0:??
  4. ????x=0??
  5. ????print?"Negative?changed?to?zero"??
  6. elif?x==0:??
  7. ????print?"Zero"??
  8. else:??
  9. ????print?"More"??
  10. ??
  11. #?Loops?List??
  12. a?=?['cat',?'window',?'defenestrate']??
  13. for?x?in?a:??
  14. ????print?x,?len(x)??

--------------------------------------------------------------------------------
2.7?如何定義函數

[python]?view plain?copy
?
  1. #?Define?and?invoke?function.??
  2. def?sum(a,b):??
  3. ????return?a+b??
  4. func?=?sum??
  5. r?=?func(5,6)??
  6. print?r??
  7. ??
  8. #?Defines?function?with?default?argument??
  9. def?add(a,b=2):??
  10. ????return?a+b??
  11. r=add(1)??
  12. print?r??
  13. r=add(1,5)??
  14. print?r??

????并且,介紹一個方便好用的函數:

[python]?view plain?copy
?
  1. #?The?range()?function??
  2. a?=range(5,10)??
  3. print?a??
  4. a?=?range(-2,-7)??
  5. print?a??
  6. a?=?range(-7,-2)??
  7. print?a??
  8. a?=?range(-2,-11,-3)?#?The?3rd?parameter?stands?for?step??
  9. print?a??

--------------------------------------------------------------------------------
2.8 文件I/O

[python]?view plain?copy
?
  1. spath="D:/download/baa.txt"??
  2. f=open(spath,"w")?#?Opens?file?for?writing.Creates?this?file?doesn't?exist.??
  3. f.write("First?line?1.\n")??
  4. f.writelines("First?line?2.")??
  5. f.close()??
  6. f=open(spath,"r")?#?Opens?file?for?reading??
  7. for?line?in?f:??
  8. ????print?line??
  9. f.close()??

--------------------------------------------------------------------------------
2.9 異常處理

[python]?view plain?copy
?
  1. s=raw_input("Input?your?age:")??
  2. if?s?=="":??
  3. ????raise?Exception("Input?must?no?be?empty.")??
  4. try:??
  5. ????i=int(s)??
  6. except?ValueError:??
  7. ????print?"Could?not?convert?data?to?an?integer."??
  8. except:??
  9. ????print?"Unknown?exception!"??
  10. else:?#?It?is?useful?for?code?that?must?be?executed?if?the?try?clause?does?not?raise?an?exception??
  11. ????print?"You?are?%d"?%?i,"?years?old"??
  12. finally:?#?Clean?up?action??
  13. ????print?"Goodbye!"??

--------------------------------------------------------------------------------
2.10 類和繼承

[python]?view plain?copy
?
  1. class?Base:??
  2. ????def?__init__(self):??
  3. ????????self.data?=?[]??
  4. ????def?add(self,?x):??
  5. ????????self.data.append(x)??
  6. ????def?addtwice(self,?x):??
  7. ????????self.add(x)??
  8. ????????self.add(x)??
  9. ??
  10. #?Child?extends?Base??
  11. class?Child(Base):??
  12. ????def?plus(self,a,b):??
  13. ????????return?a+b??
  14. oChild?=Child()??
  15. oChild.add("str1")??
  16. print?oChild.data??
  17. print?oChild.plus(2,3)??

--------------------------------------------------------------------------------
2.11 包機制
? ? 每一個.py文件稱為一個module,module之間可以互相導入.請參看以下例子:

[python]?view plain?copy
?
  1. #?a.py??
  2. def?add_func(a,b):??
  3. ????return?a+b??

?

[python]?view plain?copy
?
  1. #?b.py??
  2. from?a?import?add_func?#?Also?can?be?:?import?a??
  3. print?"Import?add_func?from?module?a"??
  4. print?"Result?of?1?plus?2?is:?"??
  5. print?add_func(1,2)????#?If?using?"import?a"?,?then?here?should?be?"a.add_func"??

? ? module可以定義在包里面.Python定義包的方式稍微有點古怪,假設我們有一個parent文件夾,該文件夾有一個child子文件夾.child中有一個module a.py . 如何讓Python知道這個文件層次結構?很簡單,每個目錄都放一個名為_init_.py 的文件.該文件內容可以為空.這個層次結構如下所示:?
parent?
? --__init_.py
? --child
? ? -- __init_.py
? ? --a.py
b.py
那么Python如何找到我們定義的module?在標準包sys中,path屬性記錄了Python的包路徑.你可以將之打印出來:
import sys
print sys.path
? ? 通常我們可以將module的包路徑放到環境變量PYTHONPATH中,該環境變量會自動添加到sys.path屬性.另一種方便的方法是編程中直接指定我們的module路徑到sys.path 中:

[python]?view plain?copy
?
  1. import?sys??
  2. sys.path.append('D:\\download')??
  3. from?parent.child.a?import?add_func??
  4. print?sys.path??
  5. print?"Import?add_func?from?module?a"??
  6. print?"Result?of?1?plus?2?is:?"??
  7. print?add_func(1,2)??

--------------------------------------------------------------------------------
總結 ? ?
? ?你會發現這個教程相當的簡單.許多Python特性在代碼中以隱含方式提出,這些特性包括:Python不需要顯式聲明數據類型,關鍵字說明,字符串函數的解釋等等.我認為一個熟練的程序員應該對這些概念相當了解,這樣在你擠出寶貴的一小時閱讀這篇短短的教程之后,你能夠通過已有知識的遷移類比盡快熟悉Python,然后盡快能用它開始編程.
確切的說,編程語言包括語法和標準庫.語法相當于武術招式,而標準庫應用實踐經驗則類似于內功,需要長期鍛煉.Python學習了Java的長處,提供了大量極方便易用的標準庫供程序員"拿來主義".(這也是Python成功的原因)

轉載于:https://www.cnblogs.com/wycBlog/p/7346879.html

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

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

相關文章

利用lay-ui結合ajax實現分頁功能(不借助框架,簡單易懂)

效果圖: 1.創建html頁面 01.html(前臺文件) 2.創建index.php(后臺文件) ------------------熱身結束,開始正式分頁之旅------------------ 3.在html頁面中引入layui需要用到的css以及js,還有我們自己額外需要用到的jquery 4.在html文件中,將基本的分頁欄顯示出來 5.好啦,htm…

Linux系統壓縮及解壓縮

Linux系統解壓縮概述&#xff1a;本篇將介紹Linux系統中的壓縮和解壓縮的工具&#xff0c;以及歸檔工具&#xff08;tar&#xff0c;cpio&#xff09;compress/uncompress&#xff1a;對應 .Z 結尾的壓縮格式文件&#xff1b;gzip/gunzip&#xff1a;其對應的是 .gz 結尾的壓縮…

酷派手機android版本,系統版本迎來升級

系統版本迎來升級這個應該是兩個版本之間最大但是卻不那么直觀的不同了&#xff0c;因為從TD版酷派大神F1采用的CoolLife UI 5.0版本&#xff0c;再到聯通版酷派大神F1所搭載的CoolLife UI 5.5版本&#xff0c;它們之間經歷了一個比較不錯的升級。在圖標ICON&#xff0c;功能設…

學習RUNOOB.COM進度一

了解MongoDB 由C語言編寫的&#xff0c;是一個基于分布式文件存儲的開源數據庫系統。在高負載的情況下&#xff0c;添加更多的節點&#xff0c;可以保證服務器性能。 特點 面向文檔&#xff0c;操作簡單容易 設置任何索引&#xff0c;實現更快排序 本地或者網絡創建數據鏡像&am…

最終用戶計算安全——特權訪問控制

本篇算是系列的第二篇&#xff0c;之前寫了一篇關于勒索軟件攻擊的&#xff0c;坦白說寫這樣的文很費腦子&#xff0c;而且喜歡看的讀者估計也不多…不過我覺得整理一下思路&#xff0c;對于通過最終用戶計算產品或方案來提升組織安全還是有很大的意義的。所以一邊喝著清茶吃著…

MVC學習九:MVC 特性本質

一、特性的本質就是&#xff1a;對屬性、方法、類加特性&#xff0c;本質就是new 一個特性類對象賦值給屬性、方法、類。 可以通過反射的方式取得特性的值&#xff0c;代碼如下&#xff1a; ①自定義特性 public class MyAttribute:Attribute{public string Name { get; set; }…

前端知識點總結---面試專用

1.關于基礎css html js部分 1.1基本算法 1&#xff09;快速排序 時間復雜度 nlogn function quickSort(arr){if (arr.length<1){return arr;}var pivotIndex 0,pivort arr.splice(pivortIndex, 1)[0];var left [],right [];for (var i 1, length arr.length; i < l…

鴻蒙系統大疆,華為操作系統“鴻蒙OS”來了!

原標題&#xff1a;華為操作系統“鴻蒙OS”來了&#xff01;8月9日&#xff0c;華為消費者業務CEO余承東在華為開發者大會上如期發布了華為鴻蒙操作系統“HarmonyOS”。據介紹&#xff0c;鴻蒙內核在2017年便完成技術驗證&#xff0c;最初是為了提升操作系統的跨平臺能力而研發…

詳述 IntelliJ IDEA 插件的安裝及使用方法

首先&#xff0c;進入插件安裝界面&#xff1a; Mac&#xff1a;IntelliJ IDEA -> Preferences -> Plugins;Windows&#xff1a;File -> Settings -> Plugins.標注 1&#xff1a;顯示 IntelliJ IDEA 的插件分類&#xff0c; All plugins&#xff1a;顯示 IntelliJ …

杭漂兩年,深漂兩年,宇宙的盡頭到底在哪兒

hi&#xff0c;這里是桑小榆。這次分享的是一位杭漂兩年&#xff0c;深漂兩年的碼農伙伴的經歷。首先他能夠在大學期間就尋找到自己的熱愛并持之以恒值得令人學習。其次他的工作經歷可以說是非常的“程序員”&#xff0c;因為程序員所面對的職業生涯中&#xff0c;所謂的實習&a…

侶信即時通訊系統的技術解析

侶信&#xff1a; 說明&#xff1a; 侶信專業版是面向中小企業和者各類團隊組織內部交流使用工具,可以在互聯網或者局域網中使用。具有豐富的功能&#xff0c;聊天&#xff0c;群組&#xff0c;部門組織&#xff0c;內部朋友圈&#xff0c;以及漂流瓶搖一搖等功能。它可以在局域…

Confluence 6 使用 WebDAV 客戶端來對頁面進行操作

下面的部分告訴你如何在不同的系統中來設置原生的 WebDAV 客戶端&#xff0c;這個客戶端通常顯示在你操作系統的文件瀏覽器中&#xff0c;例如&#xff0c;Windows 的 Windows Explorer 或者 Linux 的 Konqueror。在 Mac OSX Finder 中訪問 Confluence你可以成功的連接&#xf…

.Net之接口小知識

目的通過一個簡單的項目&#xff0c;在原來的文章基礎上完善一下常用的幾種WebApi編寫方式以及請求方式&#xff0c;一方面是用于給我一個前端朋友用來學習調用接口&#xff0c;另一方面讓我測試HttpClient的一些效果。本文示例代碼環境&#xff1a;vs2022、net6準備新創建了一…

你所不知道的setTimeout

JavaScript提供定時執行代碼的功能&#xff0c;叫做定時器&#xff08;timer&#xff09;&#xff0c;主要由setTimeout()和setInterval()這兩個函數來完成。它們向任務隊列添加定時任務。初始接觸它的人都覺得好簡單&#xff0c;實時上真的如此么&#xff1f;這里記載下&#…

android 特效繪圖,Android繪圖機制與處理技巧——Android圖像處理之圖形特效處理...

Android變形矩陣——Matrix對于圖像的圖形變換&#xff0c;Android系統是通過矩陣來進行處理的&#xff0c;每個像素點都表達了其坐標的X、Y信息。Android的圖形變換矩陣是一個3x3的矩陣&#xff0c;如下圖所示&#xff1a;72F0CAC1-14FB-40F8-A430-8F542B09DC4E.png當使用變換…

WPF 使用 DrawingContext 繪制刻度條

WPF 使用 DrawingContext 繪制刻度條控件名&#xff1a;Ruler作者&#xff1a;WPFDevelopersOrg原文鏈接&#xff1a; https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用大于等于.NET40&#xff1b;Visual Studio 2022;項目使用 MIT 開源許可協議&#xff1b;定義I…

純css實現漂亮又健壯的tooltip

前言 tooltip的實現有多種方式&#xff0c;下面是一個tooltip成長史。 預覽 https://codepen.io/moddx/pen/... 原始版 最簡單的莫過于就用原始title屬性&#xff0c;像這樣&#xff1a; <button title"tips">button</button> 缺點是體驗是差了點&#x…

個人中心的html,個人中心.html

&#xfeff;個人中心$axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; };$axure.utils.getOtherPath function() { return resources/Other.html; };$axure.utils.getReloadPath function() { return resources/reload.html; };…

使用CMD命令修改Windows本地賬戶密碼

2019獨角獸企業重金招聘Python工程師標準>>> 一、以管理員身份運行cmd命令 二、在命令提示符窗口中輸入命令符&#xff1a;net user Administrator 123&#xff0c;然后按回車鍵“Enter”。(Administrator是你的win8用戶名&#xff0c;123是重新設置的密碼。) ? 三…