跳到主要內容

Python Study (5)– String Type


Introduce to string type 


ASCII is a sample form of Unicode text, but many text may be not non-English-text source.File working in two modes are  text and bytes ,We need to understand differnt of String of object type in Python3.X and Python 2.X. 

Python3.X :
    (1) str           : handle text of Unicode form
    (2) bytes       : handle binary data
    (3) bytearray : handle mutable variant of bytes
Python2.x:
   (1) str           :  handle 8-bits text and binary data
   (2) unicode    :  hanlde Unicode text
   (3) bytearray  : handle mutable variant of bytes. ( support 2.6 or later)


1.String Basics 
Everything is string.String can be used to represent informations of all kinds(e.g. profile, song…), these informations can be encoded as text or bytes.  


2.String Literals

In python, String function handle various data types.
quote mark description
single quote
‘temp’s’
double quote
“temp’s”
triple quotes “”” mutiline…  ”””
  ‘’’mutilne… ‘’’
raw string r”data”
escape sequences “s\tdat\n”
bytes b’sp\x01’
unicode u’eggs\u001’

Problem 1. single and double-quoted string are the same ?
       In python, single- and double-quote  characters are interchangeable. string
       literals is written enclosed in either two single or two double quotes.

Example:


>>> 'apple',"apple"
('apple', 'apple')

>>> 'Tom"s apple',"Tom's apple"  //embed a quote
('Tom"s apple', "Tom's apple")

>>> 'Tom\'s apple',"Tom\'s apple" //use escape quote
("Tom's apple", "Tom's apple")




Escape  


Escape Description
\n
Newline
\t
tab
\xhh
hex value
\o
octal value
\’
single quote
\”
double quote
\\
backslash(\)
\0
null: binary 0 character
\N{id}
Unicode database ID
\uhhhh
Unicode character with 16-bit hex value
\uhhhhhhhh
Unicode character with 32-bit hex value

Example:

>>> “abc\ndef\t ghi ”
'abc\ndef\t ghi'
>>> print(“abc\ndef\t ghi ”)
’abc
   def    ghi



Basic Operations 

Operation Description
len(str) return the length of a string or size of the string in the memory
str + str return concatenate two string to create new string
str * n return  adding a string to itself a number of times
[start:end] return slicing the string
image
[start:end:step] return slicing the string by step
Example:
             s = “abcdefghijklmnopqrstuvwxyz”


>>> s = "abcdefghijklmnopqrstuvwxyz"
>>> len(s)
26

>>> s+"1234567890"
'abcdefghijklmnopqrstuvwxyz1234567890'

>>> s*2    
'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz'
>>> s[0]
'a'
>>> s[-2]
'y'

#slicing>>> s[0]
'a'
>>> s[-1]
'z'
>>> s[1:]         #get all elements beyond the first
'bcdefghijklmnopqrstuvwxy'
>>> s[3:6]
'def'
>>> s[:-1]   # get all elements unitl the last

Note: s[0] fetches the string at offset 0 from the left and return “a”;s[-1] gets the string at offset 1 back from the end.
String conversion 

In python, if the string looks like number and you want to add a number and the string together. it will happe a error(TypeError) so you need to convert the string to integer.


>>> "30"+1
Traceback (most recent call last):
  File "<pyshell#79>", line 1, in <module>
    "30"+1
TypeError: Can't convert 'int' object to str implicitly




These are String conversion tools

conversion Description
int(str) return converted integer
int(str, base=10) return converted integer by base
str(obj) return converted string
repr(obj) return code string,
float(text) return  floating-point-number
ord(str) it only convert a single character to integer
chr(int) an integer code convert to the correspanding character
bin(int) return binary
Example:
(1) A number and a string add together, the string is converted to integer.

(2) A number and a string add together, the number is converted to string.
(3) A string looks like a  float-point-number, the string is conveted to float.

   a = 1, b = ”2”, c = “3.14”


>>> a = 1
>>> b = "2"
>>> c = “3.14”
>>> a + int(b)      # (1) convert to integer
3

>>> str(a) + b     # (2) convert to string
'12'


>>> float(c)
3.14

Example :
    (1) single character convert to integer code
    (2) integer convert to single character




Example:
   (1) binary to integer
   (2) integer to binary



>>> int('1111',2)
15

>>> bin(15)
'0b1111'


String function 



function Description
capitalize() retrun the first character of the string is  capitalized
casefold() return the string is lowercased
center(int width)
encode(encoding=”utf8”) Return an encoded version of the string as a bytes object.
find(str) return index in the string where substring is found
index(str) like find()
isalpha() return true if all characters are alphabestic in the string
isdecimal() return true if all characters are decimal in the string
isdigit() return true if all characters are digits in the string
lower() like casefold()
split() return a list of the words in the stirng by sep as the delimiter string.
zfill(int width) return the string filled with ‘0’













