python_4_数据类型

数据类型

数据类型指的就是变量的值的类型,也就是可以为变量赋哪些值。

  • 在Python中,数值分为三种:整数、浮点数(小数)、复数
  1. 整数

    • 在Python中所有的整数都是int类型

    • Python中的整数的大小都没有限制,可以是一个无限大的整数

    • 如果数字的长度过大,可以使用下划线作分隔符

      例如:123_245_789

    • 10进制的数不能以0开头

    • 其他进制的整数,只要是数字,打印时一定是以10进制显示

      • 二进制:0b开头
        0b10 # 二进制的10
        
      • 八进制:0o开头
        0o10
        
      • 十六进制:0x开头
        0x10
        
    • 也可以通过运算符来对数字进行运算,并且可以保证运算的精确

  2. 浮点数(小数),在Python中所有的小数都是float(浮点)类型

    • 对浮点数进行运算时,可能会得到一个不精确的结果

字符串(str)

普通字符串

  • 字符串用来表示一段文本信息,字符串是程序中使用的最多的数据类型
  • 在Python中字符串需要用引号引起来
  • 引号可以是单引号,也可以是双引号
    • 例如:s = 'hello's = "hello"
  • 不能混用单双引号
    • 例如:s = 'hello"会报错SyntaxError: EOL while scanning string literal
  • 相同的引号之间不能嵌套

