首页 > 编程语言 >python笔记-数据类型

python笔记-数据类型

时间:2023-05-05 14:14:09浏览次数:39  
标签:__ python 生成器 数据类型 笔记 print Foo type types

获取数据类型

type(val)

if type(1) == int:
    print('1是int类型')
if type('hello') == str:
    print('1是字符串类型')
if type(1.5) == float:
    print('1是float类型')
if type([1,2]) == list:
    print('1是list类型')

类型转换

print(int('123'))
print(str('123'))
print(float('123'))

占位符

world = 'world'
message2 = f'hello {world}'


# %5d代表宽度,多余字符输出空格;%.2f代表2个小数位
message = "hello 字符串:%5s 浮点:%.2f 数字:%5d" % (15,15,15)

python的types模块

1.types是什么:

types模块中包含python中各种常见的数据类型,如IntType(整型),FloatType(浮点型)等等。

>>> import types
 
>>>dir(types)
['BooleanType',
 'BufferType',
 'BuiltinFunctionType',
 'BuiltinMethodType',
 'ClassType',
 'CodeType',
 'ComplexType',
 'DictProxyType',
 'DictType',
 'DictionaryType',
 'EllipsisType',
 'FileType',
 'FloatType',
 'FrameType',
 'FunctionType',
 'GeneratorType',
 'GetSetDescriptorType',
 'InstanceType',
 'IntType',
 'LambdaType',
 'ListType',
 'LongType',
 'MemberDescriptorType',
 'MethodType',
 'ModuleType',
 'NoneType',
 'NotImplementedType',
 'ObjectType',
 'SliceType',
 'StringType',
 'StringTypes',
 'TracebackType',
 'TupleType',
 'TypeType',
 'UnboundMethodType',
 'UnicodeType',
 'XRangeType',
 '__all__',
 '__builtins__',
 '__doc__',
 '__file__',
 '__name__',
 '__package__']

2.types常见用法:

# 100是整型吗?
>>> isinstance(100, types.IntType)
True
 
>>>type(100)
int
 
# 看下types的源码就会发现types.IntType就是int
>>> types.IntType is int
True

但有些类型并不是int这样简单的数据类型:

class Foo:
   def run(self):
       return None

def bark(self):
   print('barking')

a = Foo()

print(type(1))
print(type(Foo))
print(type(Foo.run))
print(type(Foo().run))
print(type(bark))

输出结果:

<class 'int'>
<class 'type'>
<class 'function'>
<class 'method'>
<class 'function'>

python中总有些奇奇怪怪的类型。有些类型默认python中没有像int那样直接就有,单但其实也可以自己定义的。

>>> import types
 
>>> class Foo:
        def run(self):
            return None
    
    def bark(self):
        print('barking')
 
# Foo.run是函数吗?
>>> isinstance(Foo.run, types.FunctionType)
True
 
# Foo().run是方法吗?
>>> isinstance(Foo().run, types.MethodType)
True

3.MethodType动态的给对象添加实例方法:

import types
class Foo:
    def run(self):
        return None
 
def bark(self):
    print('i am barking')
 
a = Foo()
a.bark = types.MethodType(bark, a)
a.bark()

如果不用MethodType而是直接a.bark = bark的话,需要在调用bark时额外传递self参数,这不是我们想要的。

types.GeneratorType

是Python中的一个内置类型,表示一个生成器对象。生成器是一种特殊的迭代器,它可以在需要时即时生成值,而不是一次性生成并存储在内存中(如列表)。

生成器函数使用 yield 关键字定义,它允许函数返回一个值,并在下一次调用时从上一次离开的地方继续执行。当生成器函数被调用时,它返回一个生成器对象,可以使用 for 循环或 next() 函数进行迭代。

下面是一个生成斐波那契数列的生成器函数示例:

def fibonacci():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a+b

当该函数被调用时,它返回一个生成器对象,可以用来生成斐波那契数列:

>>> fib = fibonacci()
>>> next(fib)
0
>>> next(fib)
1
>>> next(fib)
1
>>> next(fib)
2
>>> next(fib)
3
types.GeneratorType 类型用于检查一个对象是否为生成器对象:

>>> isinstance(fib, types.GeneratorType)
True

