python笔记_数据类型

定义:python的变量在使用前必须赋值,数据类型指的是变量指定的内存数据的类型

string字符串类型使用引号
int整型整数
float浮点型小数
bool布尔值(逻辑)输出true/false

A,整数类型

       

整型字节

        

1,python的整数有十六进制,十进制,八进制,二进制

        分别写作"0x数字","数字","0o数字","0b数字"

        

2,在编程中存储数据的基本单位是字节(byte)        1 byte = 8 bit(位)

        python中整型是变长的,每次的增量是4个字节

例:

定义

s1 = 1

s2 = 2 ** 24

s3 = 2 ** 56

输出

print(sys.getsizeof((s1)),"类型",type(s1))

print(sys.getsizeof((s2)),"类型",type(s2))

print(sys.getsizeof((s3)),"类型",type(s3))

——>

28 类型 <class 'int'>
28 类型 <class 'int'>
32 类型 <class 'int'>


B,浮点类型

       

1,表现形式

十进制形式 0.512 .512
科学技术形式 

5.12e2 (5.12乘10十的二次方)

5.12E-2(5.12除以10十的二次方)

       

2,查询浮点数取值范围

        sys.float_info       

        

3,浮点类型计算后,存在精度的损失,解决方案:Decimal       

例:

定义

p = 8.1 / 3

输出

print(p)

——>2.69999999999997

使用Desimal需要先导入decimal类

from decimal import Decimal

定义

p = Decimal("8.1") / Decimal("3")

输出

print(p)

——>2.7


C,布尔类型

        

1,布尔类型一般用于程序流程控制

        

2,布尔类型又叫bool类型,取值False和True

例:

定义

阿尔菲诺 = 21

阿莉塞 = 20

输出

if 阿尔菲诺>阿莉塞:

        print("阿尔菲诺是哥哥")

——>阿尔菲诺是哥哥

把阿尔菲诺>阿莉塞的结果赋给result

result = 阿尔菲诺>阿莉塞

print(result)

——>true

查看类型

输出

print(type(result))

print(type(2>1))

——><class 'bool'>

——><class 'bool'>

       

3,布尔类型可以和其他数据类型进行比较,在比较时True=1 False=0

定义

a = False

b = True

输出

print(a+b)

——>1

输出

if a == b:

        print("YES")

——>YES

       

4,在python中,非零被视为真值,零则被视为假值

if 0:把0当布尔值使用

        print("OK")

——>因为0是假值,无内容被输出

if -1:

        print("OK")

——>OK


D,字符串类型

        

1,python不支持单字符,单字符会被看作字符串

定义

a = "A"

输出

print(type(a))

——><class 'str'>

        

2,三个单引号,或三个双引号可以让内容保持原样输出

定义

content = 

"""

[pl.] (书的)目录,目次
the different sections that are contained in a book

"""

输出

print(content)

——>[pl.] (书的)目录,目次
the different sections that are contained in a book

        

3,字符串前加r,可以使整个字符串不被转义

定义

address = r"D:\download\tom\name"

输出

print(a)

——>D:\download\tom\name

       

4,字符串驻留机制

                a,python值保存一份相同且不可变字符串,不同的值被存放在字符串的驻留池

                b,python驻留机制对相同的字符串只保留一份拷贝

                c,创建新的相同字符串时不会开辟新空间

定义

str1 = "hello"

str2 = "hello"

str3 = "hello"

输出

print(id(str1))

print(id(str2))

print(id(str3))

——>

54236236

54236236

54236236

       

5,驻留机制使用条件

                a,字符串由26个英文字母大小写,0-9,_组成

定义

a = "abc#"

b = "abc#"

输出

if id(a) != id(b):

        print("NO")

——>NO

                b,字符串长度为0或者1

定义

a = ""

b = ""

输出

if id(a) == id(b):

        print("YES")

——>YES

                c,字符串在编译时驻留,而非运行时

定义

a = "abc"

b = "".join(["a","bc"])

输出

if a == b:

        print("YES")

——>YES

输出

if id(a) != id(b):

        print("NO")

——>NO

                d,【-5,256】的整数数字



E,验证数据类型

type(object)

用法

验证数据类型

输出

print(type(3.1415))
——><class 'float'>

将验证结果储存为变量值

输入

int_type=print(type(3.1415))

输出
print(int_type)
——><calass 'float'>


F,数据转换
str(x)将x转换为字符串
int(x)将x转换为整数
float(x)将x转换为浮点数

提问:以下定义,print(result)的结果是{Tom的年龄是 8}吗? 

age = 8

result = "Tom的年龄是:" + age

否,因为字符串+整数不合法

隐式类型转换(自动转换)

        1,python的变量类型不是固定的

a = 1

print(type(a))

a = 1.5

print(type(a))

a = "alarm"

print(type(a))

        2,运算时,数据类型会向高精度转换,float精度大于int

定义

a = 1

b = a+0.5

输出
print(b,type(b))

——>1.5 <class 'float'>

 

显式类型转换

        1,对变量数据类型进行转换时,将数据类型作为函数名

        2,函数返回的新的对象或值,就是强制转换后的结果

定义

a = 1

b = float(a)

输出
print(b,type(b))

——>1.0 <class 'float'>

        3,浮点数转整数会丢失小数,整数转浮点数会增加小数

定义

a = 1.0

b = int(a)

输出
print(b,type(b))

——>1 <class 'int'>

        4,字符串进行类型转换的时候,需要注意是否有效

定义

a = "hello"

b = int(a)

输出
print(b,type(b))

——>hello不是整数,报错

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值