python - 03【列表/元组/字符串】

目录

一、列表

1.1、列表的定义

1.2、遍历列表

1.3、增删改查

二、元组

三、string字符串

3.1、定义变量s,存储类型为字符串

3.2、字符串的下标

3.3、字符串的切片

3.4、字符串常见的操作

四、字符串格式化


一、列表

1.1、列表的定义

代码:

classNames = ["xiaoming","xiaohong","xiaodong"]
print[classNames[0]] #获取元素1
print[classNames[1]] #获取元素2
print[classNames[2]] #获取元素3

1.2、遍历列表

代码:

classNames = ["xiaoming","xiaohong","xiaodong"]

#for循环遍历
for name in classNames:
    print(name)

#while循环遍历
length = len(classNames)
i = 0
while i < length:
    print(classNames[i])
    i+=1

输出结果:

1.3、增删改查

classNames = ["xiaoming","xiaohong","xiaodong"]
'''
添加元素
'''
classNames.append("xiaowang") #向后添加元素
names = ["leon","ben","tina"] #定义新列表
classNames.extend(names) #将names列表添加到classNames列表中
classNames.insert(2,"susu") #指定位置前插入元素
'''
修改元素
'''
classNames[2] = "lala" #修改元素
'''
查询元素
'''
findName = "haha"
if findName in classNames : #使用in和not in 查询
    print("存在此人")
else :
    print("没有此人")
result = classNames.index("lala" ,0,5) #index查询
print(result)
result = classNames.count("xiaodong") #count查询
print(result)

movieName = ['加勒比海盗','骇客帝国','第一滴血','指环王','霍比特人','速度与激情']
'''
删除元素
'''
del movieName[2] #通过下标删除
movieName.pop() #从后往前删
movieName.remove("指环王") #指定名字删除

 

1.4、列表嵌套

classNames = [["xm","xh"],
                ["leon","tine"],
                ["A","B","C"]]

二、元组

元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号,列表使用方括号。

代码:

tuple = ("hello",100,3.18) #定义元组
print(tuple[1]) #获取元素

一旦进行修改或删除就会报异常。

三、string字符串

3.1、定义变量s,存储类型为字符串

s = "hello python"
#或者
s = 'hello python'

使用“”或‘’都可以定义字符串

3.2、字符串的下标

字符串的下标即每个字符在整串字符串的位置,例如:字符串‘data’中,字符a位于第3位。为什么不是第4位呢?这是因为下标都是从0开始记起

代码:

s = 'data'

print(s[0]) #输出字符d
print(s[1]) #输出字符a
print(s[2]) #输出字符t
print(s[3]) #输出字符a

输出结果:

当然,如果你想获取s[4]这个位置上不存在的字符时,python会报给你一个string index out of range异常。

3.3、字符串的切片

切片指对某一段字符进行截取,例如:字符串‘abcdefg’,我要截取c-e的位置,这个就是切片。切片不仅存在于字符串中,列表、元组都支持切片操作。

切片语法:【起始:结束:长度】,截取是通过下标来进行的,值得注意的是结束的下标不包含当前位。

代码:

​s = "abcdefg"
print(s[0:5]) #截取下标为0~5的元素

输出结果:

由此可以看出下标为5的字符,也就是"f"并没有被输出,因为不包含当前位,数学上似乎叫左闭右开区间。还有其他的一些字符截取的方式。

代码:

s = "abcdefg"
print(s[1:-1]) #取下标为1到下标为倒数第2位的区间
print(s[1:5:2]) #取下标为1~4的区间,取2位
print(s[:3]) #从下标0开始到下标2的区间
print(s[::2]) #下标按照0,2,4,6,8...的取,似乎是递增取值

输出结果:

反转字符串“abcdefg”

代码:

s = "abcdefg"
i = -1
rever = ""
while i >= -s.__len__():
    rever += s[i]
    i -= 1
print(rever)

输出结果:

3.4、字符串常见的操作

  • find、index、upper等很多方法,太多不再此处列举,等用到的时候再去查询。具体可以找找python的文档看看就会使用了。
  • 下面给出部分字符串操作的代码:
  • movieNames = '加勒比海盗骇客帝国第一滴血指环王霍比特人速度与激情'
    #find查询字符串是否存在,存在返回第一个字符的下标,不存在返回-1
    movieNames.find("第一滴血")
    movieNames.find("第一滴血",0,5)
    #index的用法和find类似,只不过index查不到会报异常而不是返回-1
    movieNames.index("第一滴血")
    movieNames.index("第一滴血",0,20)
    #count是查询字符串出现的次数
    movieNames.count("一")
    movieNames.count("一",0,20)
    #replace是替换字符串
    movieNames.replace("一","二")
    movieNames.replace("一","二",1) #如果指定替换次数,则不会超过指定的次数
    ...

     

四、字符串格式化

字符串格式化是为了简化程序,例如:

pirnt("我今年10岁")
pirnt("我今年11岁")
pirnt("我今年12岁")
....

使用了字符串格式化后,代码如下:

age = 10
while age <= 20 :
    print("我今年%d岁" % age)
    age += 1

 

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