Python入门二(序列及通用操作)

2.1 序列通用操作

  • 序列分类:
    • 可变序列list
    • 不可变序列tuple、str
  • 通用操作
    • 判断值是否属于序列
      • in/not in (成员运算):返回的是布尔值
    • 序列链接与重复 链接+、重复* 切片与步长
    • 列表的索引是从0开始的 lst【起始索引:终点索引:步长】
    • 序列通用函数
      • max()、min()、sum()、 len()列表元素的个数
      • count()计算值出现的次数
# 判断值是否属于序列:返回的是布尔值
​
lst = [1,2,3,4,5,6]
print(6 in lst)
print(10 in lst)
print(10 not in lst)

#输出结果
True
False
True
# 序列链接与重复

lst1 = [1,2,3]
lst2 = ["a","c","d"]

print(lst1+lst2,type(lst1+lst2))
print("-----------")
print(lst1*2,type(lst1*2))
print("-----------")
print(lst2*3,type(lst2*3))

#输出结果
[1, 2, 3, 'a', 'c', 'd'] <class 'list'>
-----------
[1, 2, 3, 1, 2, 3] <class 'list'>
-----------
['a', 'c', 'd', 'a', 'c', 'd', 'a', 'c', 'd'] <class 'list'>
# 切片与步长
# 索引:列表的索引是从0开始的
# lst[起始索引:终点索引:步长] 

lst = [1,2,3,4,5,6,7,8,9,0]

print(lst[0],lst[9],lst[-1])
print(lst[0:2])
print(lst[:6])
print(lst[4:])
print(lst[::2])
print(lst[2:6:2])

#输出结果
1 0 0
[1, 2]
[1, 2, 3, 4, 5, 6]
[5, 6, 7, 8, 9, 0]
[1, 3, 5, 7, 9]
[3, 5]
#序列通用函数

lst = [1,2,3,4,5]

print(len(lst))
print(max(lst),min(lst),sum(lst))
print((lst).count(4))

#输出结果
5
5 1 15
1
  • 小作业
  • ① x=[1,2,3,1,[1],[1,1]],请问x.count(1)为多少?2
  • ② x=[1,2,5,1,“1”,“1”],请问x.count(1)为多少?2
  • ③ y=[45,67,89,45,34,22,1],请问y.index(45)等于多少?0
  • ④ 创建一个列表,用type函数判断list[1]和list[2:5]的区别
#①
x=[1,2,3,1,[1],[1,1]]
print(x.count(1))

#②
x=[1,2,5,1,"1","1"]
print(x.count(1))

#③
y=[45,67,89,45,34,22,1]
print(y.index(45))

#④
lis = [0,12,2,3,4,5,6,7,8]
print(lis[1],type(lis[1]))
print("--------")
print(lis[2:5],type(lis[2:5]))

#输出结果
2
2
0
12 <class 'int'>
--------
[2, 3, 4] <class 'list'>

2.2 列表list常用操作

  • 列表的特征
    • 列表用 [ ] 标识,是 python 最通用的复合数据类型。
    • 序列是Python中最基本的数据结构,它支持字符,数字,字符串甚至可以包含列表(即嵌套)
    • 索引与切片:列表中值的切片也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。
    • 链接与重复:加号 + 是列表连接运算符,星号 * 是重复操作
    • 可改变列表中的值
  • 列表与生成器range()
    • range()是生成器,指向了一个范围
  • 常用操作
    • 添加元素
    • 删除元素
    • 插入元素
    • 复制
    • 排序
# 可嵌套
list1 = [1,2,"a","b",[1,2,3,"a"]]
print(list1,type(list1))
print("------")

#索引与切片
lst2 = [143,56,894,67,43]
print(lst2[0],lst2[4],lst2[-1])
print("------")

#链接与重复
lst3 = [1,2,3]
lst3 = lst3 * 3
print(lst3)
print("------")

#可改变列表中的值
lst5 = [100,101,102]
lst5[0] = 10
print(lst5)

