加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 一、python已知的数据类型
    • 二、判断标志的使用
    •  三、数据类型的区别
  • 相关推荐
申请入驻 产业图谱

python数据类型与传参声明

2024/12/13
175
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、python已知的数据类型

1、标准数据类型

(1)Python3 中有六个标准的数据类型:

  • Number(数字),判断标志: int、float、bool、complex
  • String(字符串),判断标志: str
  • List(列表),判断标志: list
  • Tuple(元组),判断标志: tuple
  • Set(集合),判断标志: set
  • Dictionary(字典),判断标志: dict

(2)在Python3 的这六个标准数据类型中:

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

2、其他数据类型

  • range,判断标志: range
  • frozenset,判断标志: frozenset
  • bytes ,判断标志: bytes
  • bytearray ,判断标志: bytearray
  • memoryvie , 判断标志: memoryview

二、判断标志的使用

1、直接判断数据类型

(1)运行代码:

isinstance(5, int)
isinstance(5.5, float)
isinstance(False, bool)
isinstance(1+2j, complex)
isinstance("str", str)
isinstance([1,2,3,4,5], list)
isinstance((1,2,3,4,5), tuple)
isinstance({1,2,3,4,5}, set)
isinstance({"1":1}, dict)
isinstance(range(5), range)
isinstance(frozenset({1,2,3,4,5}), frozenset)
isinstance(b"bit", bytes)
isinstance(bytearray(5), bytearray)
isinstance(memoryview(bytes(5)), memoryview)

(2)运行结果:

isinstance(5, int)
True
isinstance(5.5, float)
True
isinstance(False, bool)
True
isinstance(1+2j, complex)
True
isinstance("str", str)
True
isinstance([1,2,3,4,5], list)
True
isinstance((1,2,3,4,5), tuple)
True
isinstance({1,2,3,4,5}, set)
True
isinstance({"1":1}, dict)
True
isinstance(range(5), range)
True
isinstance(frozenset({1,2,3,4,5}), frozenset)
True
isinstance(b"bit", bytes)
True
isinstance(bytearray(5), bytearray)
True
isinstance(memoryview(bytes(5)), memoryview)
True

2、传参时的使用

(1)样式一:形参不赋值

def demo(name_int: int,
         name_float: float,
         name_bool: bool,
         name_complex: complex,
         name_str: str,
         name_list: list,
         name_tuple: tuple,
         name_set: set,
         name_dict: dict,
         name_range: range,
         name_frozenset: frozenset,
         name_bytes: bytes,
         name_bytearray: bytearray,
         name_memoryview: memoryview):
    pass

demo(name_int=1,
         name_float=2,
         name_bool=3,
         name_complex=4,
         name_str=5,
         name_list=6,
         name_tuple=7,
         name_set=8,
         name_dict=9,
         name_range=10,
         name_frozenset=11,
         name_bytes=12,
         name_bytearray=13,
         name_memoryview=14)

(2)样式二:传参赋值

备注:引号可加可不加,如果随便写其他字符串,数据类型将是Any,如果后面赋值,将以值的类型为准。

def demo(name_int: "int"=5,
         name_float: "float"=5,
         name_bool: "bool"=False,
         name_complex: "complex"=1+2j,
         name_str: "str"="str",
         name_list: "list"=[1,2,3,4,5],
         name_tuple: "tuple"=(1,2,3,4,5),
         name_set: "set"={1,2,3,4,5},
         name_dict: "dict"={"1":1},
         name_range: "range"=range(5),
         name_frozenset: "frozenset"=frozenset({1,2,3,4,5}),
         name_bytes: "bytes"=b"bit",
         name_bytearray: "bytearray"=bytearray(5),
         name_memoryview: "memoryview"=memoryview(bytes(5))):
    print(name_memoryview)
    print(name_bytearray)
    print(name_bytes)
    print(name_frozenset)
    print(name_range)
    print(name_dict)
    print(name_set)
    print(name_tuple)
    print(name_list)
    print(name_str)
    print(name_complex)
    print(name_bool)
    print(name_float)
    print(name_int)

demo()

(3)样式三:函数返回类型

def nice(num:int) -> int:
    print(num)
    return num

print(nice(100))

如上述函数,num:int提示传入整形,而-> int 提示返回整形。

 三、数据类型的区别

1、frozenset 与 set 的区别

都是字典,不过,set无序排序且不重复,是可变的,有add()、remove()等方法,而frozenset是不可变的。

set({1,2,3,4,5})  # {1,2,3,4,5}
frozenset({1, 2, 3, 4, 5})  # frozenset({1, 2, 3, 4, 5})

2、bytes 与 bytearray 的区别

都是字节,不过,bytes是不可变序列,bytearray是可变序列,可以原处修改字节。

 bytearray(5)  #  bytearray(b'x00x00x00x00x00')

bytes(5)  # b'x00x00x00x00x00'

3、list 与 range 的区别

list是列表,可包含各种数据类型,而range对象返回的是一系列连续增加的整数,是特殊的列表。

4、memoryview的介绍

memoryview() 函数返回给定参数的内存查看对象(memory view)。所谓内存查看对象,是指对支持缓冲区协议的数据进行包装,在不需要复制对象基础上允许Python代码访问。

>>>v = memoryview(bytearray("abcefg", 'utf-8'))
>>> print(v[1])
98
>>> print(v[-1])
103
>>> print(v[1:4])
<memory at 0x10f543a08>
>>> print(v[1:4].tobytes())
b'bce'
>>>

相关推荐