Python學習(三)基礎

一、函數與模塊

  定義函數:

  • 函數代碼塊以?def?關鍵詞開頭,后接函數標識符名稱和圓括號?()
  • 任何傳入參數和自變量必須放在圓括號中間,圓括號之間可以用于定義參數。
  • 函數的第一行語句可以選擇性地使用文檔字符串—用于存放函數說明。
  • 函數內容以冒號起始,并且縮進。
  • return [表達式]?結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當于返回 None。

  函數的參數:

  函數的參數可以有默認值,支持使用可變參數(參數名前面的*表示args是一個可變參數,可以傳入0個或多個參數

  模塊管理函數:(Python中每個文件就代表了一個模塊(module))

  Python沒有函數重載的概念,在同一個.py文件中定義了兩個同名函數,后面的定義會覆蓋之前的定義,為避免這種情況,在不同的模塊中可以有同名的函數,在使用函數的時候我們通過import關鍵字導入指定的模塊就可以區分到底要使用的是哪個模塊中的函數,

二、數據結構 

  • 字符串

  Python 不支持單字符類型,單字符在 Python 中也是作為一個字符串使用

  可以使用方括號來截取字符串

 Python轉義字符

 

轉義字符描述
\(在行尾時)續行符
\\反斜杠符號
\'單引號
\"雙引號
\a響鈴
\b退格(Backspace)
\000
\n換行
\v縱向制表符
\t橫向制表符
\r回車
\f換頁
\oyy八進制數,yy?代表的字符,例如:\o12?代表換行,其中 o 是字母,不是數字 0。
\xyy十六進制數,yy代表的字符,例如:\x0a代表換行
\other其它的字符以普通格式輸出

  

  Python字符串運算符

操作符描述實例
+字符串連接a + b 輸出結果: HelloPython
*重復輸出字符串a*2 輸出結果:HelloHello
[]通過索引獲取字符串中字符a[1] 輸出結果?e
[ : ]截取字符串中的一部分,遵循左閉右開原則,str[0,2] 是不包含第 3 個字符的。a[1:4] 輸出結果?ell
in成員運算符 - 如果字符串中包含給定的字符返回 True'H' in a?輸出結果 True
not in成員運算符 - 如果字符串中不包含給定的字符返回 True'M' not in a?輸出結果 True
r/R原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思來使用,沒有轉義特殊或不能打印的字符。 原始字符串除在字符串的第一個引號前加上字母?r(可以大小寫)以外,與普通字符串有著幾乎完全相同的語法。
print( r'\n' ) print( R'\n' )
%格式字符串請看下一節內容。

  python字符串格式化符號:

  

?符?? 號描述
????? %c?格式化字符及其ASCII碼
????? %s?格式化字符串
????? %d?格式化整數
????? %u?格式化無符號整型
????? %o?格式化無符號八進制數
????? %x?格式化無符號十六進制數
????? %X?格式化無符號十六進制數(大寫)
????? %f?格式化浮點數字,可指定小數點后的精度
????? %e?用科學計數法格式化浮點數
????? %E?作用同%e,用科學計數法格式化浮點數
????? %g?%f和%e的簡寫
????? %G?%f 和 %E 的簡寫
????? %p?用十六進制數格式化變量的地址

  格式化操作符輔助指令:

符號功能
*定義寬度或者小數點精度
-用做左對齊
+在正數前面顯示加號( + )
<sp>在正數前面顯示空格
#在八進制數前面顯示零('0'),在十六進制前面顯示'0x'或者'0X'(取決于用的是'x'還是'X')
0顯示的數字前面填充'0'而不是默認的空格
%'%%'輸出一個單一的'%'
(var)映射變量(字典參數)
m.n.m 是顯示的最小總寬度,n 是小數點后的位數(如果可用的話)
  • 列表:

  一個方括號內的逗號分隔值出現

  列表索引從0開始。列表可以進行截取、組合等

  可以使用append()方法來添加列表項

  使用下標索引來訪問列表中的值,也可以使用方括號的形式截取字符

  使用 del 語句來刪除列表的的元素:(del list[1])

  + 號用于組合列表,* 號用于重復列表     

  Python包含以下方法:

?

序號方法
1list.append(obj)
在列表末尾添加新的對象
2list.count(obj)
統計某個元素在列表中出現的次數
3list.extend(seq)
在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表)
4list.index(obj)
從列表中找出某個值第一個匹配項的索引位置
5list.insert(index, obj)
將對象插入列表
6list.pop([index=-1])
移除列表中的一個元素(默認最后一個元素),并且返回該元素的值
7list.remove(obj)
移除列表中某個值的第一個匹配項
8list.reverse()
反向列表中元素
9list.sort( key=None, reverse=False)
對原列表進行排序
10list.clear()
清空列表
11list.copy()
復制列表
  • 元組:
  1. 使用小括號,
  2. 元組中只包含一個元素時,需要在元素后面添加逗號,否則括號會被當作運算符使用
  3. 元組可以使用下標索引來訪問元組中的值,下標索引從0開始,可以進行截取,組合等,使用 + 號和 * 號進行運算。這就意味著他們可以組合和復制,運算后會生成一個新的元組
  4. 元組中的元素值是不允許修改的,但我們可以對元組進行連接組合
  5. 元組中的元素值是不允許刪除的,但我們可以使用del語句來刪除整個元組

