python进阶_基础篇4(数据类型和列表)

数据类型和列表

内容回顾(基础篇三)

1:if条件

应用场景:
1)if 单分支: 满足条件执行某个操作,不满足就不执行
2)if 双分支: 满足条件执行某个操作,不满足执行另一个操作
3)if 多分支: 根据不同的条件执行不同的操作

2:for循环和while循环的选择

1)什么时候用for循环
a.遍历序列
b.循环次数确定

2)什么时候用while循环
a.死循环
b.循环次数确定

while True:
    if 循环结束的条件:
        break

数字类型

python中数字相关的类型有4中**:int(整型),float(浮点性),comlex(复数),bool(布尔)**

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

num = 23
num1 = 0b1010       # python中的二进制数表示方式,在数字前面加上0b(二进制基数:0,1)
num8 = 0o76         # python中的八进制数表示方式,在数字前面加上0o(八进制基数:0~7)
num16 = 0x78        # python中的十六进制的表示方法,在数字前面加上0x(十六进制奇数:0~10,A~F)
print(num1)         # print(其他进制数)- 查看对应的十进制数
print(num8)
print(num16)

进制转换

print(bin(89))       # 0b1011001
print(oct(89))       # 0o131
print(hex(89))       # 0x59

int的类型转换:int(数据

print(int(2.33))     # 2
print(int(1.99))     # 1
print(int(-2.3))     # -2 (浮点数转换成整数的时候知识单纯的保存整数部分)
print(int(10+3j))    # 复数不能转换成int类型
print(int(True))     # 1
print(int(False))    # 0

# print(int("12.5"))   # 不能转换
print(int("-120"))     # 可以转换
# print(int("0b111"))    # 不可以转换:invalid literal for int() with base 10: '0b111'
print(int("0b111",base=2))  # 7:base控制的进制,默认是10进制

2.float(浮点型) - 所有小数对应的类型

f1=12.4
f2=3e4
print(f2)

类型转换

print(float(19))  # 19.0
print(float(True)) # 1.0
# print(int(10+3j))  # 复数不能转换成float类型
# print(float("12f34"))
print(float("12.8"))  # 12.8
print(float("67"))    # 67
print(float("2e8"))   # 200000000.0

3.complex(复数) - 由实部和虚部组成的数字就是复数(复数的单位是j)

c1 = 10-2j
print(type(c1))
c2 = -3j     # 如果实部是0,可以省
# c3 = 3+j   # NameError: name 'j' is not defined(虚部值如果是1,1不能省略)
c3 = 3+1j
print(1j*1j) # (-1+0j)


python中复数直接支持复数的数学运算

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

print(complex(10))   # (10+0j)

# 

4.bool(布尔)

True本质就是1,False本质就是0

类型转换 (所有类型的数据都可以转换成布尔)
所有的0值和空值都会转换成False,其他都是True

num=0
if num ==0:
    print("num为0")

if not num:
    print('num为0')

if num!=0:
    print('num不为0')

if num:
    print('num不为0')

列表基础

1.什么是列表

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

list1 = [34, 'abc', True, 34]
print(list1)

empty = []   # 空列表

2.获取列表元素

1)获取单个元素
a.语法
列表[下标] - 获取指定位置的元素

b.说明

  1. 列表 - 任何结果是列表的表达式
    (比如:具体的列表值、保存列表的变量、运算结果式列表的运算表达式。返回值是列表的函数调用表达式)
  2. [] - 固定写法
  3. 下标 - 下标又叫索引;表示的是元素在有序序列中的位置信息
    python中下标值由两种:
    1)0~长度-1:其中0表示第一个元素、1表示第二个元素,以此类推。。。
    **2)-1~-长度,**其中-1表示最后一个元素的位置,-2就是表示第二个元素的位置,以此类。。。
brothers = ["国栋", "定名", "秋冬", "忠玉", "郭糠"]
print(brothers[2])
print(brothers[-3])
# 注意:获取单个元素的时候下标不能越界
# print(brothers[5])   #IndexError: list index out of range

2) 遍历列表-将列表中的元素一个一个的取出来
方式一:
for 变量 in 序列:
        循环体
方式二
for 下标,元素 in enumerate(列表):
        循环体
直接获取列表中的元素

for brother in brothers:
    print(brother)

同时获取每个元素的下标和值

for index, value in enumerate(brothers):
    print(index, value)

获取班上学生总分、平均分、不及格人数

scores = [90, 32, 79, 80, 67, 45]
sum = 0
fail_people = 0
for i in scores:
    sum += i
    if i < 60:
        fail_people += 1
print("总分:", sum, "平均分:", sum / len(scores), "不及格:", fail_people)

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])  # ['国栋', '定名', '秋冬', '忠玉']

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

brothers = ["国栋", "定名", "秋冬", "忠玉", "郭糠"]
print(brothers[1:-1])  # ['定名', '秋冬', '忠玉']

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

brothers = ["国栋", "定名", "秋冬", "忠玉", "郭糠"]
print(brothers[:5:2])
print(brothers[:-2])  # ['国栋', '定名', '秋冬']
print(brothers[:-3:-1])  # ['郭糠', '忠玉']

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

tv_list = ['甄嬛传', '名侦探柯南', '名侦探狄仁杰',"西游记","死亡游戏"]
print(tv_list[2:])    #['名侦探狄仁杰', '西游记', '死亡游戏']
print(tv_list[-3::-1])   #['名侦探狄仁杰', '名侦探柯南', '甄嬛传']

开始小标和结束下标都省
#列表[::步长]/列表[:]
如果步长为正,从前往后从第一个取到最后一个元素;
如果步长为负,从后往前从最后一个取到第一个元素;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值