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是什么样子的呢?

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