获取数据类型
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