python数据类型与传参声明

一、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'\x00\x00\x00\x00\x00')

bytes(5)  # b'\x00\x00\x00\x00\x00'

 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'
>>>

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lion King

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值