Python_03

Similar documents
PowerPoint 簡報

Microsoft PowerPoint - C_Structure.ppt

CHAPTER VC#

C/C++基礎程式設計班

投影片 1

Microsoft Word - 投影片ch03

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00

VB.Net

Microsoft PowerPoint - chap3

資料結構之C語言重點複習

生死之交

Java 程式設計入門

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp

Microsoft PowerPoint - CH02 Introduction to C++ Programming_輸入與輸出 [相容模式]

数据结构与算法 - Python基础

《计算概论》课程 第十九讲 C 程序设计语言应用

針灸治療膝關節疼痛綜述

Microsoft Word - ACG chapter00c-3ed.docx

Microsoft Word - AEL 序.doc

PowerPoint 簡報

<4D F736F F D20AC4FBDBDA4FBB67DA96CAABA2DA743A67EAFC5AAA95FA7B9BD5A5F2E646F63>

ex

C Formatted Input/Output

C 語言—陣列及字串

C/C++基礎程式設計班

Microsoft PowerPoint - Class2.pptx

Microsoft Word - Chap02.doc

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

CC213

Microsoft Word - ACI chapter00-1ed.docx

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

!194 課程 大綱 陣列介紹 [P.195] 陣列的使 用 [1] - 多個同型變數 [P.196] 陣列的初始化 [P.198] 陣列的使 用 [2] - 循序存取 [P.199] 陣列的使 用 [3] - 隨機存取 [P.200] 陣列的複製 [P.203] 在函式間傳送陣列 [P.204]

Microsoft PowerPoint - 02_運算.pptx

標題版面配置

AutoCAD 用戶如何使用 ArchiCAD

Microsoft Word - ACL chapter02-5ed.docx

12 13 記得我 小文哭了 她在騎樓下哭得傷心 她胖胖的身體與黝黑的肌膚全因身體的顫動 不住地收縮著 好 像要把自己縮成到別人看不見的大小 就能夠不哭了 就能夠跑到沒有人知道的地方 她站在別人家公寓的門口 數個信箱口全塞上了廣告傳單 冬天的氣溫在清晨甫過後沒多久才漸漸 地回暖 還是有點冷 她的臉頰

(Microsoft Word - \244\345\266\260\244C_\247\363\267s_.doc)

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h

PowerPoint Presentation

Microsoft PowerPoint - VB5

Python_01

字元意義備註 \n 換行字元 \t Tab \r 迴車鍵 Windows 系統中以 \r\n 代表換行 \ 單引號 \" 雙引號 \0 空字元 用來代表字串的結束 \\ 倒斜線 倒斜線被用做跳脫字元, 因此要用兩個倒斜線表示 表 3.2: 常用特殊字元 ( 二 ) 常用技巧 : 字元判斷在 ASCI

Microsoft Word - 第3章.doc

!249 第 八講 進階指標 講師 : 李根逸 (Ken-Yi Lee),

Microsoft Word - DA 資料處理-講義-01

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

Python 與中文處理

Java 程式設計初階 第 5 章:基本輸出入 & 流程控制

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

Learn_Perl 3-02.pdf

<4D F736F F D20CAD9C3FCCAC7D7D4BCBAD2BBB5E3D2BBB5CEC5ACC1A6C0B4B5C4A1AAA1AA41342E646F63>

<4D F736F F D DA5BFA6A1C476C1C92DBEC7ACECB8D5A8F728B57BB35D292E646F63>

Microsoft PowerPoint - Class4.pptx

第4章 信源及压缩编码

VB控件教程大全

函數的參數 陣列也可以用來作為函數的參數, 由於陣列的傳遞採用傳址的方式, 因此在函數中對陣列的修改將會是永久性的修改, 離開函數後並不會恢復成原先的數值 以練習 static void Main(string[] args) sum(10); sum(20); sum(30); static vo

!49 第 二講 資料型態 運算子與表示式 講師 : 李根逸 (Ken-Yi Lee),

把时间当作朋友

许 多 年 前 我 做 销 售 的 时 候 就 告 诉 团 队 里 的 人, 说 : 最 优 秀 的 销 售 之 所 以 最 优 秀, 在 于 他 们 会 选 择 产 品 因 为, 如 果 一 个 产 品 确 实 能 够 满 足 人 们 切 实 的 需 求, 并 且 以 合 适 的 价 格 出 售,