#输出结果
[1, 2, 'a', 'b', [1, 2, 3, 'a']] <class 'list'>
------
143 43 43
------
[1, 2, 3, 1, 2, 3, 1, 2, 3]
------
[10, 101, 102]

小作业
① [1,2,3]和[“1”, “2”, “3”]什么区别
② 创建一个列表,包括3个人的数学成绩100,89,78
③ 创建一个列表,包括5个中国城市名称
④ 现有一个列表name = [‘小明’, ‘小红’] ,增加“团支书”的名字上去
⑤ 现有一个列表m=[3.1,5.5,4,3,77,8],用print分别输出第2、4个元素

#① 两者同为列表,但前者是由单个数字组成的列表;后者是由单个字符串组成的列表

#②
list2 = [100,89,78]

#③
list3 = ["上海","北京","广州","深圳","杭州"]

#④
name = ['小明', '小红'] 
name = ['小明', '小红'] + ["小芳"]
print(name)

#⑤
m=[3.1,5.5,4,3,77,8]
print(m[1],m[3])

#输出结果
['小明', '小红', '小芳']
5.5 3
# 列表与生成器

print(range(5),type(range(5)))  
# range()是生成器,指向了一个范围
# range(5)代表指向了0,1,2,3,4这几个值
# range(2,5)代表指向了2,3,4这几个值,注意这里不是使用:
# range(0,10,2)代表指向了0,2,4,6,8这几个值,最后的2代表步长

lst = list(range(5))
print(lst)
# 通过list()函数生成列表

#输出结果
range(0, 5) <class 'range'>
[0, 1, 2, 3, 4]

小作业
① range()生成的是不是都是整数?
② 创建一个range,用type()函数查看其类型
③ 哪种方式书写正确:x=range(5), x=range(4:7), x=range(4,8)
④ 创建一个range,用print输出其值,看一下输出结果
⑤ 用list()函数,将一个range范围变为列表
⑥ m=range(10),请问m[2],m[-1],m[5]是多少

#① 生成的都是整数,开始默认为0
#如果是float数,则会报错, 'float' object cannot be interpreted as an integer

#②
r2 = range(10)
print(r2,type(r2))

#③
x=range(5) #正确
print(x)

#x=range(4:7) #错误
print(x)

x=range(4,8) #正确
print(x)

#④
r4 = range(10)
print(r4)

#⑤
m=range(10)
print(m[2],"\n-----\n",m[-1],"\n-----\n",m[5])

#输出结果
range(0, 10) <class 'range'>
range(0, 5)
range(0, 5)
range(4, 8)
range(0, 10)
2 
-----
 9 
-----
 5

2.3 文本序列str常用操作

  • 字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串
  • 字符串也是序列:文本序列
  • 常用操作
    • 字符串引号:双引号单引号无区别,但文本中有引号的时候要相互交替使用
    • 转义字符
      • '," :分别输出单引号,双引号
      • \n:换行
      • 输出\,所以文件路径用“/”或者“\”
    • 序列通用功能
      • n/not in :判断是否存在
      • 文本连接
      • 文本复制
      • 索引、切片、步长
      • .index()方法
      • 计算字符串长度len()
    • 字符串常用功能
      • str.replace(old,new,count):修改字符串,count:更换几个
      • str.split(obj):拆分字符串,生成列表
      • str.join():连接字符串,对象为列表
      • str.startswith(“str”) 判断是否以“str”开头;str.endswith (“str”) 判断是否以“str”结尾
      • str.upper():全部大写
      • str.lower():全部小写
      • str.swapcase():大小写互换
      • str.capitalize():首字母大写
      • str.isnumeric():如果 string 只包含数字则返回 True,否则返回 False.
      • str.isalpha():如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
      • str.rstrip():删除字符末尾的空格
    • 格式化字符
      • 在字符串中插入变量
      • %s %z %f都是格式化字符串,s/i/f分别代表插入字符串的源数据类型:字符型/整型/浮点型
      • 更强大的格式化方法.format
# 字符串引号

str1 = "abc"
str2 = 'abc'
str3 = 'my name is "fatbird"'
# 双引号单引号无区别,但文本中有引号的时候要相互交替使用

