一、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):passdemo(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 numprint(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'
>>>

python数据类型与传参声明相关推荐

  1. python解包裹_关于Python中包裹传参和解包裹的理解

    原标题:关于Python中包裹传参和解包裹的理解 1.包裹传参 首先思考一个问题:为什么要有包裹传参?原因包括但不仅限于以下两点:①不确定参数的个数.②希望函数定义的更加松散灵活 包裹传参分两种:包裹 ...

  2. Python 命令行传参

    Python 命令行传参 说到 python 命令行传参,可能大部分人的第一反应就是用 argparse.的确,argparse 在我们需要指定多个预设的参数(如深度学习中指定模型的超参数等)时,是非 ...

  3. python函数参数传递机制_Python 学习笔记(一) 理解Python的函数传参机制

    对于刚接触Python不久的新手,Python的函数传参机制往往会让人迷惑.学过C的同学都知道函数参数可以传值或者传地址.比如下面这段代码 点击(此处)折叠或打开 void func(int inpu ...

  4. Python函数之传参

    Python函数之传参 1.函数的传参 实参 位置参数,从左至右,一一对应形参. 关键字参数, 一一对应形参. 混合参数.一一对应形参并且所有的位置参数一定在所有的关键字参数前面. 形参 位置参数.从 ...

  5. python调用函数传参时、有默认值的在中间 报错了_python的大坑:使用空列表作为默认参数,让我怀疑遇到了灵异代码...

    在python中,不要使用列表或者其他可变类型的数据容器作为默认参数.否则你很可能会遇到奇奇怪怪的问题. 如果你在调用某一个函数时,传了同样的参数,手动执行,每次结果都正确.但是用循环遍历重复多次执行 ...

  6. 基本数据类型在传参中的自顶向下和自底向上;this;访问权限修饰符

    数据类型传参变化 在重载方法中,如果传入的参数的数据类型的字节大小小于方法中声明的形式参数类型的字节大小,那么实际数据类型就会提升,char型略有不同,如果无法找到接受char参数的方法,就会直接升到 ...

  7. argparse:Python命令行传参

    诸神缄默不语-个人CSDN博文目录 argparse模块(Python官方文档:argparse - 命令行选项.参数和子命令解析器 - Python 3.10.3 文档),可以用来在用命令行运行Py ...

  8. python如何次传参给线程_python如何给线程中的函数传参?

    1.Process说明 (1)概念 process模块是一个创建进程的模块,借助这个模块,就可以完成进程的创建. (2)语法([group [, target [, name [, args [, k ...

  9. matlab读取txt数据绘图(python命令行传参)

    (1)命令行实现高斯分布 一:综述 Python唯一支持的参数传递方式是『共享传参』(call by sharing)多数面向对象语言都采用这一模式,包括Ruby.Smalltalk和Java(Jav ...

最新文章

  1. 配置错误:不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的...
  2. C++使用数组实现queue之一(附完整源码)
  3. php添加开机启动脚本_centos 7.2 添加php7 的 php-fpm 开机启动
  4. SAP Spartacus 中,Angular <ng-container>使用的一个例子
  5. Redis学习之缓存穿透、缓存击穿和缓存雪崩详解
  6. WPF RichTextBox相关总结
  7. cocos2d-x 发动机分析:程序如何开始和结束?
  8. 魅族2016Java互联网方向其中一道笔试题--青蛙跳台阶问题
  9. 医院耗材管理系统开发_13
  10. Eclipse中添加Windows Builder进行Swing图形界面设计
  11. map转list对象方法,通过stream或者iterator.key集合转list,values集合转list
  12. 老师常用选择题,选择框,单选框,以及各行业产品配置表单选配置明细等
  13. java连接微信发送给好友信息,微信消息转发以及给指定好友发送消息
  14. Win10 + Ubuntu20.04 双系统+双硬盘安装
  15. 学而思python分几个level_学而思新概念英语课程体系表
  16. 实现链表的插入——头插/尾插
  17. 为知笔记 印象笔记 有道笔记 OneNote选择
  18. ipad手写笔哪款好?ipad手写笔推荐
  19. 基于HTML+CSS绘制520情人节爱心飘落动画
  20. 数字中国城市巡礼之南通,公安的“达摩克利斯之剑”

热门文章

  1. php程序系统,php文件系统
  2. 手写字符串 trim 方法,保证浏览器的兼容性
  3. Python matplotlib绘图保存图片空白问题
  4. oracle+12514+C#,Oracle10g ORA-12514
  5. 解决在spring配置文件中包扫描无效问题
  6. Mysql存储过程调用
  7. 关于 AR/VR 的黑科技,Magic leap 以及显示技术的革命(无关Delphi编程)
  8. mysql删除数据后释放磁盘空间
  9. 通达信 python插件选股_[转载]通达信插件选股(基于通达信插件编程规范的简单分析)...
  10. 解决AndroidStudio无法连接华为手机(安卓10)问题