(三)变量和数据类型

itmahy
itmahy
发布于 2024-01-19 / 39 阅读
1
0

(三)变量和数据类型

变量是存储在内存中的值,这就意味着在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。不能使用没有赋值过的变量。Python是一个动态类型的语言,可以赋值任意类型的语言,可以赋值给任意类型的值。

1. 多个变量赋值

a,b,c=1,2,3
print(a)
print(b)
print(c)
>>>结果:
1
2
3
​
d = e = f = 5
print(d)
print(e)
print(f)
>>>结果:
5
5
5

2. 标准数据类型

数据类型是指变量被赋值的值的类型。

  • Numbers(数字)

    • int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。

    • bool (布尔), 如 True。

    • float (浮点数), 如 1.23、3E-2

    • complex (复数), 如 1 + 2j、 1.1 + 2.2j

  • String(字符串)

  • List(列表)

  • Tuple(元组)

  • Dictionary(字典)

3. Number类型

  • int:指所有的整数,没有限制,无限大。如果数字过大,可以使用下划线分割,例如:123_343_343这个分割几位都行,没有限制。10 进制数字不能以 0 开头,只要是数字,打印时,一定是10进制显示

    • 二进制: 0b开头

    • 八进制:0o开头

    • 十六进制:0x开头

  • float:指所有的小数。对浮点数进行运算时,结果可能不精确。

4. 字符串

  • 定义:字符串表示一段文本信息,字符串是程序中使用最多的数据类型。定义的时候必须需要用引号引起来,引号可以是单引号、双引号以及三引号(可以是单引号也可以是双引号)。相同的引号不能嵌套。并且单引号跟双引号不能换行,可以使用 \ 换行,但是打印的时候还是不换行,可以使用三引号换行,并且保留格式,单引号跟双引号也可以使用换行符 \n在打印的时候换行

    msg = "一个男人"
    print(msg)
    msg= '一个男人'
    print(msg)
    msg= """
        一个男人
        温水煮蛙
    """
    print(msg)
    msg = '''
        一个男人
        温水煮蛙
    '''
    print(msg)
    ​
    >>>结果:
    一个男人
    一个男人
    ​
        一个男人
        温水煮蛙
    ​
        一个男人
        温水煮蛙
  • 转义字符: \,使用转义符可以再字符串中使用一些特殊内容

    msg = "马老师说:\"今天的天气不错\""
    print(msg)
    ​
    >>>结果:
    马老师说:"今天的天气不错"
    • \t制表符

    • \n换行符

    • \\表示反斜杠

    • \uxxxx表示 编码,例如 \u16a1,可以参考 Unicode 编码表

  • 字符串的格式化

    字符串之间可以使用 + 拼接,但是这种写法不常用,原因是字符串不能跟其他类型的数据进行拼接。

    msg = "一个" + '男人'
    print(msg)
    ​
    >>>结果:
    一个男人
    • 使用 print参数拼接

      print("aaaa",2323)
      ​
      >>>结果:
      aaaa 2323
    • 占位符

      在创建字符串是,可以指定占位符

      • %s表示任意字符串,%5s表示占位字符串最少是5个,如果不够使用空格补充。%s补充的值可以是任意类型。可以使用 %x.ys表示字符串的长度限制在x-y位之间

        msg = "我是%10s" % '最靓的仔'
        print(msg)
        msg = "我是%s" % '最靓的仔'
        print(msg)
        msg = "hello %s,你好,我是%s" % ("tom","cat")
        print(msg)
        ​
        >>>结果:
        我是      最靓的仔
        我是最靓的仔
        hello tom,你好,我是cat
      • %f浮点数的占位符,可以使用 %x.yf表示小数的整数部分占 x 位(没有的部分使用空格补充,这个一般没有用,可以使用%.yf),小数部分保留 y 位小数

        message = "一个小数:%f" % 12.345
        ​
        >>>结果:
        一个小数:12.345000
        ​
        # 小数位太长,指定多少位小数
        message = "指定位数的小数:%.2f" % 12.345
        print(message)
        ​
        >>>结果:
        指定位数的小数:12.35
      • %d整数的占位符,可以使用 %x.yd表示整数部分 x 位(没有的部分使用空格补充,y 没有用,可以使用%xd

        message = "一个整数:%10d" % 2023
        print(message)
        ​
        >>>结果:
        一个整数:      2023
    • 格式换字符串(这是名称)

      格式化字符串是指在创建字符串的时候在字符串前添加一个 f 来创建一个格式化字符串。在格式化字符串中可以直接嵌入变量。

      name = "小明"
      age = 16
      message = f"你好{name},我今年{age}岁"
      print(message)
      
      >>>结果:
      你好小明,我今年16岁
  • 字符串的复制(将数字跟字符串相乘)

    custname = "abcdefg"
    custname = custname * 3
    print(custname)
    
    >>>结果:
    abcdefgabcdefgabcdefg

5. 布尔值和空值

  • 布尔值(bool)

    也属于整型,主要用来做逻辑判断,只有两个值 True(表示真 - 1)和 False(表示假 - 0)

  • 空值(None)

    表示不存在,空值

6. 类型检查

通过类型检查,可以知道值或者变量的类型,使用 type()函数检查

id = 1345
name = "张三"
money = 14562.45
is_sure = True

print(type(id))
print(type(2332))
print(type(name))
print(type("sdfsdf"))
print(type(money))
print(type(1234.56))
print(type(is_sure))
print(type(False))

>>>结果:
<class 'int'>
<class 'int'>
<class 'str'>
<class 'str'>
<class 'float'>
<class 'float'>
<class 'bool'>
<class 'bool'>

7. 类型转换

类型转换对象本身的类型,而是将对象的值转换为新的对象。如果把 a = 100转换为 a = '100,并不是将 100 这个对象的类型改变了,而是创建了一个类型为 str值为 100 的新对象,毕竟,对象的 id 跟 type 在对象创建之后就不能被改变了。

  • int():将其他类型得对象转换为 int 类型。

    不会对原来的对象产生影响,它是将对象转换为 int(创建一个新对象)将其作为返回值返回。

    • 布尔值: True - 1, False - 0

    • 浮点数:直接取整,是指直接舍弃掉小数点后面的内容

    • 字符串:合法的整数字符串直接转换为对应的数字,如果不是一个合法的整数字符串,则会报错

      >>> int('123.3')
      Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
      ValueError: invalid literal for int() with base 10: '123.3'
    • 对于其他不可转换为整型的对象,则直接报错ValueError

  • float():将其他类型得对象转换为 float 类型。

    如果是 int 跟 bool 的要被转换,在值得后面直接加 .0

    >>> float(True)
    1.0
    >>> float(100)
    100.0
    >>>

    如果是字符串,跟 int 差不多一个意思。

  • str(): 将其他类型得对象转换为 str 类型。

    >>> str(True)
    'True'
    >>> str(123)
    '123'
    >>> str(123.3)
    '123.3'
  • bool():将其他类型得对象转换为 bool 类型。

    任何对象都可以转换为布尔值。

    • 对于所有表示空得对象都会转换为 False,注意: 0 表示没有,使用bool(0)就是 False

      表示空值: 0 ,None, ' '

    • 非空得对象都会转换为 True

      >>> bool(None)
      False
      >>> bool(0)
      False
      >>> bool('')
      False
      >>> bool(' ')
      True
      >>>
      >>> bool(1234)
      True
      >>> bool('1212dsfdsf')
      True



评论