str4 = '''hello! how are you?
          I`m fine, thank you.'''
# 需要多行字符串时候用三引号 ''' ''',""" """
# 转义字符:\

print('\'', '\"')  # \',\" :分别输出单引号,双引号
print('hello\nhow do you do?')  # \n:换行
print('\\')  # 输出\,所以文件路径用“/”或者“\\”

#输出结果
' "
hello
how do you do?
\
# 序列通用功能

print('a' in 'abc')  # in/not in :判断是否存在
print('我很帅' + "没错")  # 文本连接
print('handsome '*4)  # 文本复制

st = 'abcdefg'
print(st[2],st[-1])
print(st[:2])
print(st[::2])
# 索引、切片、步长

print(st.index('g'))  # .index()方法
print('st长度为:',len(st))  # 计算字符串长度(思考这里能否把逗号换为"+")

#输出结果
True
我很帅没错
handsome handsome handsome handsome 
c g
ab
aceg
6
st长度为: 7
# 字符串常用功能

st = "i`m handsome!"
st2 = st.replace('handsome','ugly')
print(st)
print(st2)

st = 'hahaha'
st2 = st.replace('ha','he',2)
print(st2)
# str.replace(old,new,count):修改字符串,count:更换几个

st = "poi01,116.446238,39.940166"
lst = st.split(',')
print(lst)
# str.split(obj):拆分字符串,生成列表

lst = ['poi01', '116.446238', '39.940166']
m = '-'
st = m.join(lst)
print(st)
# str.join():连接字符串,对象为列表

st = 'abcdefg'
print(st.startswith('a'), st.endswith('f'))
# str.startswith(“str”)  判断是否以“str”开头;str.endswith (“str”)  判断是否以“str”结尾

st = 'aBDEAjc kLM'
print(st.upper())  # 全部大写
print(st.lower())  # 全部小写
print(st.swapcase())  # 大小写互换
print(st.capitalize())  # 首字母大写

st = '1234567'
print(st.isnumeric())  # 如果 string 只包含数字则返回 True,否则返回 False.

st = 'DNVAK'
print(st.isalpha())  # 如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False

st = 'avd   '
print(st.rstrip())  # 删除字符末尾的空格

#输出结果
i`m handsome!
i`m ugly!
heheha
['poi01', '116.446238', '39.940166']
poi01-116.446238-39.940166
True False
ABDEAJC KLM
abdeajc klm
AbdeaJC Klm
Abdeajc klm
True
True
avd
# 格式化字符:在字符串中插入变量

name = "FATBIRD"
truth = "%s is 好人" %name
print(truth)
# %s 表示我们这里要插入一个变量(字符串),%name代表这里我们插入name → 所以,两个%解决问题

x = 4   
y = "hehe"  
z = 4.2
print("this is %i" %x)
print("this is %s" %y)
print("this is %f" %z)
# %s的s有什么含义:%s %z %f都是格式化字符串,s/i/f分别代表插入字符串的源数据类型:字符型/整型/浮点型

#输出结果
FATBIRD is 好人
this is 4
this is hehe
this is 4.200000
# 格式化字符:数字格式化的那些坑

m = 3.1415926 
print("pi is %f"  %m)
print("pi is %.2f" %m)
# 我只想输出2位小数:%.2f,此处是四舍五入!

m = 10.6
print("pi is %i"  %m)
print("pi is %.0f" %m)
# 区别:%i 不四舍五入,直接切掉小数部分

m = 100 
print("have fun %+i"  %m)
print("have fun %.2f"  % -0.01)
# 显示正号,负号根据数字直接显示

m = 100 
print("have fun % i"  %m)
print("have fun % +i"  %m)
print("have fun % .2f"  %-0.01)
# 加空格,空格和正好只能显示一个

m = 123.123123123 
print("have fun %.2e"  %m)
print("have fun %.4E"  %m)
# 科学计数法 %e  %E

m1 = 123.123123123
m2 = 1.2
print("have fun %g"  %m1)
print("have fun %g"  %m2)
# 小数位数少的时候自动识别用浮点数,数据复杂的时候自动识别用科学计数法

