一:字符串
str="123456789"
print(str)
print(str[0])
print("-----------------------")
print(str[2:5])#包含第三个字符但是不包含第六个
print(str[0:-1]) #输出第一个到倒数第二个的所有字符
print(str[2:])#有无空格
print(str[2:]+"无空格")#书上无空格
print(str[2: ]+"有空格")
print("-----------------------")
print(str[1:5:2])# 输出从第二个开始到第五个且每隔一个的字符(步长为2)
print(str[::3])
print(str[0:-1:2])
print("-----------------------")
print(str*2)
print(str+"您好")
print("-----------------------")
print("hello\nrunoob")
print(r"hello\nrunoob")
print("-----------------------")
print(str[-1])
print(str[-9])
运行结果
123456789
1
-----------------------
345
12345678
3456789
3456789无空格
3456789有空格
-----------------------
24
147
1357
-----------------------
123456789123456789
123456789您好
-----------------------
hello
runoob
hello\nrunoob
-----------------------
9
1
二:元组
- 元组写在小括号 () 里,元素之间用逗号隔开。
- 元组的元素不能修改。
- 元组中的元素类型也可以不相同。
tuple=("abcd",786,2.23,"runoob",70.2)
tinytuple=(123,"runoob")
print(tuple)
print(tuple[0])
print("------------------------")
print(tuple[1:3])
print(tuple[2:])
print(tuple[1:-1])
print(tuple[0:4:2])
print("------------------------")
print(tinytuple*2)
print(tuple+tinytuple)
运行结果:
('abcd', 786, 2.23, 'runoob', 70.2)//这里字符串是单引号,代码原文写的是双引号(书上为单,自己习惯为双)
abcd
------------------------
(786, 2.23)
(2.23, 'runoob', 70.2)
(786, 2.23, 'runoob')
('abcd', 2.23)
------------------------
(123, 'runoob', 123, 'runoob')
('abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob')
另需注意若在原文中修改tuple[0]=1,将出现下列错误(故元组不可以修改元素)
构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
tuple1=()# 空元组
print(tuple1)
tuple2=(2,)# 一个元素,需要在元素后添加逗号
print(tuple2)
tuple3=(2)#测试不加逗号,输出什么
print(tuple3)
运行结果:
()
(2,)
2
三:列表
- 列表写在小括号 []里,元素之间用逗号隔开。
- 列表的元素可以修改。
- 列表中的元素类型也可以不相同。
list = ["abcd",786,2.23,"runoob",70.2]
tinylist = [123,"runoob"]
print(list)
print(list[0])
print("----------------------------")
print(list[1:3])
print(list[2:])
print(list[0:-1])
print(list[0:4:2])
print("----------------------------")
print(tinylist*2)
print(list+tinylist)
运行结果:
['abcd', 786, 2.23, 'runoob', 70.2]
abcd
----------------------------
[786, 2.23]
[2.23, 'runoob', 70.2]
['abcd', 786, 2.23, 'runoob']
['abcd', 2.23]
----------------------------
[123, 'runoob', 123, 'runoob']
['abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob']
修改元素
a=[1,2,3,4,5,6]#list可换成a,不要换个称呼就不知道是列表了
a[0]=9
a[2:5]=[13,14,15]
print(a)
print("----------------------------")
a[2:5]=[]#中间没空格
print(a)
print("----------------------------")
a[1:2]=[ ]#中间有空格 上面结果是9,2,6,将第二个元素改为无了,可见有没有空格效果一样
print(a)
运行结果:
[9, 2, 13, 14, 15, 6]
----------------------------
[9, 2, 6]
----------------------------
[9, 6]
(1)如果第三个参数为负数表示逆向读取,举例列表:
list = [1,2,3,4]
print(list[-1::-1])
# 第一个参数 -1 表示最后一个元素
# 第二个参数为空,表示移动到列表末尾
# 第三个参数为步长,-1 表示逆向
运行结果:
[4, 3, 2, 1]
(2)同样我们尝试元组是否可以逆读
tuple = (1,2,3,4)
print(tuple[-1::-1])
运行结果(证明元组也可以实现逆转):
(4, 3, 2, 1)
(3)那字符串如何实现逆转呢
(i)字符串里都是数字
str="1234"
print(str[-1::-1])
运行结果:
4321
(ii)如果字符串有空格会是什么样
str1="1 2 3 4"
print(str1[-1::-1])
运行结果:
4 3 2 1
(iii)这个时候我们并没有感觉不对劲,但是如果字符串里都是英文单词呢
str2="I love you"
print(str2[-1::-1])
运行结果:
uoy evol I
(iv)这里更能直观的看出是一个一个元素实现逆转,那怎么实现一个一个单词为单位逆转呢
str2="I love you"
inputwords = str2.split(" ")# 通过空格将字符串分隔符,把各个单词分隔为列表
inputwords=inputwords[-1::-1]
output=' '.join(inputwords)# 重新组合字符串
print(output)
运行结果:
you love I
调用函数型实现逆转:
def reverseWords(input):
inputWords = input.split(" ")
inputWords = inputWords[-1::-1]
output = ' '.join(inputWords)
return output
if __name__ == "__main__":
str2 = "I love you"
rw = reverseWords(str2)
print(rw)
运行结果:
you love I