Re:從0開始的Python學習生活(Ⅱ)——string相關

Python的string還是比較友善的。

# some python's function of srting


# + and *
# what's more, we can find that both "" and '' is ok for string
s1 = "Hello"
s2 = "World"
s = s1 + ' ' + s2 + "!"
print(s)
print(s * 3)
print(3 * s)

# when both "" and '' is in our string, we can use \ to easily solve this problem
my_str = "I say... \"Hey, Hey, Hey, start dash!\""
print(my_str)

# len
print(len(s))

# slice function
# 切片操作
# s[start : end : step] or s[strat : end] which at this time step = 1
# PAY ATTENTION! end is not included ie [start, end)
ss = s[3 : 8 : 2]
print(ss)
ss = s[3 : 8]
print(ss)

# in
# in function
flag = 'h' in s
print(flag)
flag = 'H' in s
print(flag)

# -n
print(s[-1])
print(s[-2])
print(s[-3])
print(s[0])


# string is a type of sequence, so these function is also ok for all types' sequence

基本的都在註釋裏寫得很詳細了,不再用中文贅述一遍了(如果後來忘了也可以順便鍛鍊一下自己的英語水平嘛)
還有其他一些神奇的操作,以後用到了在總結吧

關於其他的一些容器類型

list,[],基本是加強版的vector
dict,{},基本是加強版的map
set,{},基本是加強版的set(注意,花括號之後創建出空的dict來雖然set也用花括號封裝)
元組,(),比較奇特的數據類型,不可變
要注意的是,對於list這種類型來說,a = [1, 2, 3]這樣的語句是引用,有點C++裏指針的味道在裏面。
舉個例子,

a = [1, 2, 3]
b = a
a[1] = "Hell no! 看着美麗的giogio立!"

那麼現在b[1]會是多少呢?
如果以C++的方式來思考,那顯然是2,你對a的操作和我的b有什麼關係嗎?但事實上,a和b都是對列表的引用,他們指向的是同一個列表,因此列表的改變導致了a[1]與b[1]均改變了!
所以b[1] == "Hell no! 看着美麗的giogio立!"爲true!
挺有意思的不是嗎
給未來的自己:如果忘了列表的相關操作回來看這篇文章的話,就思考一下下面的問題吧!

a = ["ザ・ワールド!", 1, 2, 3, 4, 5, 6, 7, 8, 9]
b = a * 3
a[0] = 0

那現在的b是什麼樣子的呢?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章