长字符串

  • 单双引号不能跨行使用,可以用\连接,但不会保留格式。
  • 例如:
    s = '锄禾日当午,\
    汗滴禾下土。\
    谁知盘中餐,\
    粒粒皆辛苦。'
    
  • 使用三重引号'''"""表示一个长字符串
  • 三重引号可以换行,并且会保留字符串中的格式
  • 例如:
    s = '''锄禾日当午,
    汗滴禾下土。
    设置盘中餐,
    粒粒皆辛苦。'''
    

转义字符

  • 可以使用\作为转义字符,通过转义字符可以在字符串中使用一些特殊内容。
  • 例如:
    • \'表示'
    • \"表示"
    • \t表示制表符Tab
    • \n表示换行符
    • \\表示\
    • \uxxx表示Unicode编码

格式化字符串

  • 字符串之间也可以进行加法运算
  • 如果将两/多个字符串进行相加,则会自动将两/多个字符串拼接成一个。
  • 例如a = 'abc' + 'haha'print(a)的结果为abchaha
  • 字符串不能和其他的类型做加法运算,如果做了会报错TypeError: can only concatenate str (not "int") to str
  • 在创建字符串时,可以在字符串中指定占位符
  • %s在字符串中表示任意字符
  • %3s表示字符串有三位,不足三位自动在前面用空格填充
  • %3.5s表示字符串长度在3-5位之间
  • %f表示浮点数占位符
  • %.2f表示保留两位小数,会四舍五入(大于5会入)
  • %d表示整数占位符,如果后面是浮点数,会自动舍掉小数位
b = 'hello %s'%'孙悟空'
b = 'hello %s 你好 %s'%('tom','孙悟空')
b = 'hello %3s'%'ab' # print(b)结果为hello  ab,中间补了一个空格

- 格式化字符串,可以通过在字符串前添加一个`f`来创建一个格式化字符串。 - 在格式化字符串中可以直接嵌入变量
a = 123
b = '呵呵'
c = f'hello {a} {b}'
print(c)
# 以上代码输出结果为:hello 123 呵呵

练习:

# 创建一个变量来保存名字
name = '孙悟空'

# 使用4种方式来输出,欢迎 xxx 光临

# 1_拼串
print('欢迎 ' + name + ' 光临!')

# 2_多个参数
print('欢迎',name,'光临!')

# 3_占位符
print('欢迎 %s 光临!'%name)

# 4_格式化字符串
print(f'欢迎 {name} 光临!')

以上代码输出结果为

欢迎 孙悟空 光临!
欢迎 孙悟空 光临!
欢迎 孙悟空 光临!
欢迎 孙悟空 光临!

字符串的复制

  • *在语言中表示乘法
  • 如果将字符串与数字相乘,则解释器会将字符串重复指定的次数并返回

例子

a = abc
a = a * 2
print(a)

以上代码执行结果为:

abcabc

布尔值(bool)

  • 布尔值主要用来做逻辑判断
  • 布尔值一共有两个 TrueFalse
  • True表示真,False表示假
  • 首字母必须大写

举例:

a = True
b = False
print(a,b)

上例代码执行结果为:

True False

布尔值实际上也属于整型,True就相当于1False就相当于0

举例:

print(1 + True)
print(1 + False)

上例代码执行结果为

2
1

空值(None)

  • None专门用来表示不存在

举例

b = None

上例代码执行结果为

None

类型检查

  • 通过类型检查可以检查值(变量)的类型
  • type()用来检查值的类型
  • 该函数会将检查的结果作为返回值返回
  • 可以通过变量来接收函数的返回值

举例:

print(type(1))
print(type(1.5))
print(type('hello'))
print(type(True))
print(type(None))

上例代码执行结果为:

<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
<class 'NoneType'>

对象(boject)

  • Python是一门面向对象的语言
  • 一切皆对象!
  • 程序运行当中,所有的数据都是存储到内存里,然后再运行!
  • 对象就是内存中专门用来存储指定数据的一块区域
  • 对象实际上就是一个容器,专门用来存储数据
  • 像我们之前学习的数值、字符串
  • 布尔值、None都是对象

对象的结构

  • 每个对象中都要保存3种数据
  1. id(标识)

    • id用来标识对象的唯一性,每一个对象都有唯一的id
    • 对象的id相当于人的身份证
    • 可以通过id()函数来查看对象的id
    • id是由解析器生成的,在CPython中,id就是对象的内存地址。
    • 对象一旦创建,则它的id永远不能再改变。
  2. type(类型)

    • 类型用来表示当前对象所属的类型
    • 比如:int、str、float、bool。。。
    • 类型决定了对象有哪些功能
    • 通过type()函数来查看对象的类型
    • Python是一门强类型的语言,对象一旦创建,类型不能修改。
    1. value
    • 值就是对象中存储的具体的数据
    • 对于有些对象值是可以改变的
    • 对象分成两大类,可变对象、不可变对象
      • 可变对象的值可以改变
      • 不可变对象的值不能改变,之前学习的对象都是不可变对象

变量和对象

  • 对象并没有直接存储到变量中,在Python中变量更像是给对象起了个别名
  • 变量中存储的不是变量的值,而是对象的id(内存地址)
  • 当我们使用变量时,实际上就是通过对象id在查找对象
  • 变量中保存的对象,只有在为对象重新赋值时才会改变
  • 变量和变量之间是相互独立的,修改一个不会影响另一个

类型转换

  • 类型转换,就是将一个类型的对象转换为其他对象。
  • 类型转换不是改变对象本身的类型,而是根据当前对象的值创建一个新对象
  • 类型转换的四个函数:int() float() str() bool()
  1. int()可以用来将其他的对象转换为整型
    int()函数不会对原来的变量产生影响,它是将对象转换为指定的类型,并将其作为返回值返回。
    如果希望修改原来的变量,则需要对变量进行重新赋值

    规则:
    布尔值:True -> 1,False -> 0
    浮点数:直接取整,省略小数点后的内容
    字符串:合法的整数字符串,直接转换为对应的数字
    如果不是一个合法的字符串,则会报错ValueError
    对于其他不可转换为整型的对象,直接抛出异常ValueError

  2. float() 和 int()基本一致,不同的是它会将对象转换为浮点数

  3. str() 可以将对象转换为字符串
    True -> ‘True’
    False -> ‘False’
    123 -> ‘123’
    。。。

  4. bool() 可以将对象转换为布尔值,任何对象都可以转换为布尔值
    规则:对于所有表示空性的对象都会转换为False,其余的转换为True
    哪些表示的空性:0None'' 。。。

# 举例:
a = True
print('a =',a)
print('a的类型是',type(a))
	
# 以上代码执行结果为:
a = True
a的类型是 <class 'bool'>
发布了5 篇原创文章 · 获赞 0 · 访问量 58

猜你喜欢

转载自blog.csdn.net/weixin_46289033/article/details/104806931