?

?

  • 字典:
  1.   字典是另一種可變容器模型,且可存儲任意類型對象。?
  2.   字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中,如:d = {key1 : value1, key2 : value2 }
  3.   不允許同一個鍵出現兩次。創建時如果同一個鍵被賦值兩次,后一個值會被記住
  4.   鍵必須不可變,所以可以用數字,字符串或元組充當,而用列表就不行
  5.   字典值可以是任何的 python 對象,既可以是標準的對象,也可以是用戶定義的
  • 集合:

  集合(set)是一個無序的不重復元素序列。可以使用大括號?{ }?或者?set()?函數創建集合,注意:創建一個空集合必須用?set()?而不是?{ },因為?{ }?是用來創建一個空字典?

parame = {value01,value02,...} 或者 set(value)

三、面向對象(三大要素:封裝、繼承、多態)

  • 類(Class):?用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。

   在Python中可以使用class關鍵字定義類

   類有一個名為 __init__() 的特殊方法(構造方法),該方法在類實例化時會自動調用(self代表類的實例,而非類)

   類之間的關系:(類和類之間的關系有三種:is-a、has-a和use-a關系)

    1.   is-a關系也叫繼承或泛化,比如學生和人的關系、手機和電子產品的關系都屬于繼承關系。
    2.   has-a關系通常稱之為關聯,比如部門和員工的關系,汽車和引擎的關系都屬于關聯關系;關聯關系如果是整體和部分的關聯,那么我們稱之為聚合關系;如果整體進一步負責了部分的生命周期(整體和部分是不可分割的,同時同在也同時消亡),那么這種就是最強的關聯關系,我們稱之為合成關系。
    3.   use-a關系通常稱之為依賴,比如司機有一個駕駛的行為(方法),其中(的參數)使用到了汽車,那么司機和汽車的關系就是依賴關系。
  • 方法:類中定義的函數。

   在類的內部,使用?def?關鍵字來定義一個方法,與一般函數定義不同,類方法必須包含參數 self, 且為第一個參數,self 代表的是類的實例  

   私有方法__private_method:兩個下劃線開頭,聲明該方法為私有方法,只能在類的內部調用 ,不能在類的外部調用

   使用@staticmethod 定義靜態方法,

   Python還可以在類中定義類方法(@classmethod),類方法的第一個參數約定名為cls,它代表的是當前類相關的信息的對象。通過這個參數我們可以獲取和類相關的信息并且可以創建出類的對象

  • 類變量:類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。

   __private_attrs:兩個下劃線開頭,聲明該屬性為私有,不能在類的外部被使用或直接訪問。在類內部的方法中使用時?self.__private_attrs

   使用@property包裝器來包裝getter和setter方法,使得對屬性的訪問既安全又方便

  • 數據成員:類變量或者實例變量用于處理類及其實例對象的相關的數據。

?

  • 方法重寫:如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,這個過程叫方法的覆蓋(override),也稱為方法的重寫。

   在子類中需要父類的構造方法就需要顯式地調用父類的構造方法,或者不重寫父類的構造方法

   如果重寫了__init__?時,要繼承父類的構造方法,可以使用?super?關鍵字:super() 函數

  • 局部變量:定義在方法中的變量,只作用于當前實例的類。
  • 實例變量:在類的聲明中,屬性是用變量來表示的。這種變量就稱為實例變量,是在類聲明的內部但是在類的其他成員方法之外聲明的。
  • 繼承:即一個派生類(derived class)繼承基類(base class)的字段和方法。繼承也允許把一個派生類的對象作為一個基類對象對待。例如,有這樣一個設計:一個Dog類型的對象派生自Animal類,這是模擬"是一個(is-a)"關系(例圖,Dog是一個Animal)。

   方法名后的小括號中添加需要繼承的類,需要注意圓括號中基類的順序,若是基類中有相同的方法名,而在子類使用時未指定,python從左至右搜索 即方法在子類中未找到時,從左到右查找基類中是否包含方法

  • 實例化:創建一個類的實例,類的具體對象。
  • 對象:通過類定義的數據結構實例。對象包括兩個數據成員(類變量和實例變量)和方法。  

