云边日落 思君如满月,夜夜减清辉。 (唐·张九龄·赋得自君之出矣)
博主 云边日落
渝ICP备2021002886号-1渝公网安备50022502000591号博主 11月5日 在线自豪地使用 Typecho 建站搭配使用 🌻Sunny 主题当前在线 1 人
歌曲封面 未知作品
  • 歌曲封面“魔女の宅急便”~ルージュの伝言松任谷由実

渝ICP备2021002886号-1

渝公网安备50022502000591号

网站已运行 4 年 152 天 18 小时 44 分

Powered by Typecho & Sunny

2 online · 47 ms

Title

数据类型浅谈

酒笙

·

·

287次阅读
python
Article
⚠️ 本文最后更新于2023年05月31日,已经过了539天没有更新,若内容或图片失效,请留言反馈

Python数据的类型

在学习Python的数据类型之前我们先来看一下思维导图

python中数据类型分类思维导图

python中数据类型分类思维导图)

基本数据类型

对于任何一门语言都存在一些基本类型,Python 也不例外,只不过数据类型在 Python 中要远远比其他语言简单,基本分为以下几种。

  • 数值数据类型,常见的是整数和浮点数
  • 布尔值数据类型,就是常说的真和假
  • 字符串数据类型
    这里要注意,提及到数据类型,特指的是变量的数据类型,在具体学习前,先学会如何看 Python 中的数据类型,才好下手学习。
    这个看数据类型是啥的函数,叫做 type ,见名之意,所以咱们变量起名字的时候,也要学习一下官方命名技巧。
    然后我们来看一下演示代码:

    ♾️ python 代码:
    a = 5
    print(type(a))

    然后我们运行此代码就可以看到如下:

    ♾️ python 代码:
    <class 'int'>

    不难看出,这就是一个整数型数据类型,我们在用小数来演示一下:

    ♾️ python 代码:
    a = 5.2
    print(type(a))

    然后运行结果如下:

    ♾️ python 代码:
    <class 'float'>

    可以发现这是浮点数类型的数据, float浮点数,这些可以参考上面的思维导图。

    数值数据类型

    上文你已经接触到了 Python 中的两种数值数据类型,一个叫做整数,一个叫做浮点数,对应到数学上的区别就是一个带小数点,一个不带,其实这就是最根本的区别。

如果整数和浮点数相加,最终的结果是浮点数,Python 会自动给转换过去,代码如下:

♾️ python 代码:
x = 10.1
y = 10
z = x + y
print(type(z))

运行结果如下:

♾️ python 代码:
<class 'float'>

整数的不同形式表示

对于编程语言学习者来说,你一定听说过计算机处理的都是二进制,所以编程语言学起来特别难?What?学习编程语言跟二进制是有关系,但是跟你学会一门赚钱的手艺确没啥关系。或者我说的在直接一些,你在北京拿个 1W 块钱的薪水,各种进制的转换可能你都用不到。

将整数显示成二进制格式
注意一会还会将整数显示成八进制与十六进制,这里处理的都是整数,也就是 1,2,3,4 这种不带小数点的,浮点先不要考虑。

又一次需要用到一个后续才会明确的知识点,叫做 Python 内置函数,将整数转换成二进制格式显示用到的函数叫做 bin,代码如下:

♾️ python 代码:
x = 10
print(bin(x))

输出结果为:

♾️ python 代码:
0b1010

二进制以 0b 开头,后面都是 1,0 排列,如果你看到 Python 代码中出现了这样的整数,要认识这就是一个普通的数字,只是展示方式不同。

将整数显示成八进制格式
将整数转换成八进制用到的内置函数是 oct,具体代码可自行尝试,八进制显示的数字以 0o 开头。
将整数显示成十六进制格式
以 0x 开头的数字为十六进制格式展示,转换用函数为 hex。
截止到这里,你已经对整数与整数的不同形式展示有了初步的认知,并且这些都不重要,重要的是你学习之后,看到 Python 代码中出现以这些符号开头的内容,你知道它就是一个普通的整数就好了。