在实际开发中,生成器对象可以用来处理大量数据或无限序列,避免一次性将所有数据存储在内存中,从而提高程序的性能和效率。例如,可以使用生成器对象来处理大型日志文件,或者生成无限的自然数序列。

标签:__,python,生成器,数据类型,笔记,print,Foo,type,types
From: https://www.cnblogs.com/fanfan-90/p/17373940.html

相关文章

  • Typora+MinIO+Python代码打造舒适协作环境
    作者:IT王小二博客:https://itwxe.com不知不觉大半年没更新了...前面小二介绍过使用Typora+MinIO+Java代码打造舒适写作环境,然后有很多大佬啊,说用Java来实现简直是杀鸡用上牛刀,小二想了想,确实有点...正好小二最近在学习Python,所以咱们就改用Python实现一版。安装MinIO安装参考......
  • AI 学习笔记
    AI学习笔记机器学习简介DifferenttypesofFunctionsRegression:Thefunctionoutputsascalar(标量).predictthePM2.5Classification:Givenoptions(classes),thefunctionoutputsthecorrectone.SpamfilteringStructuredLearning:createsomethingwi......
  • python dingtalk钉钉群告警消息发布
    目录pythondingtalk钉钉群告警消息发布Dingtalk简介钉钉告警消息通知脚本pythondingtalk钉钉群告警消息发布公司用oprator部署的prometheus,理论上时可以直接通过alertmanager的配置。通过钉钉机器人的webhook向群里发送告警信息。但是想要格式化输出格式,并且规范化就成了问题......
  • 解决python配置环境变量后cmd窗口无法打开并弹出Microsoft store界面
    前言在一台新的机器上安装python并正确配置环境变量后,本来打算测试一下是否安装成功,结果在cmd窗口输入python执行后,没有出现版本信息,并会弹出Microsoftstore界面。反复检查了一下,环境变量确实已经正确配置了,但还是无法执行。后经查找资料解决了该问题,在此做下记录。......
  • Python使用虚拟环境
    本文来源:Python使用虚拟环境-钻芒博客(zuanmang.net)安装虚拟环境sudoapt-getupdatesudoapt-getinstallpython3-venv回到用户目录: cd~创建虚拟环境: python3-mvenvvenv激活虚拟环境: sourcevenv/bin/activate在激活的虚拟环境......
  • chatgpt接口开发笔记2生成图片接口
    chatgpt接口开发笔记2生成图片接口chatgpt的生成图片接口,可以根据用户的描述来生成满足用户意愿的图片1、了解接口参数接口地址:POSThttps://api.openai.com/v1/images/generations下面是接口文档描述内容curlhttps://api.openai.com/v1/images/generations\-H"Co......
  • 批量修改Mac txt文件名 Python脚本
    本文来源:批量修改Mactxt文件名Python脚本-钻芒博客(zuanmang.net)需求:修改文件夹内所有txt文件的文件名称,如 钻芒博客1234_你好1234567.txt要求去掉_后边的名称,使其改成 钻芒博客1234.txt如果文件名称没有_,则不处理Python importosimportsubprocess #替......
  • 利用Python爬虫采集1688商品详情数据 +商品列表数据+商品API接口(支持全网)
    一、如何通过手动方式查看1688商品详情页面的数据1.1688商品详情API接口(item_get-获得1688商品详情接口),1688API接口代码对接可以获取到宝贝ID,宝贝标题,价格,掌柜名称,库存,最小购买数,宝贝链接,宝贝图片,品牌名称,商品详情,详情图片等页面上有的数据均可以获取到,手动方式如下:例......
  • Python NumPy 广播(Broadcast)
    广播(Broadcast)是numpy对不同形状(shape)的数组进行数值计算的方式,对数组的算术运算通常在相应的元素上进行。如果两个数组a和b形状相同,即满足a.shape==b.shape,那么a*b的结果就是a与b数组对应位相乘。这要求维数相同,且各维度的长度相同。importnumpyasnp"......
  • 基础数据类型和操作符
    一、go程序基础1、文件名go语言文件名命名规范:go语言的文件名必须以.go结尾。go语言的文件名必须以小写字母开头,否则会报错。go语言的文件名不能包含空格,否则会报错。go语言的文件名不能包含特殊字符,否则会报错。go语言的文件名不能包含中文,否则会报错。go语言的文件名不......