Microsoft Word - Delta Controller ASCII_RTU_TC

Excel VBA Excel Visual Basic for Application

Microsoft Word - ch 校.doc

第四單元 運算式與流程控制 單元目標 當完成本單元後, 你將能學習到 : 認識 Java 基本資料型態使用基本資料型態與參考資料型態使用 String 類別與 StringBuffer 類別利用 Java 運算子建構算術運算式與邏輯運算式描述轉型 (casting) 與晉升 (promotion)

像 是 婚 姻 之 間 的 關 係 教 育 理 念 物 質 價 值 觀 等 等, 我 們 之 間 沒 有 太 遠 的 距 離, 反 而 是 像 是 大 哥 哥 般 地 對 我 們 百 般 照 顧, 這 趟 旅 程 中 真 的 很 豐 富, 謝 謝 主 辦 單 位 安 排 了 山 東 大 學 的 學

Microsoft Word - CH09

3.1 num = 3 ch = 'C' 2

<4D F736F F D A67EA977B4C1A5BFA6A1A6D2B8D5B3F8A6D2C2B2B3B92E646F6378>

運算子多載 Operator Overloading

Microsoft Word - CS-981.doc

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

第一章

Viu_Cover

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4

LCD模組之應用

C/C++程序设计 - 字符串与格式化输入/输出

資料型態

C/C++ 语言 - 循环

1 1 Excel VBA 說明 ( ) (_) STEP4 Excel 2 STEP5 A1 1 B2 2 C3 3 STEP6 A1 STEP7 > > 1-11

Microsoft PowerPoint - VB14.ppt

Learning python

C/C++ - 字符串与字符串函数

Transcription:

Python 程式設計 林奇賦 daky1983@gmail.com

Outline u 字串處理

跳脫序列 跳脫序列 意義 \\ 反斜線符號 (\) \' 單引號 (') \" 雙引號 (") \a 響鈴符號 (BEL) \b 空格符號 (BS) \f 換 頁符號 (FF) \n 換 行符號 (LF) \r 返回符號 (CR) \t 水平縮排符號 (TAB) \v 垂直跳格符號 (VT) \ooo ooo 是三個 八進位的數字 \xhh hh 是兩個 十六進位的數字

字串處理 字串型態的切 片 (Slice) Ex: >>> toast="pythonslice >>> toast[- 5] 'S >>> toast[- 5:] 'SLICE' >>> toast[:6] 'PYTHON -3-2 -1 >>> toast[:5]+toast[5:] 'PYTHONSLICE' Ex: >>> 'PYTHONSLICE'[:6]==toast[:6] True

字串處理 元組型態的切 片 Ex: >>> toast="pythonslice >>> tuples=toast[0:3],toast[3:6],toast[6:9],toast[9:11] >>> tuples ('PYT', 'HON', 'SLI', 'CE') >>> tuples[0] 'PYT' >>> tuples[2:4] ('SLI', 'CE') >>> tuples[1][0] 'H' Ex: >>> ("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")[3] 'Wednesday'

字串處理 序列型態的切 片 Ex: >>> ["Sunday","Monday","Tuesday","Wednesday","Thursday","Frid ay","saturday"][random.randint(0,6)] 'Saturday Ex: >>> days=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"] >>> days[2]= ' 星期 二 ' >>> print(days[2]) 星期 二

字串處理 字典型態的切 片 Ex: >>> days={1:"sunday",2:"monday",3:"tuesday",4:"wednesday",5:"t hursday",6:"friday",7:"saturday"} >>> days[2],days[3],days[4] ('Monday', 'Tuesday', 'Wednesday') 數字型態的切 片 必須先 用 str() 函數轉換成字串

字串處理 字串函數處理與格式化 旗標 (Flag) 指定格式化的字串變數 Ex: >>> print(" 會員編號 1:%d, 會員編號 2:%d" % (10, 20)) 會員編號 1:10, 會員編號 2:20 >>> print(" 會員編號 2:%(#2)d, 會員編號 1:%(#1)d"%{"#1":10, "#2":20}) 會員編號 2:20, 會員編號 1:10 >>> print(" 會員編號 1:%(num1)d, 會員編號 2:%(num2)d"%{"num1":10, "num2":20}) 會員編號 1:10, 會員編號 2:20

