文章目录

  • 数据类型
  • 数值
  • 字符串
  • 格式化字符串
  • 字符串复制(将字符串和数字相乘)
  • 布尔值和空值
  • 类型检查
  • 对象(object)
  • 对象的结构
  • 变量和对象
  • 类型转换


数据类型

数值

数值分成三种: 整数、浮点数、复数

(1)整数:在Python中整数都是int类型,无大小限制,可任意大小
    如果数字长度过大可以使用下划线作为分隔符
        如:a = 123_456_345  (a的值为123456345)
    十进制的数字不能以0开头
    其他进制的整数,只要是数字打印时一定是以十进制的形式显示
        二进制0b开头     bin(2) ---> 将数字2转化为二进制数  
        八进制0o开头     oct(2) ---> 将数字2转化为八进制数
        十六进制0x开头   hex(2) ---> 将数字2转化为十六进制数
(2)浮点数(小数):在python中所有小数都是float类型
    对浮点数进行运算时,可能会得到一个不精确的结果,如:
        0.1 + 0.2 = 0.3000000000000000004
(3)复数
    不解释

字符串

使用引号引起来,可以是单引号,也可以是双引号,但相同的引号之间不能嵌套,如:
    s = "我说: "我是最棒的!""  ----错误
    s = '我说: "我是最棒的!"'  ----正确
单引号和双引号不能跨行使用,因此要在行尾加上\来到下一行,如:
    s = '飞流直下三千尺,
         疑是银河落九天'  -----错误
         
    s = '飞流直下三千尺,\
         疑是银河落九天'  -----正确
三重引号可以用来表示一个长字符串,三重引号可以换行,并且会保留字符串中的格式
    ''' 或 """,如"""sdfasdfasdfasdfasdfgsdgafdha"""
转义字符:
    可以使用\作为转义字符,通过\可以在字符串中使用一些特殊的内容,例如:
        \'  表示 '
        \"  表示 "
        \t  表示 制表符
        \n  表示 换行符
        \\  表示反斜杠\
        \uxxxx  表示Unicode编码

格式化字符串

(1)(拼串)字符串之间可以进行加法运算,如:
    a = 'fgh'
    b = 'bnm'
    c = a + b
    则c是'fghbnm'
但是字符串不能和其他的数据类型相拼接,可以这么做:
    a = 123
    print('a=' + a),可是此方法不常用 
(2)(多个参数)也可以使用print来格式化输出:
    a = 123
    b = 'sad'
    print('a =', a, b)
(3)(占位符)在创建字符串时,可以在字符串中指定占位符%s,此占位符可辨识任意字符,如:
    b = 'hello %s' % 'world'   # 表示用world去填充占位符%s的位置
    输出: hello world   
当有多个占位符时,可以这么处理:
    b = 'hello %s, 我是%s' %('小红', '小麦')
    若占位符前面加了数字,如%3s,则表示代替的字符串至少有三个(不够则补位)
                          如%3.5s,则表示字符串长度在3-5之间
原则上%也可用于数字的占位符,但是在有效数字要求上不好处理,因此还有另外一个占位符
%f  浮点数占位符,%.4f 表示保留到小数点后四位
%d  整数占位符   直接把小数舍去

新的方法:
(4)格式化字符串
在字符串前添加一个f来创建一个格式化字符串,在其中可以直接嵌入变量,例子:
    a = 'Mai'
    b = 'SaSa'
    c = f'{a} loves {b}'
    则c的值是  'Mai loves SaSa'
    也可以直接打印: print(f'{a} loves {b}')

字符串复制(将字符串和数字相乘)

如: a = 'abc'
     c = a * 20  (字符串跟数字位置可以颠倒)  
    解释器会将字符串重复指定的次数并返回

布尔值和空值

(1)布尔值(boolean,简称bool)
    布尔值主要用来做 逻辑判断
    布尔值共有两个: True  False
    布尔值实际上也属于整型,True相当于1,False相当于0
- 用作布尔表达式时,下面的值都被解释器视为假:
    False  None  0  ''  ()  []  {}
    
(2)None(空值)
    专门用来表示不存在

类型检查

先回顾一下python的数据类型:
    数值
        整型
            布尔值
        浮点型
        复数
    字符串
    空值
    
type()  用来检查值的类型,该函数会将检查的结果作为返回值返回,例如:
    c = type(a)

对象(object)

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

对象的结构

- 每个对象中都要保存三种数据
    (1)id(标识)  -用来标识对象的唯一性,每个对象对应一个唯一的id,对象一旦创建,则永远不会改变
            可通过id()查看,在CPython中,id就是对象的内存地址
    (2)type(类型) -Python是一门强类型语言,因此对象一旦创建类型便不能改变
            可通过type()查看类型
    (3)value(值)
        -对象分成两大类,可变对象和不可变对象
        可变对象的值可以改变
        不可变对象的值不可以改变(目前学的都是不可变对象)

变量和对象

实际上,对象并没有直接存储到变量中,在Python中变量更像是对象的一个别名,
    变量中存储的不是对象的值,而是对象的id(内存地址),当我们使用变量时,实际上就是在通过对象id寻找对象

类型转换

- 将一个类型的对象转换为另一个类型的对象
- 类型转换不是改变原有对象本身的类型,而是将对象的值转换为新的对象(即根据当前对象的值创建一个新的对象)
类型转换函数:
    (1) int() 
        -可以用来将其他对象转换为整型,将浮点数用int()转换后,小数直接被舍去
        -合法的整数字符串,则可以直接转化为对应的数字,否则报错
        -布尔值 True-->1  False-->0
        -不能转化None类型
    (2) float() 
        -和int()规则基本一致
        -布尔值 True-->1.0  False-->0.0
    (3) str() 
        -转为字符串
        -布尔值 True-->'True'  False-->'False'
    (4) bool()
        -在python中任何对象都能转化为布尔值
        -规则:所有表示空性的对象都会转化为False,其余的转化为True,
            如 0、None、''、""等等