day5-数字与列表

本文详细介绍了Python中的数字类型(int、float、bool、complex)及其转换方法,包括浮点数的截断、布尔值与整数的相互转换以及复数的运算。此外,还讲解了列表(list)的基础知识,如列表的定义、元素的获取、遍历、增删改等操作。示例代码展示了如何添加、删除和修改列表元素,以及如何通过遍历删除低于60分的分数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

day5-数字与列表

1.数字

1.int - 所有整数对应的类型

  1. 表示:数字直接写
  2. 转换:int(数据)
    不是所有的数据都可以转换成整数,只有浮点数、布尔、部分字符串
  • 浮点数转换成整数:直接去掉小数部分,保存整数
print(int(12.7))
print(int(-1.9))
  • 布尔转整数
print(int(True))
print(int(False))
  • 字符串转整数 - 去掉引号后本身就是一个整数的字符串才能转换
print(int('asd'))   # 报错
print(int('1234'))
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('1.2'))   # 1.2
print(float('3e4'))   # 30000.0
  • 3.bool(布尔)
  1. 表示:直接写 - True、False
  2. 转换:bool(数据)
    所有的数据都可以转换成布尔;零值和空值会转换成False,其他的都是True
print(bool(-123))  # True
print(bool(0))   # False
print(bool(''))  # False
print(bool([]))  # False

print(True + 1)  # 2
print(False*10)  # 0
  • 4.*comples(复数) - 由实部和虚部组成的数

1)虚部单位是:j
2)虚部的1不能省
3)直接支持复数的运算

num1 = 10 + 20j
print(1j**2)  # (-1+0j)

num2 = 3 - 5j
print(num1 + num2)   # 13 + 15j
print(num1 * num2)   # 130 + 10j

2.列表

1.什么是列表(list)

列表是容器型数据类型,将[]作为容器的标志,里面多个元素用逗号隔开:[元素1,元素2,元素3,…]
元素:列表中的元素可以是任何类型的数据;同一个列表中的元素的类型可以不同
作为容器的特点:可变的(指的是元素的个数、元素的值和元素的顺序可变);有序的(元素有表示顺序的编号)

[]  # a是一个空列表
b = [100, 200, True, 'abc']
c = [100, 200, [1, 2]]

3.获取列表元素

  • 1.获取单个元素

语法:列表[下标] - 获取指定下标对应的元素
说明:列表 - 任何结果是列表的表达式(具体的列表数据、保存列表数据的变量、…)
[] - 固定写法
下标 - 又叫索引;它在元素在容器中的位置标志(元素在容器的顺序值)
下标值得范围有两种:
1)从0开始不断加1的下标值,其中0表示第一个、1表示第二个、…
2)从-1开始不断减1的下标值,其中-1表示倒数第一个,-2表示倒数第二个、…
注意:下标不能越界

list1 = [10, 20, 30, 'abc']
print(list1[1], list1[-3])   # 获取列表list1中的20
  • 2.获取部分元素(列表切片) - 同时获取列表中的多个元素

语法:列表[开始下标:结束下标:步长]
规则:
a.如果步长为正,表示从前往后取(开始下标到结束下标),开始下标对应的元素能取到,结束下标对应的元素取不到

1)省略步长:列表[开始下标:结束下标]

省略步长久相当于步长为1:列表[开始下标:结束下标] == 列表[开始下标:结束下标:1]

names = ['海贼王', '火影忍者', '死神', '妖精的尾巴', '柯南', '犬夜叉', '进击的巨人', '一人之下']
print(names[1:-2])

2)省略开始下标:列表[:结束下标:步长] / 列表[:结束下标]

如果步长为正,省略开始下标表示从第一个元素开始往后取,取到结束下标对应的位置
如果步长为负,省略开始下标表示从最后一个元素开始往前取,取到结束下标对应的位置

3)省略结束下标:列表[开始下标:步长] /列表[开始下标:]

如果步长为正,省略结束下标,从开始下标取到最后一个元素
如果步长为负,省略结束下标,从开始下标取到第一个元素

4)同时省略开始下标和结束下标:列表[::步长] /列表[:]

开始下标和结束下标都省,那么整个选择范围就是原列表

print(names[::-1])
print(names[::-2])
  • 3.遍历(一个一个的把所有元素取出来)

for 变量 in 列表:
循环体
(变量取到的就是列表中的元素)

方法二:通过遍历获取所有元素的下标来遍历元素
for 变量 in range(列表长度):
列表[变量]

  1. 直接获取元素
games = ['斗地主', '欢乐麻将', '开心消消乐', '三国杀', '王者荣耀']
for x in games:
    print('x:', x)
  1. 直接获取下标,通过下标获取元素(掌握)

len(列表) - 获取列表中元素的个数

for index in range(len(games)):
    print('下标:', index, '元素:', games[index])
  1. 同时获取下标和元素
for index, item in enumerate(games):
    print('下标', index, '元素', item)

4.元素的增删改

  • 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 列表[下标] - 删除列表中指定下标对应的元素(下标不能越界)
names = ['胡歌', '余婷', '张瑞燕', '杨幂', '迪丽热巴', '古力娜扎', '彭于晏', '蔡徐坤']
del names[3]
print(names)
  1. 列表.remove(元素) - 删除列表中指定的元素
names = ['胡歌', '余婷', '张瑞燕', '杨幂', '迪丽热巴', '古力娜扎', '彭于晏', '蔡徐坤']
names.remove('蔡徐坤')
print(names)
  1. 列表.pop() - 取出列表中最后一个元素

列表.pop(下标) - 取出列表中指定下标对应的元素,并返回

names = ['胡歌', '余婷', '张瑞燕', '杨幂', '迪丽热巴', '古力娜扎', '彭于晏', '蔡徐坤']
del_name = names.pop()
print(names, del_name)

del_name = names.pop(-2)
print(names, del_name)
  • 3.改 - 修改元素的值

语法:列表[下标] - 新元素 - 修改指定下标对应的元素(下标不能越界)

teleplays = ['琅琊榜', '亮剑', '庆余年', '爱情公寓', '人民的名义', '甄嬛传']
teleplays[3] = '爱情公寓4'
print(teleplays)
# 作业1:用一个列表保存学生的分数,删除列表中所有低于60分的成绩
# scores = [90, 45, 52, 10, 89, 67, 55, 32, 69, 100]
# 最终结果: [90, 89, 67, 69, 100]
scores = [90, 45, 52, 10, 89, 67, 55, 32, 69, 100]
for index, item in enumerate(scores):
    print('成绩:', item)
    if item < 60:
        del scores[index]
print(scores)
for index, item in enumerate(scores):
    print('成绩:', item)
    if item < 60:
        del scores[index]
print(scores)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值