字串處理 字串函數處理與格式化 補 0 Ex: >>> print(" 會員編號 :%(#)08d" % {"#" : 123456}) 會員編號 :00123456 Ex: >>> print("%8.2f" % (123.456)) Ex: 123.46 >>> money=987.98 >>> print("$%*.2f" % (7, money)) $ 987.98

字串處理 字串函數處理與格式化 輸出格式不只接受單純的數字和字串型態的變數, 也可帶 入整個字典型態變數 Ex: >>> name={"game":"xbox", "apple":"iphone", "camera":"nikon"} >>> print("%(apple)s,%(camera)s, %(game)s" %name) iphone, nikon, xbox

printf 風格的字串格式化 轉換 含義 %d 有符號整型 十進制 %i 有符號整型 十進制 %o 有符號 八進製值 %u 過時類型 等同 %d %x 有符號 十六進制 ( 小寫 ) %X 有符號 十六進制 ( 大寫 ) %e 浮點數指數格式 ( 小寫 ) %E 浮點數指數格式 ( 大寫 ) %f 浮點數 十進制格式 %F 浮點數 十進制格式 %g 浮點數格式 使 用 小寫指數格式, 若指數 小於 -4 或不低於精度的話 ; 否則, 會使 用 十進制格式 %G 浮點數格式 使 用 大寫指數格式, 若指數 小於 -4 或不低於精度的話 ; 否則, 會使 用 十進制格式 %c 單字符 ( 接受整數或單字符字符串 ) %r 字符串 ( 以 repr() 內置函數轉換任何 Python 對象 ) %s 字符串 ( 以 str() 內置函數轉換任何 Python 對象 ) %a 字符串 ( 以 ascii() 內置函數轉換任何 Python 對象 ) %% 不轉換 自變量, 會導致 % 字符出現在結果中

方法 str.capitalize() str.center(width[, fillchar]) str.count(sub[, start[,end]]) str.encode(encoding="utf- 8", errors="strict") str.endswith(suffix[, start[, end]]) str.expandtabs([tabsize]) str.find(sub[, start[, end]]) str.format(*args, **kwargs) str.index(sub[, start[,end]]) str.isalnum() str.isalpha() str.isdecimal() str.isdigit() str.isidentifier() str.islower() str.isnumeric() str.isprintable() 描述回傳將 str 改成 首字 母 大寫, 其餘字 母 小寫的字串回傳 一個將 str 設置字串中央, 長度 width 的新字串, fillchar 為填充字元, 預設為空格計算 sub 出現的次數, start 為起始計算索引值, end 為結束索引值回傳 encoding 版本的 bytes 物件判斷 str 是否以 suffix 結尾將 tab 符號以 tabsize 的空格數替換回傳 sub 第 一次出現的索引值進 行格式化字串運算回傳 sub 第 一次出現的索引值判斷字串中的字元是否 至少 一個是字 母或數字判斷字串中的字元是否 至少 一個是字 母判斷字串中所有字元是否是 十進位數字判斷字串中所有字元是否是數字判斷字串是否可作為合法的識別字判斷字串中所有字 母字元是否都是 小寫字 母判斷字串中所有字元是否是數字判斷字串中所有字元是否都屬於可 見字元

方法 str.isspace() str.istitle() str.isupper() str.join(iterable) str.ljust(width[, fillchar]) str.lower() str.lstrip([chars]) staticstr.maketrans(x[, y[, z]]) str.partition(sep) str.replace(old, new[, count]) str.rfind(sub[, start[, end]]) str.rindex(sub[, start[,end]]) str.rjust(width[, fillchar]) 描述判斷字串是否為空格字元 判斷字串是否適合當作標題 判斷字串中所有字 母字元是否都是 大寫字 母 回傳將 str 連結 iterable 各元素的字串 回傳將 str 在寬度 width 向左對 齊的字串, fillchar 為填充字元, 預設為空格 將 str 的英 文字 母都改成 小寫 回傳將 str 左邊具有 chars 字元去除的拷 貝版本, chars 預設為空格符號 回傳 x 與 y 配對的 Unicode 編碼字典, 若有提供 z, z 中的字元會跟 None 配對 以 sep 分割 str 為三個部份, 結果回傳具有三個 子字串的序對 將 str 中的 old 子字串以 new 代換 尋找最右邊的 sub, 也就是索引值最 大的 sub 尋找最右邊的 sub, 也就是索引值最 大的 sub 回傳將 str 在寬度 width 向右對 齊的字串, fillchar 為填充字元, 預設為空格