数据类型强制转换

这个地方只是类型强制转换的冰山一角,为何学习也是因为你已经掌握了整数和浮点数,大概也对它们之前的区别有了那么一丝认识。其实它们之前还可以进行互相的转换,只不过转换你要承担一些风险,为啥呢,往下看。

♾️ python 代码:
x = 10.5
print(int(x))

上述代码,我将浮点数进行了类型强制转换,注意在 x 前面套了一个 int 函数的壳,函数后面咱才会学习,现在你能模仿代码编写,能看懂我说的是啥就行。

在变量 x 外面套了一个 int()函数,然后运行,输出的结果是 10,风险出现了,浮点数转换成整数,小数丢掉了…是真正的丢掉了,这种场景在后续编程中你会经常碰到。

int 其实也是 Python 的一个内置函数,它会尝试将任何数据类型的变量转换成整数,注意是任何数据类型的变量。

同理,你如果能猜到将任何数据类型的变量转换成浮点数的函数名为 float,证明你已经开始慢慢摸到 python 的精髓了。

几个数值数据类型常用的函数

数值数据类型常用的函数,这里简单举几个例子,后面还会详细学习。

  • abs() 计算绝对值
  • pow() 次方运算
  • round() 四舍五入
  • max() 取最大值
  • min() 去最小值
    参考代码如下,临摹 2 遍知道是在干啥就行,下面的代码涉及了函数中参数的概念,不做过多的解释。

    ♾️ python 代码:
    # abs() 计算绝对值
    a = -1
    print(abs(a))
    # pow() 次方运算
    x = 2
    c = 3
    print(pow(x,c))
    # round() 四舍五入
    
    d = 34.6
    print(round(d))
    # max()  取最大值
    print(max(1,2,3))
    # min() 去最小值
    print(min(9,10,6))

    布尔值数据类型
    布尔来自英文 boolean 的音译,在 Python 中布尔值有两种,一个是真(True),另外一个就是假(False),使用 type 函数测试数据类型布尔值得到的是 bool。
    注意 bool 在有的地方也会归为整数,是因为真(True)被强制转换之后等于 1,假(False)被前置转换之后等于 0。
    代码如下:

    ♾️ python 代码:
    x = True
    print(int(x))
    print(int(False))

    字符串是 Python 中使用场景最多的数据类型了,也是知识点最多的数据类型,一般情况下,两个双引号( " )或者两个单引号( ' )中间的部分就是字符串,在使用的时候一定要注意嵌套问题。例如下述代码:

    ♾️ python 代码:
    my_name = "嘿嘿"
    print(my_name)
    
    my_name = '哈哈哈'
    print(my_name)
    
    my_name = '梦想"哈哈'
    print(my_name)
    print(type(my_name))
    

    字符串的连接
    两个字符串通过 + 可以进行连接,这里的加号就不是数字之间加法的含义了,测试如下:

    ♾️ python 代码:
    a = "my"
    b = "name"
    
    c = a+b
    print(c)
    

    数字与字符串相加,会提示错误,如果不想报错,可以通过 str 函数将数字转换成字符串,例如:

    ♾️ python 代码:
    a = 123
    b = "name"
    # str(a) 将整数变量a转换成字符串
    c = str(a) + b
    print(c)
    

    多行字符串

    在前文已经学习了三引号可用于注释,其实三引号真正的用途依旧是字符串场景,表示多行字符串。

    ♾️ python 代码:
    my_str = """
    酒笙
    还是
    那么
    优秀
    """
    print(my_str)
    

    转义字符

    在字符串中有一些特殊的字符,需要特别处理,例如,就想在单引号中使用单引号,那需要如下格式编写:

    ♾️ python 代码:
    a = 'I\'m a girl '
    print(a)
    

    当然有些时候,你需要避免转移字符进行转义,那需要在整体字符串前增加一个特殊的字母 r,字符串前面增加特殊字符有很多,今天只学习这一个。例如下述代码。

    ♾️ python 代码:
    a = r"I\nm a girl"
    print(a)
    

    输入与输出

    本小节核心学习的两个函数,一个是 print,另一个是 input,在学习它们两个之前,在补充一个内置函数 help 该函数可以查看其它函数的使用文档。比如使用 print 测试:

    ♾️ python 代码:
    help(print)

    结果如下:

    ♾️ python 代码:
    D:\Users\酒笙\AppData\Local\Programs\Python\Python39\python.exe D:/源码/1.py
    Help on built-in function print in module builtins:
    
    print(...)
      print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
      
      Prints the values to a stream, or to sys.stdout by default.
      Optional keyword arguments:
      file:  a file-like object (stream); defaults to the current sys.stdout.
      sep:   string inserted between values, default a space.
      end:   string appended after the last value, default a newline.
      flush: whether to forcibly flush the stream.
    
    
    Process finished with exit code 0
    

    这其中就包含了 print 函数的完整说明,最重要的部分如下:

    ♾️ python 代码:
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    

    其中:

  • value 表示要输出的数据,可以多个,用逗号 , 分隔
  • sep 输出多个数据时,分隔符号,默认是空格
  • end 输出一行末尾输出的符号
  • file 输出位置,默认输出控制台,就是黑窗口中,可以设置到具体文件
  • flush 是否清除数据流缓冲区,默认为 False

    格式化 print 输出

    在很多教材中本部分内容会占用比较多的时间,其实大可不必,因为东西太杂,学过反而忘记了,不如简单学习在大脑留下一个“恩,有这个东西”的痕迹即可。

格式化输出就是这样一个碎的知识点,格式化输出 print 的意思就是按照你的意思输出东西到任何载体上。

首先要学习的就是 格式化字符,常见的有下面这几个。

  • %d 整数输出
  • %f 浮点数输出
  • %x 十六进制输出
  • %o 八进制
  • %s 字符串输出,其实会这一个就行了
    演示代码如下:

    ♾️ python 代码:
    name = "酒笙"
    age = 18
    score = 100
    
    # 格式化一个变量输出
    print("我是 %s" % name)
    # 格式化多个变量输出
    print("我是 %s 今年 %d岁了,我考试得了%d分" % (name,age,score))
    
    

    注意格式化的时候,前面是一个待格式的字符串,把格式化字符作为一个特殊的符号放在一个字符串里面,相当于占了一个坑位,字符串后面跟着一个 %,该符号固定为 %,在后面是替换的内容,可以是变量名,也可以直接是值,如果前面的占位的是 %d,后面就是数字,如果是 %s,后面就是字符串。

    format 函数

    上述 % 在学习阶段使用一下还可以,在实际的格式化输出中,更多的还是使用 format 进行操作,format 在使用的时候,通过 {} 符号进行占位,例如:

    ♾️ python 代码:
    print("我是{},今年{},考试得了{}".format(name,age,score))
    

    input 数据输入

    input 执行的和 print 一样,就不过多说明。直接看代码

    ♾️ python 代码:
    name = input("请输入你的姓名:")
    print("输入的姓名为{}".format(name))
    

    代码运行会要求你输入自己的姓名,回车之后会格式化输出。默认情况下 input 获取的输入数据会存储到一个变量中,本例为 name,该变量类型为字符串类型,如果你需要获取用户输入数字,记得通过 int 进行一下转换。

    总结

    学习要沉下心来

现在已有 0 条评论,7 人点赞
Author:酒笙
作者
数据类型浅谈
当前文章累计共 5480 字,阅读大概需要 7 分钟。
openstack——nova
2021年6月30日 · 0评论
python错误处理
2022年8月19日 · 0评论
python模块二
2022年2月22日 · 0评论
Comment:共0条
发表
搜 索 消 息 足 迹
你还不曾留言过..
你还不曾留下足迹..
博主 不再显示
博主