轉載于:https://www.cnblogs.com/PollyLuo/p/11535794.html

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

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

相關文章

操作系統原理之I/O設備管理(第六章上半部分)

一、I/O系統的組成 I/O系統不僅包括各種I/O設備&#xff0c;還包括與設備相連的設備控制器&#xff0c;有些系統還配備了專?? 于輸?/輸出控制的專?計算機&#xff0c;即通道。此外&#xff0c;I/O系統要通過總線與CPU、內存相連。 I/O系統的結構&#xff1a; I/O設備的分類…

js控制a標簽點擊事件 觸發下載

問題背景&#xff0c;動態獲取data把url賦值到a標簽的url中&#xff0c;讓a標簽自動下載 首先想到的應該是$(xxx).click(), 查資料明白&#xff1a;js中的$(...).click()事件只能觸發綁定的onClick方法&#xff0c;不能跳轉到href。 第二種方法&#xff1a;獲取到url之后locat…

操作系統原理之I/O設備管理(第六章下半部分)

五、I/O軟件原理 輸入輸出軟件的總體目標是將軟件組織成一種層次結構 低層軟件用來屏蔽硬件的具體細節高層軟件則主要是為用戶提供一個簡潔、規范的界面設備管理的4個層次&#xff1a; 用戶層軟件 -》向系統發出I/O請求&#xff0c;顯示I/O操作的結果&#xff0c;提供?戶與設備…

jQuery第二天

課程回顧&#xff1a; ? jQuery&#xff1a;JavaScript庫 ? 入口函數&#xff1a;$(function () {}); ? jQuery&#xff1a;jQuery對象&#xff0c;DOM對象 ? jQuery轉成DOM&#xff1a;$(‘元素’)[索引值] ? DOM轉成jQuery&#xff1a;$(DOM對象); ? 篩選方法&am…

切換Debug/Release編譯模式和Archive的作用

&#xfeff;在學這個之前&#xff0c;以為很難&#xff0c;也起不到什么作用&#xff0c;但是等真正運用到工程里面&#xff0c;才發現&#xff0c;這個能幫你省下很多工作量。 1&#xff0c;Debug和Release版本區別&#xff1f; 進行iOS開發&#xff0c;在Xcode調試程序時&am…

Linux 防火墻:Netfilter iptables

一、Netfilter 簡介 (1) Netfilter 是 Linux 內置的一種防火墻機制&#xff0c;我們一般也稱之為數據包過濾機制&#xff0c;而 iptables 只是操作 netfilter 的一個命令行工具(2) Netfilter 是 Linux CentOS 6 內置的防火墻機制&#xff0c;Firewall 是 Linux CentOS 7 內置的…

無法加載 DLL“SQLite.Interop.DLL”: 找不到指定的模塊。 (異常來自 HRESULT:0x8007007E)。...

無法加載 DLL“SQLite.Interop.DLL”: 找不到指定的模塊。 (異常來自 HRESULT:0x8007007E)。 在項目里添加 現有項 把SQLite.Interop.DLL文件添加進來&#xff0c;然后點擊屬性 修改一個屬性 把 屬性 復制到輸出目錄 改為 始終復制 然后打開你的項目屬性 進入生成的 頁面&a…

jQuery第三天

課程回顧&#xff1a; ? 動畫效果&#xff1a;基本動畫&#xff0c;滑動動畫&#xff0c;淡入淡出&#xff0c;自定義動畫效果(animate) ? 事件切換&#xff1a;hover(over&#xff0c;out); ? 停止動畫&#xff1a;stop ? 操作屬性&#xff1a;prop&#xff08;固有屬…

C語言程序設計II—第八周教學

第八周教學總結&#xff08;15/4-21/4&#xff09; 教學內容 本周的教學內容為&#xff1a;   8.4 電碼加密 知識點&#xff1a;指針與字符串&#xff0c;重難點&#xff1a;字符指針與字符串的關聯和區別&#xff1b;   8.5 任意個整數求和 知識點&#xff1a;動態內存分配…