留言

這個網誌中的熱門文章

GSON基礎教學

GSON 前言 JSON是很常見的資料交換格式,在JAVA領域常用處理JSON的函式庫:GSON、FastXML和JSON-B,本章節會以GSON為主,學習目標如下 JSON格式說明 GSON 套件函式 GSON: 物件轉換JSON字串 GSON: JSON字串轉換物件 JSON 格式說明 JSON全名為JavaScript Object Notation,它是一種輕量級的資料交換格式,會大為流行的理由,主要是他比傳統用xml更輕巧且容易處理, JSON表達方式物件會用大括弧{},陣列則是用中括號[]。 用JSON字串來表達Employee的物件內容,由JSON字串可以知道物件name、age、sex和salary屬性。 JSON表示員工資料方式: {“name”:”Jack Bryant”, “age”:18, “sex”:”M”,”salary”:3500.00} JSON陣列表示方式: 跟我們使用JAVA的陣列方式類似,內容值可以是數字’、文字、布林、陣列、物件、null等等。 範例: 字串: [“紅”、”橙”、”黃”、”綠”、”青”、”藍”、”紫”} 布林: [true, true, false, false, true, true] GSON 套件函式 Gson為google所發布的函式庫,主要將物件與json字串之間的轉換時方便使用。當我們將JAVA物件轉換成JSON字串稱為 序列化 ,JSON字串轉換至JAVA物件稱為 反序列化 。 GSON: 物件轉換JSON字串 有了JSON基本概念後,我們進入本章重點,首先我們需要建立員工類別(Employee),定義如下 物件 屬性 員工類別 Employee name 名字 age 年紀 sex 性別 salary 薪水 /** * name:員工類別 */ public class Employee implements Serializable { //constructor public Employee(String name, double salary){ this.name = name; this.sala...

PHP與Python搭配

今天介紹如何利用php網頁呼叫目錄下的python程式工作或是資料交換,本人整理的方法有兩種 使用system()、exec()、shell_exec()呼叫程式 (1) string system ( string return_var ] ) 參考網址 官網解釋system()用來執行外部命令,返回為印出的結果,passthru()跟system()類似但是它不會返回結果。 範例1. 利用system執行ls指定並顯示在網頁上,無法使用變數保留ls的結果 檔案名稱: psystem.php $jsondata= system("ls -al", $result); 結果: (2) exec() : string exec ( string output [, int &$return_var ]] ) 參考網址 範例2. 利用exec執行python程式並可以回傳json格式給前端網頁做處理並顯示。我們ptopy.php就是可以看到callpy()為執行py的函式,它執行完pyEx01.py會將結果給$jsondata變數,做後面json解析。 檔案名稱: ptopy.php function callpy() { $jsondata= exec("/usr/bin/python pyEx01.py"); return $jsondata ; } $jsondata= callpy(); echo $jsondata ; echo " " ; $obj = json_decode($jsondata) ; echo "name:".$obj-> { 'name'} .',' ; echo "id:".$obj-> { 'id'} ; 檔案名稱: pyEx01.py import sys ...

JavaBean 和POJO

前言 今天介紹JavaBean和POJO的不同,這兩個名詞在JAVA文章常常被拿來使用以及討論。在JDK1.1時候釋出才有的一個標準架構,很多時候常常被搞混,所以我們特別開闢一章來加以討論。POJO規範在企業級應用已經廣大的被使用的規範。 解釋 POJO : 全名為Plain-old-Java-object,只需要繼承Object就可以,沒有特定規定,只要建立的類別有setter/getter方法都可以稱為POJO JavaBean: JavaBean通常用來封裝多個物件成為單獨物件使用,規範比較嚴格,規則如下 規則 說明 1 需要實作序列(Serializable/Externalizable) 2 不能有參數的建構子( no-arg constructor) 3 需要有公用setter/getter 4 屬性必須要私人(private) 5 屬於特定POJO規則 比較 所有的JavaBean都為POJO,但是所有的POJO不一定為JavaBean 都可以當作重複元件 都必須序列化 特性都為可用性、易用性和持久化使用 - 應用 由圖我們可以知道POJO在應用程式中,主要用來存取資料庫資料達到持久化的目的,並提供給商業邏輯流程處理使用。這種POJO的架構提供程式人員開發時的可以很有規則將資料封裝並加以使用。 範例1. JavaBean(以員工為實例) JavaBean建立員工物件,可以發現Employee物件建構子沒有任何參數,屬性為私有化並setter/getter的命名方式。 //實作序列化 public class Employee implements java.io.Serializable{ private int id; private String name; //無參數建構子 public Employee(){} //以下實作setter/getter public void setId(int id){this.id=id;} public int getId(){return id;} public void setName(String ...