方法 str.rpartition(sep) str.rsplit([sep[, maxsplit]]) str.rstrip([chars]) 描述以 sep 從最右端分割 str 為三個部份, 結果回傳具有三個 子字串的序對 將 str 從最右端以 sep 分割成 子字串, 回傳儲存 子字串的串列, maxsplit 為 子字串最多的數量 從 str 的最右端中移除 chars 字元, 預設為空 白字元 str.split([sep[, maxsplit]]) 將 str 以 sep 分割成 子字串, 回傳儲存 子字串的串列, maxsplit 為 子字串最多的數量 str.splitlines([keepends]) 將 str 以新 行符號分割成 子字串, 回傳儲存 子字串的串列 str.startswith(prefix[, start[, end]]) str.strip([chars]) str.swapcase() str.title() str.translate(map) str.upper() str.zfill(width) str.rpartition(sep) 判斷 str 是否以 prefix 開頭 從 str 中移除 chars 字元, 預設為空 白字元 將 str 中的英 文字 母進 行 大 小寫轉換 將 str 轉換成作為標題的字串 將 str 中的字元以 map 中配對的字元轉換 將 str 的英 文字 母都改成 大寫 回傳以 0 塞滿 width 的新字串 以 sep 從最右端分割 str 為三個部份, 結果回傳具有三個 子字串的序對

字串函數使 用 string.capitalize() 函數 變數第 一個字轉變為 大寫 Ex: >>> print("how areyou?".capitalize()) How areyou?

字串函數使 用 string.center(width) 函數 width 引數決定對 齊的總 長度 Ex: >>> text1="first line..." >>> text1.center(50) ' first line...

字串函數使 用 string.count(sub[, start[, end]]) 回傳此字串裡有多少個 sub 引數字元 Ex: >>> text='abbggccdeefgggijklgglmo' >>> text.count('g') 7 >>> text.count('g',4,- 4) 5

字串函數使 用 str.endswith(suffix[,start[, end]]) 判斷字串內是否有符合 suffix 引數的值 Ex: >>> images="xbox.gif, iphone.jpg" >>> images.endswith(".jpg") True >>> images.endswith(".gif",0, 8) True >>> images.endswith(".gif") False

字串函數使 用 string.find(sub[, start[, end]]) 搜尋字串變數裡符合 sub 引數的字元位置 Ex: >>> text='abcdefgabcdefg' >>> text.find('a') 0 >>> text.find('a',1) 7

