python的数据类型简单介绍

一、 数据类型

1 引入

类型是什么?

print("hello")  # hello 
print(100)  # 100

# 描述买水果:买了2斤苹果,5.5斤桃
fruit_name = "苹果"
weight = 2
2 类型分类
  • 基本数据类型

    • 字符串(str):表达一种名词,使用引号包围的对象

      fruit = '苹果'
      name = "zs"
      hobby = """睡觉"""
      a = "lisi'  # 错误
      
    • 数值类型

      • 整型(int):数学中的整数。
      • 浮点型(float):数学中的小数。
      • 复数(complex):包含实部和虚部:a+bj —了解
    • 布尔类型(bool):只包含两个值:True,False

  • 组合数据类型----容器

    • 列表
    • 元组
    • 字典
    • 集合
  • 对象数据类型

3 数值类型的计算
  • 同种类型计算得到类型仍然为该类型(bool除外)
  • 不同类型计算,首先要转化为同种类型再计算,转化的原则是bool—>int ---->float
# int计算
print(10+20)  # 30
a = 10 
b = 20
print(a+b)  # 10+20 = 30

# float 计算
print(3.5+2.4)  # 5.9
print(3.5 +2.5) # 6.0

# 不同类型计算:int+float
print(2+3.5)  # 2.0+3.5 = 5.5

# int + bool: True 转化为数字1计算
print(2+True) # 2+1 = 3

# int+bool:False 转化为数字0计算
print(3+False)  # 

# flaot +bool 
print(2.4+True)  # 3.4

# bool + bool
print(True + True)   # 2
print(True + False)  # 1
print(False+False)  # 0

二、 进制

1 生活中进制
  • 十进制:0-9
  • 时间:60进制
  • 计量单位
2 计算机中的进制
  • 二进制:0-1,0b/B
  • 八进制:0-7, 0o/O
  • 十进制:0-9,
  • 十六进制:0-9 ,a-f, 0x/X
3 进制转化方法
  • bin():将给定数字转化为二进制
  • oct():将给定数字转化为八进制
  • hex():将给定数字转化为十六进制
num = 100
print(bin(100))  # 0b1100100
print(oct(100))  # 0o144
print(hex(100))  # 0x64

三、 类型强制转化

格式:目标类型(待转化数据)

查看数据的类型:type(待查看的数据)

# int --->float:整数后加".0"
float(100)  # 100.0

# float --->int:直接舍弃小数部分
num = 2.1
int(num)  # 2
num2 = 2.9
int(num2)  # 2

# bool -->int
# print(int(True))  #  1
# print(int(False))  #  0

# int -->bool:非零数字都是True
print(bool(10))   # True
print(bool(0))   # False

# float--->bool:非零数字都是True
print(bool(2.234235))  # True
print(bool(0.0003))  # True
print(bool(0.0))  # False

# int--->str:直接在数字两边加引号
s1 = str(10)
num = 10

print(s1,num)
print(type(s1))  # <class 'str'>
print(type(num))  # <class 'int'>

练习:卖水果

  • 询问顾客购买水果种类
  • 询问购买重量
  • 输出一共需要花费的钱
#1 定义单价
apple_price = 3
# 2展示商品
print("本店出售水果:苹果")
# 3询问顾客
buy_name = input("请告诉我您需要购买的水果名称:")
buy_weight = input("请告诉我您需要购买的水果重量:")
# print(type(buy_name))
# print(type(buy_weight))
# 4计算价钱
new_weight = float(buy_weight)
total_price = apple_price * new_weight
print("您一共消费了",total_price,"元")
2 其他类型转化
chr():将一个整数转换为一个字符
ord()
eval()

# chr():将Unicode编码转化对应的字符
print(chr(22242))  # 团
# ord():将字符转化为对应Unicode编码
print(ord("团"))

print(ord("中"))
print(chr(20013))

# eval(str)
print("1+2")  # 1+2
res = eval("1+2")
print(res)
print(type(res))  # int 

注意:特殊情况不能转化

# str --->int
int("hello")  # 报错

四、 运算符

1 算术运算符:+,-,*,/,//,%,**
  • 除法

    • /:真除法,注意该方法得到的类型一定是浮点型。
    • //:整除法:只保留商的部分
    print(4/2)  # 2.0
    print(3/2)  # 1.5
    print(4//2) # 2
    print(3//2) # 1
    
    print(4.0/2)   # 2.0
    print(4.0//2)  # 4.0//2.0=2.0
    
  • 取余:%

    print(4%2)  # 0
    print(2%3)  # 2
    
  • 幂运算:**

    print(2**3)  # 8
    print(1.01**365)  # 
    print(0.99**365)  # 
    
2 赋值运算符:=
name = "zs"
3 复合运算符:+=,-=,*=,/=,//=,%=,**=
a = 10
a = a+1  # 自增1
a += 1   # 自增1
4 关系(比较)运算符:>,<,==,>=,<=,!=

得到的结果一定是布尔类型

print(1>2)  # False
print(1<2)  # True
print(1!=2) # True
5 逻辑运算符:and,or,not

优先级:not>and>or

返回的内容为起决定作用的那个值

# and
print(True and True)  # True
print(False and True)  # False

print(1 and 2)    #  2
print(2 and True) # True
print(0 and 3)  #  0
print(3.5 and False)  # False

# or
print(True or True)  # True
print(False or True)  # True

print(1 or 2)    #  1
print(2 or True) # 2
print(0 or 3)  #  3
print(3.5 or False)  # 3.5

# not 
print(not True)  # False
print(not 1) # False

练习:

print(-3**2)  # -9
print(3%2//2 > 5**2 and -1**2 or 8<2)

print(2>1<3)  # True / False  2>1 and 1<3
6 成员运算符:in

返回布尔值

kw_list = ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

# input 是不是关键字?
print(input in kw_list)  #  False

s = "hello world"

print('o' in s)  # True
总结
1 幂运算:**
2 符号位:正(+),负(-3 乘除取模:* /  //  %
4 加减:+-
5 比较运算符:66 逻辑运算符:not > and > or 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值