flow_python变量类型(数据类型)

ValueError: list.remove(x): x not in list
can only concatenate list (not “tuple”) to list

“”"
数值类型:
整数 int
浮点 float
复数 complex
布尔类型 bool

序列类型:
    列表 list
    元组 tuple
    字符串 string
    字节 bytearray

映射类型:
    字典 dict

集合类型:
    集合 set
    
标准数据类型
    Python3中有六个标准的数据类型:不可变数据(3个)可变数据(3个)

Python3的六个标准数据类型中:

    不可变数据(3个):Number(数值)、String(字符串、字节)、Tuple(元组);
    可变数据(3个):List(列表)、Dictionary(字典)、Set(集合)
    
鸭子类型
    变量绑定2,根本没提变量的类型
    其他语言,c或者java在定义这个变量的时候,是需要给出变量的类型;在给出变量类型后绑定或者不绑定值,都是可以的。

    python变量的特点,不体现变量的类型,且必须绑定值(python不像其他语言有固定的变量类型);
    why必须绑定值,因为python的变量本身根本没有所谓的类型,所以要知道这个变量是什么类型,必须知道它绑定的值。

    在python中,我们所提到的变量的类型,言外之意,都是指变量绑定的值的类型。

    举例,x绑定的值改了之后,x就由数值类型变成字符串类型。

    x = 1
    x = 'abc'

    所以我们这个笔记一直在说数据类型,没说变量类型;因为变量没有类型,而是数据有类型。

    Python不支持多态也用不到多态,多态的概念是应用于Java和'C#' 这一类强类型语言中,而Python崇尚鸭子类型Duck Typing

    鸭子类型,是一种动态类型的风格。一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由当前方法和属性的集合决定。
    这个概念的名字来源于由James Whitcomb Riley提出的鸭子测试,'鸭子测试'可以这样表述:

    '当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。'
    简而言之,只要表现出像鸭子,我们就认为是鸭子,类比绑定的数值是什么就是什么。

    在鸭子类型中,关注的不是对象类型本身,而是它如何使用的。
    我们可以编写一个函数,它接受一个类型为鸭的对象,并调用它的走和叫方法。在使用鸭子类型的语言汇总,这样的一个函数可以接受一个任意类型的对象,
    并调用它的走和叫方法。如果这些需要被调用的方法不存在,那么将引发一个运行时错误。

        class F1:
            pass

        # 假设,S1是我们的正统类,它继承于根正苗红的F1,是我们的正统类
        class S1(F1):
            def show(self):
                print('S1.show')

        # S2是路人甲,是个歪瓜裂枣,但是他自己也有一个叫show的方法。
        class S2:
            def show(self):
                print('S2.show')


        # 在Java或C#中定义函数参数时,必须指定参数的类型,也即是说,我们如果用
        # Java写下面的Func,需要告知,obj是F1类还是其他什么东西。
        # 如果限定了F1,那么S2是不可以被采纳的。
        # 然而,在Python中,一切都是Obj,它不care你到底是什么类,直接塞进去就可以

        def Func(obj):
            """Func函数需要接收一个F1类型或者F1子类的类型"""
            obj.show()

        s1_obj = S1()
        Func(s1_obj) # 在Func函数中传入S1类的对象 s1_obj,执行 S1 的show方法,结果:S1.show

        s2_obj = S2()
        Func(s2_obj) # 在Func函数中传入Ss类的对象 ss_obj,执行 Ss 的show方法,结果:S2.show

总结
list() 能够将对象转换成列表
tuple() 能够将对象转换成元组
dict() 能够把符合类型的键值对转换成字典
set() 能够将对象转换成集合

s="abcabc"
t=(1,2,3,1)
se={1,2,3}
print(list(s))
print(list(t))
print(list(se))

print(tuple(s))
print(tuple(t))
print(tuple(se))

print(set(s))
print(set(t))    

“”"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值