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轉換成字符