不一樣的Python(4)——字符串


1.字符串str是不可修改類型;

 

class PassByReference:
    def __init__(self):
    	self.variable = 'Original'
    	self.Change(self.variable)
    	print self.variable

    def Change(self, var):
    	var = 'Changed'

函數PassByReference.Change並不能改變variable的內容。要解決這個問題,有兩個辦法:

(1)把修改之後的內容以返回值的形式傳出:

def return_a_whole_new_string(the_string):
    new_string = something_to_do_with_the_old_string(the_string)
    return new_string

# then you could call it like
my_string = return_a_whole_new_string(my_string)

(2)把字符串放到一個新的類型或者容器(比如list)裏:

def use_a_wrapper_to_simulate_pass_by_reference(stuff_to_change):
    new_string = something_to_do_with_the_old_string(stuff_to_change[0])
    stuff_to_change[0] = new_string

# then you could call it like
wrapper = [my_string]
use_a_wrapper_to_simulate_pass_by_reference(wrapper)

do_something_with(wrapper[0])


2.可以用單引號(')和雙引號(")表示字符串;

3.可以用連續三個雙引號(""")表示多行字符串的開頭和結尾。

4.下面兩個字符串有什麼不同?

S1 = """
aaaa
bbbb
cccc"""

S2 = ('aaaa'
'bbbb'              # Comments here are ignored
'cccc')

5. 沒有字符和字符串的區別。C語言中的字符(char)在Python中只是一個長度爲1的字符串
6. + 表示字符串拼接,<string>*<number>表示<number>個<string>拼接成一個新的字符串

7. Python不支持在一個字符串加上一個數字把該字符修改爲另一個字符。如果要想實現這個功能,需要顯示在字符和ASCII碼之間轉換:ord得到一個字符的ASCII碼,chr把ASCII轉換成字符

 

發佈了35 篇原創文章 · 獲贊 7 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章