数据分析 --- day05python基础

一、进制与进制转换

计算机常用进制: 十进制、 二进制、 十六进制、 八进制

1.十进制

基数1、2、3、4、5、6、7、8、9
进位逢10进1
表示方式直接写
转换print(其他进制的数)

示例

num1 = 39

2.二进制

基数0、1 (01、001、101、110001)
进位逢2进1 0+1 - 1 ;1+1 - 10
表示方式在二进制数前加’0b’或者’0B’
转换bin(其他进制数)

示例

num3 = 0b100
print(num3)     # 4
print(type(num3))       # <class 'int'>

print(bin(100))         # 0b1100100

3.八进制

基数0、1、2、3、4、5、6、7 (67、270)
进位逢8进1
表示方式在八进制数前加’0o’或者’0O’
转换oct(其他进制数)

示例

num5 = 0o75     # 55
print(num5)

print(oct(199))     # 0o307
print(oct(0b11001001))      # 0o311

4.十六进制

基数0、1、2、3、4、5、6、7、8、9、a/A、b/B、c/C、d/D、e/E、f/F (aaa、a0f、4e00、1990)
进位逢16进1
表示方式在16进制数前加0x、0X
转换hex(其他进制数)

示例

num6 = 0xaaf
print(num6)         # 2735
num2 = 0x100
print(num2 * 2)     # 512

print(hex(100))     # 0x64

二、认识列表

1.列表的作用

作用: 同时出来多个数据的时候,列表的存在可以让问题变得简单

示例

scores = [89,92,67,90,100,45,55,90,61,78]
print('平均分',sum(scores)/len(scores))

2.认识列表(list)

1)列表:
列表是python自带的类型,属于容器型数据类型(可以同时保存多个数据);
将[]作为容器标志,里面多个元素(容器中每个独立的数据)用逗号隔开: [数据1,数据2,数据3,…]

2)特点:
列表是可变的(可变指的容器中元素的个数可变和运输的值可变) - 支持增删改操作
列表是有序的 - 支持下标(索引)操作

3)列表对元素的要求
任何类型的数据都可以作为列表元素
同一个列表可以放不同类型数据。

注意:空列表 - 列表中一个元素都没有

示例:

list1 = []
  • 列表表示示例:
list2 = [10, 34, 109]        # 3个元素

list3 = [10, 20, [30, 40]]      # 列表中可以保存列表,3个元素

list4 = [10, 'abc', True, None, [1, 2], (10, 20), {11, 22}, {'a':100}]      # 8个元素
  • 有序序列顺序影响结果(字符串和列表有序)
print([10,20,30] == [20,10,30])     #       False
print('abc' == 'acb')       #       False

集合是无序的

print({10,20,30} == {20,10,30})     # True

三、列表查操作

查 - 获取列表中的元素

1.查单个 - 获取列表中的一个元素

1)语法:

列表[下标]     -     获取列表中指定下标中的元素

2)说明:

内容说明
列表任何结果是列表的表达式(具体的一个列表、保存列表的变量等)
[ ]固定写法
下标又叫索引;下标指的是列表中的元素在列表中的位置信息;每个元素的下标值有两个: a.从前往后从0开始不断增加的下标值;b.从后往前从-1开始不断减少的下标值

注意 : 下标不能越界

nums = [50, 78, 99, 30]
print(nums[0], nums[-4])       # 取50
print(nums[2], nums[-2])       # 取99

如果下标越界会显示:

print(nums[4])        -       报错(IndexError: list index out of range)

2.切片 - 获取列表中的部分元素

1)切片的完整语法:

列表[开始下标:结束下标:步长]
  • 怎么确定切片结果

    步骤说明
    看切片结果是否为[] -> 看从开始下标位置到结束下标对应的位置的方向和步长对应的方向是否一致(步长为正: 表示从前往后取 ;步长为负: 表示从后往前取)
    确定有效范围 -> 开始下标对应元素能取到,结束下标对应的元素取不到
    通过步长在有效范围内获取元素:绝对值为1就一个一个的取;绝对值为2,就取1个跳过1个再取1个再跳过1个(以此类推)
  • 根据目标数据写切片的代码:

    步骤说明
    确定开始下标 - 想要获取的所有元素中的第一个元素的下标
    确定结束下标 - 想要获取的所有元素中的最后一个元素前边(从后往前取)或者后面(从前往后取)的下标
    确定步长

以下names的列表示例都为: names = [‘西施’,‘孙尚香’,‘刘备’,‘马可波罗’,‘赵云’,‘孙膑’,‘后裔’,‘鲁班’,‘百里守约’]

print(names[1:5:2])             # ['孙尚香', '马可波罗']
print(names[-1:5:1])            # []
print(names[2:7:-2])            # []
print(names[-2:-7:-2])          # ['鲁班', '孙膑', '马可波罗']
print(names[-1:0:-3])           # ['百里守约', '孙膑', '刘备']
print('-----------------------------分割线-----------------------------')
print(names[-1:3:1])            # []
print(names[4:-2:2])            # ['赵云','后裔']
print(names[-3:0:3])            # []
print(names[-2:0:-2])           # ['鲁班','孙膑','马可波罗','孙尚香']
print('-----------------------------分割线-----------------------------')

打印:‘孙尚香’,‘刘备’,‘马可波罗’

print(names[1:4])

打印: ‘刘备’,‘赵云’

print(names[2:-4:2])

打印: ‘鲁班’,‘赵云’,‘孙尚香’

print(names[-2:0:-3])

打印: [‘孙尚香’,‘刘备’,‘马可波罗’,‘赵云’,‘孙膑’,‘后裔’,‘鲁班’]

print(names[1:-1])

打印: [‘百里守约’、‘鲁班’、‘后羿’]

print(names[-1:-4:-1])

打印: [‘刘备’,‘赵云’,‘后羿’]

print(names[2:-2:2])

打印: [‘后羿’、‘刘备’]

print(names[-3:1:-4])

2)切片的省略语法

列表[开始下标:结束下标:步长]

a.省略步长 - 相当于步长是1
列表[开始下标:结束下标]

b.省略开始下标 - 从头开始(与步长的正负有关,如果步长为正,从第一个元素开始;如果步长为负,从最后一个元素开始)
列表[:结束下标:步长]

c.省略开始下标 - 如果步长为正,从开始下标开始一直取到最后一个元素;如果步长为负,从开始下标开始往后一直取到最后一个元素
列表[开始下标::步长]

下边代码示例

tvs = ['一人之下','海贼王','名侦探柯南','甄嬛传','越狱','灵笼','绝密毒师','苍穹之下'] 
print(tvs[1:-1])
print(tvs[-2:1])        # []
print(tvs[:])

print(tvs[:-3:2])       # ['一人之下', '名侦探柯南', '越狱']
print(tvs[:3:-1])       # ['苍穹之下', '绝密毒师', '灵笼', '越狱']
print(tvs[:5])          # ['一人之下', '海贼王', '名侦探柯南', '甄嬛传', '越狱']

print(tvs[4::2])    # ['越狱', '绝密毒师']
print(tvs[-3::-1])  # ['灵笼', '越狱', '甄嬛传', '名侦探柯南', '海贼王', '一人之下']
print(tvs[5:])      # ['灵笼', '绝密毒师', '苍穹之下']

print(tvs[::-2])    # ['苍穹之下', '灵笼', '甄嬛传', '海贼王']


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值