浅谈Python中的数字和列表

    技术2022-07-11  106

    数字类型

    python中的数字类型: int(整型)、float(浮点型)、bool(布尔)、complex(复数)

    1. int(整型)

    所有整数对应的类型。(注意:在python2.x有long)

    2.float(浮点型)

    所有的小数对应的类型, 支持科学计数法

    3. bool(布尔)

    只有True和False两个值,其他 True 本质就是数字 1, False 本质是数字 0

    4.complex(复数)

    包含实部和虚部的数就是复数,对应的数据类型是 complex

    python 中表示复数的时候,虚数单位是 j; j前面如果是1,1不能省

    num1 = 10+2j num2 = 2 - 1j num3 = 20j print(type(num1), type(num2))

    python支持复数运算

    print(num1 + num2) print(num1 * num2)
    5. 数据类型转换

    python中所有数据类型的转换方式: 类型名(数据

    5.1整型: int(数据) - 将制定的数据转换成10进制的整数

    所有的数字类型对应的数据都可以转换成整型(复数不行),部分字符串也可以转换成整型

    对于字符串来说,去掉引号以后本身是合法的制定进制的整数对应的字符串才能转换成对应的整型

    print(int(12.5), int(-12.9)) # 12, -12 print(int(True), int(False)) # 1, 0 print(int('123')) # 123 print(int('+123'), int('-123')) # 123 -123

    5.2浮点型:float(数据)

    整型和布尔都可以转换成浮点型,部分字符串也可以转换成浮点型(去掉引号后本身就是一个合法的浮点型或者整型数据)

    print(float(10)) # 10.0 print(float(True)) # 1.0 print(float('100')) # 100.0 print(float('12.5')) # 12.5

    5.3布尔:bool(数据)

    所有类型的所有的数据都可以转换成布尔

    所有零值或者空值会转换成False,其他都是True

    列表基础

    容器型数据类型:可以同时保存多个数据的数据。常见的容器型数据类型有:列表、元组、字典、集合、字符串、迭代器、生成器

    什么是列表

    列表是容器型数据类型,将[]作为容器的标志,里面的多个数据(元素)用逗号隔开。比如: [120, 30, 40] 列表是可变的(列表中元素的个数和值可变);列表是有序的

    列表中的元素: 可是任何类型的数据;不同元素的类型可以不一样

    scores = [90, 89, 67, 90, 56, 88] print(scores) list1 = [90, 12.89, True, 'abc', [1, 2, 3]] print(list1)

    获取列表元素

    1获取单个元素

    语法: 列表[下标]

    说明: 列表 - 任何结果是列表的表达式: 独立的列表数据、保存列表的变量、返回值是列表的函数调用表达式、结果是列表的运算表达式 [] - 固定写法 下标 - 想要获取的元素对应的下标

    补充:什么是下标 下标又叫索引,是用来表示有序序列中元素的位置(顺序)。 列表中的每个元素都有固定的下标用来表示这个元素在列表中的位置,下标值的范围是从0开始依次增加,其中0表示第一个元素… 列表中的每个元素有两种下标值,一种是正的下标值(从0开始),另一种是负的下标值(从-1开始,依次减少,-1表示是最后一个元素)

    注意: 下标不能越界

    names = ['张三', '李四', '王五'] print(names[1], names[-2]) # 李四 李四 print([1, 2, 3, 4][1]) #2
    2.获取部分元素 - 切片

    语法: 列表[开始下标:结束下标:步长] - 从开始下标开始,每次下标值增加步长,取到结束下标前为止

    说明: 列表 - 任何结果是列表的表达式: 独立的列表数据、保存列表的变量、返回值是列表的函数调用表达式、结果是列表的运算表达式 [] - 固定写法 开始下标、结束下标 - 下标值,整数 步长 - 整数

    如果步长是正,表示获取元素的时候是从前往后取, 保证开始下标对应的元素要在结束下标对应的元素的前面,否则切片的结果是[]; 如果步长是负,表示获取元素的时候是从后往前取, 保证开始下标对应的元素要在结束下标对应的元素的后面,否则切片的结果是[]。

    注意: 切片的时候下标可以越界

    nums = [1, 2, 3, 4, 5, 6, 7, 8] print(nums[1:4:1]) #[2,3,4]
    3.切片语法的省略写法

    3.1 省略步长

    列表[开始下标:结束下标] —> 列表[开始下标:结束下标:1]

    nums = [1, 2, 3, 4, 5, 6, 7, 8] print(nums[1:4]) #[2,3,4]

    3.2 省略开始下标

    列表[:结束下标:步长] / 列表[:结束下标]

    步长为正, 表示从第一个元素开始往后取

    步长为负,表示从最后一个元素开始往前取

    nums = [1, 2, 3, 4, 5, 6, 7, 8] print(nums[:-1]) #[1, 2, 3, 4, 5, 6, 7] print(nums[:2:-1]) #[8, 7, 6, 5, 4] print(nums[:0:-2]) #[8, 6, 4, 2]

    3.3省略结束下标

    列表[开始下标::步长] / 列表[开始下标:]

    步长为正,从前往后取到最后一个元素为止 步长为负,从后往前取到第一个元素为止

    nums = [1, 2, 3, 4, 5, 6, 7, 8] print(nums[-3:]) #[6, 7, 8] print(nums[:]) #[1, 2, 3, 4, 5, 6, 7, 8] print(nums[::2]) #[1, 3, 5, 7]
    4.遍历列表 - 将列表中的元素一个一个的取出来

    方法一:直接法 for 变量 in 列表: 循环体

    方法二:通过下标间接获取 for 下标 in 下标对应的数字序列: 列表[下标] 循环体

    nums = [1, 2, 3, 4, 5, 6, 7, 8] for x in nums: print(x)

    len(列表) - 返回列表中元素的个数

    nums = [1, 2, 3, 4, 5, 6, 7, 8] for index in range(len(nums)): print(nums[index])

    练习:用一个列表保存一个班所有学生的分数,统计不及格学生的人数,计算班级学生的平均分

    scores = [89, 45, 60, 23, 68, 9, 76] count = 0 for score in scores: if score < 60: count += 1 print('不及格学生人数:', count) sum1 = 0 for score in scores: sum1 += score print('平均分:', sum1 / len(scores))

    列表元素的增删改

    1.增

    添加元素

    1.1append - 追加

    列表.append(元素) - 在指定列表的最后添加指定的元素

    list1 = [10, 20, 30] print(list1) list1.append(100) print(list1)

    1.2 insert - 插入 列表.insert(下标, 元素) - 在指定列表指定下标对应的元素前插入指定的元素

    list1 = [10, 20, 30] list1.insert(1, 100) print(list1)

    练习:不断输入学生的成绩,并且把所有输入的成绩保存在一个列表中。(输入-1表示结束)

    scores = [] while True: score = int(input('请输入成绩:')) if score == -1: break else: scores.insert(0, score) print(scores)
    2. 删 - 删除元素

    2.1 del语句 del 列表[下标] - 删除列表中指定下标对应的元素(下标不能越界)

    nums = [1, 2, 3, 4, 5, 6, 7, 8] del nums[2] print(nums) #[1, 2, 4, 5, 6, 7, 8] del nums[-4] print(nums) #[1, 2, 4, 6, 7, 8]

    2.2 remove

    列表.remove(元素) - 删除列表中指定的元素(如果指定的元素不存在,程序会报错;如果指定的元素存在多个,只删最前面的那一个)

    nums = [1, 2, 3, 4, 5, 6, 7, 8, 5] nums.remove(4) print(nums) #[1, 2, 3, 5, 6, 7, 8, 5] numd.remove(5) print(nums) #报错

    3.3 pop 列表.pop() - 取出列表中的最后一个元素,并且返回被取出的元素 列表.pop(下标) - 取出列表中指定下标对应的元素,并且返回被取出的元素

    nums = [1, 2, 3, 4, 5, 6, 7, 8, 5] nem_nums = nums.pop() print(nem_nums) #5 nem_nums = nums.pop(1) print(nem_nums,nums) #2 [1, 3, 4, 5, 6, 7, 8]
    3.改 - 修改元素的值

    3.1列表[下标] = 新元素 - 将列表中指定下标对应的元素修改成新的元素 (下标不能越界)

    nums = [1, 2, 3, 4, 5, 6, 7, 8, 5] nums[-2] = 1 print(nums) #[1, 2, 3, 4, 5, 6, 7, 1, 5]

    3.2列表1[开始下标:结束下标] = 列表2 - 将列表1中开始下标到结束下标选中的所有元素替换成列表2中所有的元素

    nums = [1, 2, 3, 4, 5, 6, 7, 8, 5] nums[1:4] = [1, 1, 1, 1, 1] print(nums) #[1, 1, 1, 1, 1, 1, 5, 6, 7, 8, 5]

    练习: 将列表[89, 45, -55, 30, -78, 90, -34, 87, 10, 59, 100, -19]中所有的负数都改成0

    nums = [89, 45, -55, 30, -78, 90, -34, 87, 10, 59, 100, -19] for index in range(len(nums)): if nums[index] < 0: nums[index] = 0 print(nums) #[89, 45, 0, 30, 0, 90, 0, 87, 10, 59, 100, 0]
    4 in 和 not in

    元素 in 列表 - 判断指定元素是否在指定列表中 元素 in not 列表 - 判断指定元素是否不在指定列表中

    nums = [10, 20, 30, 40, 50] print(10 in nums) # True print(20 not in nums) # False
    Processed: 0.015, SQL: 9