#输出结果
pi is 3.141593
pi is 3.14
pi is 10
pi is 11
have fun +100
have fun -0.01
have fun  100
have fun +100
have fun -0.01
have fun 1.23e+02
have fun 1.2312E+02
have fun 123.123
have fun 1.2
# 更强大的格式化方法.format

print("User ID: {0}".format("root"))
print("{} 呵呵 {}".format("a","b"))
# {} 这里代表占位符,其中可以有数字也可以没有

print("{}{}{}".format('a','b','c'),'\n',
     "{0}{1}{2}{0}".format('a','b','c'),'\n')
#print("{}{}{}{}".format('a','b','c'))
# {}和{0}的区别:都是占位符,后者有了明确指定

print("我的工作是{work}".format(work = '设计'))
# 也可以用变量来指示

x="abc{}"
a = x.format("def")
print(a,x)
# .format()生成新的值吗??

print("{:f}".format(4.123),'\n',
 "{:.2f}".format(4.123),'\n',
 "{:e}".format(4.123),'\n',
 "{:.0f}".format(99.9),'\n',
 "{:%}".format(4.123),'\n',
 "{:d}".format(10))
 
#输出结果
User ID: root
a 呵呵 b
abc 
 abca 

我的工作是设计
abcdef abc{}
4.123000 
 4.12 
 4.123000e+00 
 100 
 412.300000% 
 10

小作业
① 三引号创建一个有换行的文本,print()函数输出
② 申明一个字符串变量,值为一个文件路径,注意操作习惯
③ 以下输出分别是多少:33+“22”; 33+int(“22”); “22” + str(55);
④ m=“a,b,c”,m.split()会输出什么结果?(不加",")
⑤ 再回想一下:.split和.join的输出分别是什么类型的数据
⑥ 如果我想打%怎么办?
⑦ 这样书写正确吗,为什么? print(“abc%s”) % “nn”
⑧ 这样书写正确吗,为什么? print(245%f % 123)
⑨ “我的工作是…我喜欢…” 把…替换成正确的内容

#① 
lst1 = '''hello world 
我喜欢python
'''
print(lst1)

#②输出\,所以文件路径用“/”或者“\\”
file1 = "/python"
file2 = "\\python"
print(file1,"\n",file2)

#③链接
#a1 = 33+"22"  #出错unsupported operand type(s) for +: 'int' and 'str'
a2 = 33+int("22")
a3 = "22" + str(55)
#print("a1:",a1)
print("a2:",a2)
print("a3:",a3)

#④
m="a,b,c"
print(m.split(","))
print(m.split())

#⑤str.split(obj):是从字符串到列表
#str.join():是从列表到字符串
st = "a,b,c"
lst = st.split(',')
print(lst)
# str.split(obj):拆分字符串,生成列表

lst1 = ["a","b","c"]
m1 = '-'
st1 = m1.join(lst1)
print(st1,type(st1))

lst2 = "a","b","c"
m2 = '-'
st2 = m2.join(lst2)
print(st2,type(st2))

lst3 = "a,b,c"
m3 = '-'
st3 = m3.join(lst3)
print(st3,type(st3))
# str.join():连接字符串,对象为列表

#⑥
print("a的百分数为:%.2f" %2.453,"%")

#⑦
#print("abc%s") % "nn"
#修改为
print("abc%s" % "nn") 

#⑧
#print(245%f % 123)
#修改为
print("245%f" % 123) 

#⑨我的工作是…我喜欢…
print("我的工作是{0}我喜欢{0}".format("数据分析"))
print("我的工作是{work}我喜欢{work}".format(work = "分析"))

#输出结果
hello world 
我喜欢python

/python 
 \python
a2: 55
a3: 2255
['a', 'b', 'c']
['a,b,c']
['a', 'b', 'c']
a-b-c <class 'str'>
a-b-c <class 'str'>
a-,-b-,-c <class 'str'>
a的百分数为:2.45 %
abcnn
245123.000000
我的工作是数据分析我喜欢数据分析
我的工作是分析我喜欢分析
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值