05-数字和列表

数字和列表

  • 数字相关类型
# python中数字相关类型有四个:int、float、bool、complex
# 1.int(整型)
"""
1) 表示的时候:数字直接写()
2) 转换:int(数据)
        不是所有的数据都能转换成整数,只有浮点数、布尔、字符串(部分)
"""
# 浮点数转换成整数:直接去掉小数部分,保留整数部分
print(int(12.9)) # 12
print(int(-12.9)) # -12

# 布尔转整型
print(int(True)) # 1
print(int(False)) # 0

# 字符串转整型: 去掉引号后本身就是一个整数的字符串才能转换成整型0
# print(int('abc')) 报错
print(int('789')) # 789
# print(int('12.5')) 报错

# 2.float(浮点数):所有小数对应的类型
"""
1) 表示:直接表示,支持科学计数法
2) 转换:float(数据)
        不是所有数据都可以转换成浮点型,只有整数、布尔和部分字符串
"""
print(float(10)) # 10.0
print(float(123)) # 123.0
print(float(True)) # 1.0

# 字符串转浮点型 - 去掉引号后本身是有效数字的字符串都可以转换成浮点型
# print(float('abc')) 报错
print(float('123')) # 123.0
print(float('0.12')) # 0.12
print(float('3e4')) # 30000.0

# 3.bool(布尔)
"""
1) 表示:直接写 - True、False
2) 转换:bool(数据)
        所有的数据都可以转换成布尔;零值和空值会转换成False,其他的都是True
"""
print(bool(-123)) # True
print(bool(0)) # False
print(bool(0.0)) # False
print(bool(''), bool("")) # False False
print(bool([])) # False

print(True + 1) # 2
print(False*10) # 0

# 4.complex(复数):由实部和虚部组成的数
# 虚数单位:j
# 虚部的1不能省
# 直接支持复数的运算
num1 = 10 + 20j
print(1j**2) # (-1+0j)

num2 = 3 - 5j
print(num1 + num2) # (13+15j)
print(num1 * num2) # (130+10j)
  • 列表
# 1.什么是列表(list)
"""
列表是容器型数据类型,将[]作为容器的标志,里面多个元素用逗号隔开
例如:[元素1,元素2,元素3,...]
元素:列表中的元素可以是任何类型的数据;同一个列表中的元素的类型可以不同
作为容器的特点:可变的(指的是元素的个数、元素的值和元素的顺序可变);
             有序的(元素有表示序列的编号)
"""
a = [] # a 是一个空列表
b = [100, 200, True, 'abc']
c = [100, 200, ['abc', 123]]
d = [100, 12,5, 'abc', [1, 2], (10, 20), {'name':'yu', 'age':18}, {1, 5}, lambda x: x**2]
print(type(d)) # <class 'list'>
  • 获取列表元素
# 1.获取单个元素
"""
语法:列表[下标] - 获取指定下标对应的元素
说明:列表 - 任何结果是列表的表达式(具体的列表数据、保存列表数据的变量)
     [] - 固定写法
     下标 - 又叫索引;它是元素在容器中的位置标志(元素在容器中的顺序值)
           下标值得范围有两种:
           1) 从0开始不断加1的下标值,其中0表示第一个、1表示第二个...
           2) 从-1开始不断减1的下标值,其中-1表示倒数第一个、-2表示倒数第二个、...

"""
list1 = [10, 20, 30, 'abc']

print(list1[1], list1[-3])
print(list1[-1], list1[3])

# 2.获取部分元素(列表切片) - 同时获取列表中的多个元素
"""
1) 语法:列表[开始下标:结束下标:步长]
2) 规则:
a.如果步长为正,开始下标到结束下标 - 从前往后,开始下标对应的元素能取到,结束下标对应的元素取不到
b.如果步长为负,开始下标到结束下标 - 从后往前,开始下标对应的元素能取到,结束下标对应的元素取不到
"""
movies = ['阿甘正传', '肖申克的救赎', '当幸福来敲门', '霸王别姬', '花样年华', '人在囧途']
print(movies[1:5:1]) # ['肖申克的救赎', '当幸福来敲门', '霸王别姬', '花样年华']
print(movies[1:-1:1]) # ['肖申克的救赎', '当幸福来敲门', '霸王别姬', '花样年华']
print(movies[5:1:1]) # []
print(movies[5:1:-1]) # ['人在囧途', '花样年华', '霸王别姬', '当幸福来敲门']
print(movies[5:1:-2]) # ['人在囧途', '霸王别姬']

# 1)省略步长:列表[开始下标:结束下标]
# 省略步长相当于步长为1:列表[开始下标:结束下标] == 列表[开始下标:结束下标:1]
names = ['海贼王', '火影', '死神', '妖精的尾巴', '柯南', '犬夜叉', '进击的巨人', '一人之下']
print(names[1:-2])