字串函數使 用 str.format(format_string, *args, **kwargs) 將輸 入的 format_string 引數變數進 行格式化數字可以省略 Ex: >>> "{0} makesa full man, and {1} anexact man.".format("reading", "writing") 'Reading makes a full man, and writing an exact man.' 沒有強調限制 "{ }" 符號內的名稱 一定要數字 Ex: {a} {b}.format(a="reading, b="writing") 允許對參照關係符號定義寬度, 長度不夠會 自動填滿

字串函數使 用 string.index(sub[, start[, end]]) 與 string.find() 類似, 差異在當 s 字串變數內搜尋不到 sub 字串會回傳 ValueError 錯誤訊息 Ex: >>> text="abcdeabcde" >>> text.index('d', 4) 8

字串函數使 用 str.isalnum() 判斷該變數裡的內容是否為 [a- z] [A- Z] 與 [0-9] 的字元 不可以判別多 行宣告 str.isalpha() 與 str.isalnum() 的差異在於這個函數只接受字串內有英 文字 母

字串函數使 用 str.isdigit() 判斷字串內的數字 str.islower() 判斷字串變數內的字元是否全部都是 小寫 str.isspace() 判斷字串變數是否為空 白字元

課堂練習 使 用者可以輸 入任意整數 n 當輸 入的 n 不為整數, 提 示使 用者輸 入型態錯誤, 並且重新讓使 用者繼續輸 入 若輸 入的值為整數, 將其 print 至螢幕上 ex. n=100

字串函數使 用 str.istitle() 判斷字串變數裡的第 一個字是否為 大寫 如果宣告 一句英 文句 子, 句 子裡的每 一個單字都會判斷 str.isupper() 判斷字串變數內的所有字 母都必須要 大寫 不會理會特殊字元

字串函數使 用 string.ljust(width) 將傳 入的 s 字串進 行向左對 齊,width 引數是指定對 齊的總寬度 Ex: >>> text="abcdefghijkl" >>> text.ljust(20) 'abcdefghijkl '

字串函數使 用 string.lower() 將 string 內的字元從 大寫字 母轉換為 小寫字 母 str.replace(old, new, count) 將字串內所有符合 old 引數以 new 引數的字元來替代, 而 count 引數是指定只要代替的數 目 sring.rfind(sub[,start[, end]]) 從右到左尋找,sub 引數是預計要搜尋的字元

u string.lstrip([chars]) u 將 s 字串變數內左邊的多於空 白字元去掉,chars 引數必須傳 入字串型態 u chars 決定 string.lstrip() 函數要去掉字串變數內的那些字元, 預設只會刪去空 白字元 u Ex: u >>> text = " aaaaa bbbbbbaaaccccc " u >>>

字串函數使 用 str.partition(sep) 將字串做分割, 但只會分割第 一個符合 sep 引數的字元, 形成 3- tuple Ex:

字串函數使 用 string.split( sep, maxsplit) 由左 至右, 將 string 字串變數內的字元以 sep 引數字元為分隔字元進 行分割找不到符合 sep 的值, 就會回傳整個字串

字串函數使 用 str.splitlines(keepends) 將字串進 行分割以 \n 和 \r 作為分割的區隔字元以序列型態回傳 Keepends 引數預設 False, 設為 True 會連同脫逸字元 一併回傳 str.startswith(prefix[,start[, end]]) 判斷傳 入的 prefix 字串字元是否為開始字元

字串函數使 用 string.strip([ chars]) 將 string 字串變數裡的左右兩邊的空 白字元刪除掉 chars 引數不為 None 時會決定 string.strip() 函數要刪除的字元 string.swapcase() 將 string 字串裡的字 母 大 小寫互轉

字串函數使 用 string.rjust(width) 與 string.ljust() 有相反的意思 str.rpartition(sep) 與 string.partition() 類似 string.rsplit(sep[, maxsplit]]) 將字串變數 s 裡 面的值進 行分割, 分割的參考字元是 sep 引數裡的字元, 其結果以序列型態儲存

字串函數使 用 string.rindex(sub[, start[, end]]) 由右 至左搜尋,s 字串變數搜尋不到 sub 字串將會回傳 ValueError 錯誤訊息 string.rstrip([chars]) 將 x 字串變數內右邊的多於空 白字元去掉

字串函數使 用 string.title() 將字串內所有為 [a- z] 的單字第 一個字元轉換成 大寫 string.translate(map) 將 string 中的字元以 map 中配對的字元轉換 搭配 str.maketrans(from, to)

字串函數使 用 string.upper() 將 string 字串變數內的字 母從 小寫轉換為 大寫 string.zfill(width) 將 string 變數內的字串前 面補 0, 直到 string 變數的 長度等於 width 引數設定的 長度

Homework 3 https://gist.github.com/chifu/f044779487741c829734#file-ex03_hw-py u 題目 : 在特定的文章字串中, 搜尋輸入的字串 u 條件 1: 若有符合的字串, 將其索引值印出 ( 全部印出, 並非印出第一個符合的索引值 ) u 條件 2: 最後印出總共有 9 個 的, ( 若輸入的字為 的 ) u 格式 : py254_ 中文姓名 _hw3.py u 上傳至 : u https://goo.gl/uv6lvo

範例圖