python入门基础1(类型和运算)

类型和运算

一、数据类型

1.不可变
1.1基本类型

a.none

    是Python的特殊类型,Null对象或者是None Type,它只有一个值None。
    None是一个特殊的常量。None和False不同。None不是0。None不是空字符串。
    None是一个空的对象,代表什么都没有。
    它不支持任何运算也没有任何内建方法。
    None和任何其他的数据类型比较永远返回False。
    None有自己的数据类型NoneType。
    你可以将None复制给任何变量,但是你不能创建其他NoneType对象。

b.布尔

    python布尔类型对应两个布尔值:True和False(大小写敏感),分别对应1和0。
   下面的值在作为布尔表达式时,会被解释器看作False:
    1、None;    2、False;    3、任何为0的数字类型,如:0,0.0,0j;    4、任何空序列,如:'',(),[];  

    5、任何空字典,例如:{};    6、用户定义的类实例,如果类定义了__bool__()或者__len__()方法,并且该方法        返回0或者布尔值False。
    其它所有值被解释器看作True。
    python中布尔操作:
    1、x or y:if x is false,then y, else x
    2、x and y:if x is false, then x, else y
    3、not x:if x is false, then True, else False

c.数字

    Python Number 数据类型用于存储数值。
    数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。
    以下实例在变量赋值时 Number 对象将被创建:var1 = 1。
    可以使用del语句删除一些(单个或多个) Number 对象引用。del var,del var_a, var_b。  

    更改数字对象:通过 给数字对象(重新)赋值, 您可以“更新”一个数值对象。anInt += 1 ,aFloat = 2.718。
    Python 支持四种不同的数值类型:
    整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。
    长整型(long integers) - 无限大小的整数,整数最后是一个大写或小写的L。
    浮点型(floating point real values) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
    复数( (complex numbers)) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

d.字符串和字节串

    字符串编码成字节:
        bytes = str.encode(encoding='utf-8', errors = 'strict')
        将字符串编码成字节,默认的解码方式为utf-8,这个需要根据当前字符串的编码方式来进行解码。

    字节解码成字符串:
        str = bytes.decode(encoding='utf-8', errors='strict)
        将字节解码成UTF-8的编码形式的字符串
    另外,字节使用语法b’“ ”  来定义:mybytes = b'bytes‘。

1.2容器类型:元祖:tuple    元祖用()

    #count 用于计算元素出现的个数: n_tuple = ("zhangyanlin","suoning","nick"),print(n_tuple.count('zhangyanlin'))
    #index获取指定元素的指定位置:n_tuple = ("zhangyanlin","suoning","nick"),print(n_tuple.index('zhangyanlin'))

    Tuple 比 list 操作速度快。如果定义了一个值的常量集,并且要不断地遍历它,使用 tuple 代替 list。
    如果对不需要修改的数据进行 “写保护”,可以使代码更安全。使用 tuple 而不是 list 如同拥有一个隐含的 assert 语句,说明这一数据是常量。如果必须要改变这些值,则需要执行 tuple 到 list 的转换 (需要使用一个特殊的函数)。
    Tuples 可以在 dictionary 中被用做 key,但是 list 不行。
    Tuples 可以用在字符串格式化中。

2.可变

2.1列表

    列表的语法,以中括号开通和结尾,元素以逗号隔开。例如:n = []
 列表是以下标取值,第一个元素下标是0,第二个元素下标是1,最后一个元素下标是-1.

 定义空列表:n_list=[]
 定义一个列表:n_list=['Alex','Rachel','Rain','23']
 访问列表中的数据:n[2]访问的是:Rain
 访问区间的数据(顾头不顾尾):访问Rachel,Rain之间的数据 n_list[1:3]

   2.1.1增加
         修改法,n[1] = "wang"  在列表n的下标为1的位置增加一个元素"wang",当然这个下标原来的元素也就没有了,也同样是修改
         插入法,n.insert(下标,要插入的元素名称),如 n.insert(0,"li")
                       n.append("haha")  增加到最后一个

   2.1.2删除
         del n[1]  删(del并不是列表的专属,它可以也可以删除别的,例如直接删除变量)
         n.pop(0)  默认删除最后一个,可以加上列表下标
         n.remove("zhangsan")

  2.1.3修改
         如n = ["zhangsan","lisi","wanger","liwu"],运行n[1] = "wang"#,则['zhangsan', 'wang', 'wanger', 'liwu']

  2.1.4统计(count)
         如n = ["zhaan","lisi","wage","liwu"],运行print(n.count("liwu")),则输出1 (代表liwu这个元素只有一个

  2.1.5索引(获取元素的下标)(index)
         如n = ["zhaan","lisi","wage","liwu"],运行print(n.index("lisi")),则输出1 (表示lisi这个元素在列表中的下标是1

  2.1.6排序(sort)
         如n= ["zhaan","lisi","wage","liwu","123","456"],运行print(n.sort()),则输出

         TypeError: unorderable types: int() < str()#python3里面不同类型的数据不能排序,python2.x里面可以排序,按照ASCII码排序。

  2.1.7翻转(reverse)
         如n = ["zhaan","lisi","wage","liwu","3","2","1"],运行n.reverse(),print(n),则输出['1', '2', '3', 'liwu', 'wage', 'lisi', 'zhaan']

  2.1.8扩展(extend)

         如n= ["zhaan","lisi","wage","liwu","3","2","1"],n_2 =  ["zha","wa","li"],运行n.extend(n_2),print(n),则输出["zhaan","lisi","wage","liwu","3","2","1","zha","wa","li"]

 2.1.9拷贝(浅copy和深copy)
       a.浅copy
          如n =['zhangs', 'lisi', 'wanger', 'liwu', ['beidu', 'wangyi', 'sogou']], n_2 = n.copy(),

                                                        运行print(n), print(n_2),则输出

                  ['zhangs', 'lisi', 'wanger', 'liwu', ['beidu', 'wangyi', 'sogou']]    
                  ['zhangs', 'lisi', 'wanger', 'liwu', ['beidu', 'wangyi', 'sogou']]

             运行name[0] = "wangsan",运行print(n), print(n_2),则输出

                  ['wangsan', 'lisi', 'wanger', 'liwu', ['beidu', 'wangyi', 'sogou']]    
                  ['zhangs', 'lisi', 'wanger', 'liwu', ['beidu', 'wangyi', 'sogou']]

             我们在n里面修改zhangs为wangsan,发现n_2并没有跟着n变化,说明n_2已经独立为一个新的列表(列表的第一层数据已经完全被复制)。

              运行 name[4][0] =  "beijing",运行print(n),print(n_2),则输出
                 ['wangsan', 'lisi', 'wanger', 'liwu', ['beijing', 'wangyi', 'sogou']]
                 ['zhangs', 'lisi', 'wanger', 'liwu', ['beijing', 'wangyi', 'sogou']]

            但是,我们接着在n里面的的第二层列表修改baidu为beijing,发现n和n_2一模一样,这说明,列表只copy第一层数据,第二层开始就是共享一个数据(只复制第一层)

  

    b.深copy
           import copy(我们这里引用了copy这个模块,这里面的copy.copy跟列表中的copy一模一样)
   
上面所示标红的字体看出,深copy会将更深层次的数据完完全全的copy一份。

2.2集合

python集合链接引用

2.3字典


二、动态类型简介


三、表达式和运算






















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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值