学习Python的第四天

一、数字类型

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

1.int 型

所有整数对应的类型

num = 23
num2 = 0b1001010  # 在数字前加0b表示二进制数(二进制数只能由0和1两个基数)
num8 = 0o76       # 在数字前加0o表示八进制数(八进制数的基数:0-7)
num16 = 0x3f      # 在数字前加0x表示十六进制数(十六进制数的基数:0-9,A-F)

进制转换
print(其他进制数) - 查看对应的十进制数

print(num16)  
print(bin(10))  # 查看二进制数
print(oct(89))  # 查看八进制数
print(hex(89))  # 查看十六进制数

int的类型转换 : int(数据)

print(int(2.34))  # 2
print(int(1.999))  # 1
print(int(-2.4))  # -2 浮点数转化成整数的时候只是单纯的去除小数点保留整数
# print(int(10+3j))  复数不能转化为整型
print(int(True))  # 1
print(int(False))  # 0
# print(int('abc'))  #
print(int('34'))
print(int('0b110', base=2))  # 6(base控制的是进制,默认10)

2. float(浮点型)

所有小数对应的类型

f1 = 12.4
f2 = 3e4

类型转换

print(float(19))  # 19.0
# print(float(3+4j))  # TypeError: can't convert complex to float
print(float(True))  # 1.0
# print(float('abc'))  # ValueError: could not convert string to float: 'abc'
print(float('2.4'))  # 2.4
print(float('2'))  # 2.0

3.complex(复数)

把实部和虚部组合起来的数字就是复数(虚部单位为j)

c1 = 10-2j
c2 = 3j
c3 = 3 + 1j
# c3 = 3+j  # (虚部值如果是1,1不能省略)

python中的复数值支持复数的数学运算

print(c1 + c3)  # (13-1j)
print(c1 * c3)  # (32+4j)

4. bool(布尔值)

只有True和False,True本质是1,False本质是0。
类型转换:
所有类型的数据都可以转换为布尔,所有的0值和空值会转换成False,其他都是True。

二、列表基础

1. 什么是列表

列表是容器型数据类型,以[]作为容器的标志,里面多个元素用逗号隔开。
列表是可变的(元素的值、个数、顺序都可以改变),列表是有序的。
列表的元素可以是任何类型的数据;同一个列表可以有多个类型不同的元素。

list1 = [34, 'abc', True, 34]

2.获取列表元素

2.1获取单个元素

语法:
列表[下标] :获取列表中指定下标的值
说明:
列表 : 任何结果是列表的表达式(比如:具体的列表值、保存列表的变量、运算结果是列表的列表表达式、返回值是列表的函数表达式)
[] : 固定写法
下标 :下标又叫索引;元素在有序序列中的位置信息
python中下标值有两种:
1)0~长度-1,其中0是第一个元素的位置,1是第二个,以此类推
2)-1~-长度,其中-1是最后一个元素的位置,-2是倒数第二个元素的位置,以此类推。

scores = [90, 78, 59, 76, 84]
print(scores[-1])

注意:获取单个元素的时候下标不能越界

2.2 遍历列表

将列表中的元素一个一个取出来
方法一:
直接获取列表中的元素
语法:

for 变量 in 列表:
	循环体

for item in scores:
    print(item)

方法二:
同时获取每个元素的下标和值
语法:

for 下标,元素 in enumerate(列表):
    循环体

for x, y in enumerate(scores):
    print(x, y)

练习1:求一个班所有学生的总成绩

scores = [90, 78, 59, 76, 84, 30, 99, 45]
total = 0
for score in scores:
    total += score
print(total)
print('总成绩:', total, '平均分:', total/len(scores))

练习2:统计班上不及格学生的人数

scores = [90, 78, 59, 76, 84, 30, 99, 45]
count = 0
for score in scores:
    if score < 60:
        count += 1
print(count)
2.3 获取部分元素(切片)

列表切片的列表还是列表
语法:
列表[开始下标:结束下标:步长]
从开始下标开始取,每次下标值增加步长取下一个值,到结束下标前为止
如果步长为正:表示开始下表到结束下标是从前往后取,开始下标对应位置要在结束下标前
如果步长为负:表示开始下标到结束下标是从从后往前,开始下标对应位置要在结束下标后

names = ['赵云', '诸葛亮', '刘备', '貂蝉', '甄姬']
print(names[1:4:1])    # ['诸葛亮', '刘备', '貂蝉']
print(names[1:4:-1])   # []
print(names[1:4:2])    # ['诸葛亮', '貂蝉']
print(names[-1:1:-1])  # ['甄姬', '貂蝉', '刘备']
print(names[0:-1:1])   # ['赵云', '诸葛亮', '刘备', '貂蝉']
print(names[0:-1:3])   # ['赵云', '貂蝉']
1)省略步长

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

movies = ['僵尸世界大战', '电锯惊魂', '致命弯道', '死神来了', '生化危机', '林中小屋']
print(movies[1:-1])    # ['电锯惊魂', '致命弯道', '死神来了', '生化危机']
print(movies[5:2])     # ['生化危机', '死神来了', '致命弯道']
2)省略开始下标

列表[结束下标:步长] / 列表[:结束下标]
步长为正,表示从第一个元素开始往后取。
步长为负,表示从最后一个元素开始往前取。

print(movies[:5:2])     # ['僵尸世界大战', '致命弯道', '生化危机']
print(movies[:-2])      # ['僵尸世界大战', '电锯惊魂', '致命弯道', '死神来了']
print(movies[:-3:-1])   # ['林中小屋', '生化危机']
print(movies[:-1:-1])   # []
3)省略结束下标

列表[开始下标::步长] / 列表[开始下标:]
步长为正,从前往后取到最后一个元素为止
步长为负,从后往前取到第一个元素为止

tv_list = ['甄嬛传', '名侦探柯南', '名侦探狄仁杰', '西游记', '三国演义', '生活大爆炸', '尼基塔']
print(tv_list[2:])    # ['名侦探狄仁杰', '西游记', '三国演义', '生活大爆炸', '尼基塔']
print(tv_list[-3::-1])  # ['三国演义', '西游记', '名侦探狄仁杰', '名侦探柯南', '甄嬛传']
4)开始下标和结束下标都省

列表[::步长] / 列表[:]
如果步长为正,从前往后取到最后一个;
如果步长为负,从后往前取到第一个。

print(tv_list[:])   # ['甄嬛传', '名侦探柯南', '名侦探狄仁杰', '西游记', '三国演义', '生活大爆炸', '尼基塔']
print(tv_list[::-1])    # ['尼基塔', '生活大爆炸', '三国演义', '西游记', '名侦探狄仁杰', '名侦探柯南', '甄嬛传']
print(tv_list[::-2])    # ['尼基塔', '三国演义', '名侦探狄仁杰', '甄嬛传']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值