# 2)省略开始下标:列表[:结束下标:步长]/列表[:结束下标]
"""
如果步长为正,省略开始下标表示从第一个元素开始往后取,取到结束下标对应的位置
如果步长为负,省略开始下标表示从最后一个元素开始往前取
"""
print(names[:-2]) # ['海贼王', '火影', '死神', '妖精的尾巴', '柯南', '犬夜叉']
print(names[:5:2]) # ['海贼王', '死神', '柯南']
print(names[:-3:-1]) # ['一人之下', '进击的巨人']

# 3)省略结束下标:列表[开始下标::步长]/列表[开始下标:]
"""
如果步长为正,省略结束下标表示从开始下标取到最后一个元素
如果步长为负,省略结束下标表示从开始下标取到第一个元素
"""
print(names[2:]) # ['死神', '妖精的尾巴', '柯南', '犬夜叉', '进击的巨人', '一人之下']
print(names[-3::-1]) # ['犬夜叉', '柯南', '妖精的尾巴', '死神', '火影', '海贼王']
print(names[4::2]) # ['柯南', '进击的巨人']
print(names[-2::-3]) # ['进击的巨人', '妖精的尾巴', '海贼王']

# 4)同时省略开始和结束下标:列表[::步长]/列表[:]
# 开始和结束下标都省,那么整个选择范围就是原列表
print(names[::-1]) # ['一人之下', '进击的巨人', '犬夜叉', '柯南', '妖精的尾巴', '死神', '火影', '海贼王']
print(names[::-2]) # ['一人之下', '犬夜叉', '妖精的尾巴', '火影']
print(names[:]) # ['海贼王', '火影', '死神', '妖精的尾巴', '柯南', '犬夜叉', '进击的巨人', '一人之下']

# 3.遍历(一个一个的把所有元素取出来)
"""
方法一:直接遍历出列表中的元素
for 元素 in 列表:
    循环体
(变量取到的就是列表中的元素)

方法二:通过遍历获取所有元素的下标来遍历元素
for 下标 in range(列表长度):
    列表[下标]
    
方法三:
for 下标, 元素 in enumerate(列表):
    循环体
"""
games = ['斗地主', '欢乐麻将', '开心消消乐', '三国杀', '王者荣耀', '英雄联盟']
for item in games:
    print('item:',item)

# len(列表):获取列表中元素的个数
for index in range(len(games)):
    print('元素:', games[index])

for index, item in enumerate(games):
    print('index:', index,'item:', item)

# 练习:用一个列表保存一个班是个学生的成绩
# 计算10个学生的总成绩
# 计算10个学生的平均成绩
# 统计不及格学生的人数
# 获取10个学生中最高成绩的值

score = [68, 45, 78, 63, 23, 80, 96, 76, 83, 56]
sum = 0
for x in score:
    sum += x
print('总和:', sum)
print('平均:', sum/10)

n = 0
for x in score:
    if x < 60:
        n += 1
print('不及格的人数:', n)

m = score[0]
for x in score:
    if x > m:
        m = x
print('最高分:', m)
  • 元素的增删改
# 1.增 - 添加元素
# 1) 列表.append(元素) - 在列表的最后添加指定元素
names = ['余婷', '张瑞燕', '迪丽热巴', '古力娜扎']
print(names)

names.append('蔡徐坤')
print(names)

# 2) 列表.insert(下标,元素) - 在指定下标对应的元素前插入指定元素
names.insert(2, '杨幂')
print(names)

names.insert(0, '胡歌')
print(names)

names.insert(-1, '彭于晏')
print(names)

# 2.删 - 删除元素
# 1) del 列表[下标] - 删除列表中指定下标对应的元素
del names[3]
print(names)

# del names 删除整个列表

# 2) 列表.remove(元素)  - 删除列表中指定的元素
names.remove('余婷')
print(names)

# 3)
# 列表.pop() - 取出列表中最后一个元素,并返回
# 列表.pop(下标) - 取出列表中指定下标对应的元素,并返回
del_name = names.pop()
print(names, del_name)

# 3.改 - 修改元素的值
# 语法:列表[下标] = 新元素 - 修改指定下标对应的元素(下标不能越界)
teleplays = ['琅琊榜', '亮剑', '庆余年', '爱情公寓', '人民的名义', '甄嬛传', '请回答1988']
teleplays[3] = '爱情公寓4'
print(teleplays)

# scores = [10, 78, 90, 8, 77, 65, 100]   ->  ['不及格', 78, 90, '不及格', 77, 65, 100]
scores = [10, 78, 90, 8, 77, 65, 100]
for x in range(len(scores)):
    if scores[x] < 60:
        scores[x] = '不及格'
print(scores)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值