AFNetworking 對數據進行https ssl加密

參考來源&#xff1a;http://www.cnblogs.com/jys509/p/5001566.html 現在在工作中的工作需求&#xff1a;https請求驗證證書一般來講如果app用了web service , 我們需要防止數據嗅探來保證數據安全.通常的做法是用ssl來連接以防止數據抓包和嗅探其實這么做的話還是不夠的 。…

數據庫系統原理(第一章概述)

一、數據庫基本概念 什么是數據&#xff1a;數據&#xff08;Data&#xff09;是描述事物的符號記錄&#xff0c;是指利用物理符號記錄下來的、 可以鑒別的信息。 數據是信息存在的一種形式&#xff0c;只有通過解釋或處理的數據才能成為有用的信息。 什么是數據庫&#xff1a;…

jQuery第四天

課程回顧&#xff1a; ? 元素操作&#xff1a; ? 遍歷元素&#xff1a; ? $(‘元素’).each(function (index, elm) {}); ? $.each(對象&#xff0c;function (index, elm) {}); ? 創建元素&#xff1a;$(‘ 新的元素?’);? 添加元素&#xff1a; ? 內部添加&…

navigationController的NavigationBar和ToolBar的POP或PUSH消失問題

今天在工作中發現一個坑&#xff0c; 其他頁面都是隱藏。YSViewController 使用的時候必須是需要 navigationBar 和 toorbar&#xff0c;但是 pop出這個viewcontroller后&#xff0c;需要隱藏navigationBar 和 toorbar&#xff0c;但是直接設置為hiddenYES會出現其他頁面壓棧出…

實驗二:Linux下Xen環境的安裝

實驗名稱&#xff1a; Linux下Xen環境的安裝&#xff08;centOS7&#xff09; 實驗環境&#xff1a; 本次實驗基本是在centOS7的環境下完成&#xff0c;系統內核和系統版本如下&#xff1a; 實驗要求&#xff1a; 為centOS7的環境下安裝Xen的平臺&#xff0c;能夠正常使用Xen下…

IDEA寫vue項目出現紅色波浪線警告如何解決??

1.看圖 2.希望對大家有幫助&#xff0c;只要修改了這個就可以&#xff0c;如有任何問題都可以留言&#xff0c;謝謝大家 2019-09-1923:54:11 作者&#xff1a;何秀好 轉載于:https://www.cnblogs.com/itboxue/p/11553395.html

數據可視化(BI報表的開發)第一天

課程回顧&#xff1a; ? jQuery事件注冊&#xff1a; ? $(元素).click(function () {}); ? $(元素).on(‘click’, [后代元素], function () {}); ? $(元素).one(‘click’, function () {}); ? 解綁事件&#xff1a;off ? 自動觸發&#xff1a; ? $(元素).click…

在Block中使用weakSelf與strongSelf的意義

在Block中使用weakSelf與strongSelf的意義 我們都會聲明一個弱引用在block中使用, 目的就是防止循環引用, 那么weakSelf與strongSelf一起使用目的是什么呢? 首先先定義2個宏: #define YXWeakSelf(type) __weak typeof(type) weak##type type; #define StrongSelf(type) __…

操作系統原理之操作系統簡介(第一章)

一、 什么是操作系統 操作系統&#xff1a;是一種復雜的系統軟件&#xff0c;是不同程序代碼、數據結構、數據初始化文件的集合&#xff0c;可執行。 操作系統是用戶與硬件之間的接口&#xff1a;操作系統與硬件部分相互作用&#xff0c;并且為運行在計算機上的應用程序提供執行…

數據可視化(BI報表的開發)第二天

9、公用面板樣式 所有的面板的基礎樣式是一致的&#xff0c;提前布局好。 面板 .panel &#xff1a;box-sizing&#xff0c;邊框圖&#xff0c;大小&#xff0c;定位【51 38 20 132】容器 .inner&#xff1a;padding&#xff1a;24&#xff0c;36&#xff0c;定位外部拉寬標…

關于Xcode 7.3 7.3.1 斷點 卡死 無限菊花

關于Xcode 7.3 7.3.1 斷點 卡死 無限菊花 只要一打斷點,就無限卡死,變量區一直菊花在轉,只有強制退出Xcode才能重新編譯,找了Google和Stack OvewFlowe依然沒有解決辦法. 刪除項目,重新安裝Xcode,重新運行程序一切辦法都解決不到,百度上說的"build setting中將Enable Clang…