zoukankan      html  css  js  c++  java
  • python整理-Day2

    变量

      写三种定义变量的方法

    第一种,大家常用的多是这种
    user='wzc'
    passwd='ww'
    第二种
    user1,passwd1='wzc1','www'
    第三种
    #三个单引号或者三个双引号
    ww='''
    sdsdsdsds:%s
    '''%(user)
    

       需要注意一点,我们有的时候会使用拼接,但是这样会比不使用拼接所用的内存要多

        

      这样一个就是使用了三块内存

    常量

      常量在定义的时候需要注意大写,方便大家识别

    #常量一般都是使用大写
    MYSQL_CONNECTION="192.168.1.1"
    

    模块

      关于第三方库,这点需要说明一下,第三方库的安装命令是pip,豆瓣有镜像源。

        需要注意,在安装的时候这个也会涉及到版本问题,所以大家要根据Python的版本来进行安装

    pip install pandas
    

    pyc是什么

      其实Python和Java/C#一样,也是一门基于虚拟机的语言,我们先来从表面上简单地了解一下Python程序的运行过程吧。

      当我们在命令行中输入python hello.py时,其实是激活了Python的“解释器”,告诉“解释器”:你要开始工作了。可是在“解释”之前,其实执行的第一项工作和Java一样,是编译。

      熟悉Java的同学可以想一下我们在命令行中如何执行一个Java的程序:

      javac hello.java

      java hello

       只是我们在用Eclipse之类的IDE时,将这两部给融合成了一部而已。其实Python也一样,当我们执行python hello.py时,他也一样执行了这么一个过程,所以我们应该这样来描述Python,Python是一门先编译后解释的语言。

      简述Python的运行过程

        在说这个问题之前,我们先来说两个概念,PyCodeObject和pyc文件。

        我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。

        当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。

        当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。

        所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。、

      pyc在Python2和Python3是有区别的,Python2.X里面会自动把整形转化为长整型,而在Python3.X里面没有这个转换了

     

    这样就能看出pyc的存储方式.如果auth.py进行了修改,在下次执行的时候,会对比auth.py和auth.pyc的时间

    列表

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # Author:wzc
    
    list=['sxl','wzc','lmd','yxy','lhl','mdq','lld','lcj']
    print(list)
    list.insert(4,'ql')
    list.insert(5,'hx')
    print(list)
    print(list[2:8])
    list.remove(list[7])
    print(list)
    del list[4:6]#这是一个全局变量
    print(list)
    list[0]="sxl-zz"
    print(list)
    print(list[::2],)
    

     执行结果如下:

    上面就是列表的一些操作,添加,切片,删除,修改,查找

    需要注意最后一个是,每间隔一个进行显示。

    list2=list.copy()
    print(list2)
    

     这样复制就是浅copy,就是软链接,如果打算完整复制,需要使用deepcopy。

    name="wzc1206fc"
    name1="wzc,1206,fc"
    print(name.isalnum())#是否是数字
    print(name.endswith('fc'))#结尾为fc
    print(name.startswith('fc'))#开头为fc
    print(name.upper())#变为大写
    print(name.lower())#变为小写
    print('|'.join(name1.split(",")))#,号换为|
    print(name.center(40,'#'))#输出
    print(name.find('1206'))#查找
    print("1206" in name1)#另一种方式的查找
    print(name.capitalize())#开头大写
    print("####")
    w="hello {name},hahaha {age}"#一种print方法
    print(w.format(name="wz",age=1))
    w2="hahah{0},ddd{1}"#另一种
    print(w2.format("wzc",22))
    

     

    第一个是对应的程序,第二个是每条程序对应的执行结果

    还有在执行程序的时候的一点小技巧

    get返回none,另一个会使程序报错,在写程序的时候尽量使用第一个。

    字典

    字典是无须的,但是有的时候我们需要序号来表示其对应关系,这里我们可以使用enumerate,这样就可以得到对应的id号了

    dic = {"name":“wzc”,"age":27,"addr":"ww"}
    for key,v in dic.items() #效率低,因为有一个dic to list的过程
    
    #最好使用:
    for key in dic:
        print(key,dic[key])
    
    >>> info['name'] #查看key为’name’的value
    'alex'
    >>> info['job'] = 'Boss' #将key 的value 改为’Boss’
    >>> info
    {'age': 29, 'job': 'Boss', 'company': 'AUTOHOME', 'name': 'alex'}
    >>> info['city'] = 'BJ' #如果dict中有key为’city’,就将其值改为’BJ’,如果没有这个key,就创建一条新 纪录
    >>> info
    {'age': 29, 'job': 'Boss', 'company': 'AUTOHOME', 'name': 'alex', 'city': 'BJ'}
    >>> info.pop('age') #删除key为’age’的数据,跟del info[‘age’] 一样
    
    >>> info
    {'job': 'Boss', 'company': 'AUTOHOME', 'name': 'alex', 'city': 'BJ'}
    >>> info.popitem() #随机删除一条数据,dict为空时用此语法会报错
    ('job', 'Boss')
    >>> info.items() #将dict的key,value转换成列表的形式显示
    [('company', 'AUTOHOME'), ('name', 'alex'), ('city', 'BJ')]
    >>> info.has_key('name') #判断字典中是否有个叫’name’的key
    True
    >>> info['age'] #查找一个不存在的key报错,因为’age’刚才已经删除了,所以报错 Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    KeyError: 'age'
    >>> info.get('age') #查找key,如果存在则返回其value,否则则返回None
    >>> info.get('name')
    'alex'
    >>> info.clear() #清空dict
    >>> info
    {}
    >>> info.fromkeys(['a','b','c'],'Test') #根据列表[‘a’,’b’,’c’]来创建dict里的key,后面 的’Test’是默认value,如果不指定的话则为None
    {'a': 'Test', 'c': 'Test', 'b': 'Test'}
    >>> info
    {}
    >>> info =info.fromkeys(['a','b','c'],'Test')
    >>> info
    {'a': 'Test', 'c': 'Test', 'b': 'Test'}
    >>> info.setdefault('d','Alex') #找一个key为’d’的纪录,如果这个key不存在,那就创建一个叫’d’的key, 并且将其value设置为’Alex’, 如果这个key存在,就直接返回这个key的value,见下一条
    'Alex'
    >>> info.setdefault('c','Alex')
    'Test'
    >>> info
    {'a': 'Test', 'c': 'Test', 'b': 'Test', 'd': 'Alex'}
    >>> dict2 = {'e':'fromDict2','a':'fromDict2'} #创建一个新字典
    >>> info.update(dict2) #拿这个新字典去更新info,注意dict2中有一个key值’a’与dict info相冲突,这 时dict2的值会覆盖info中的a,如果dict2的key在info中不存在,则创建相应的纪录
    >>> info
    {'a': 'fromDict2', 'c': 'Test', 'b': 'Test', 'e': 'fromDict2', 'd': 'Alex'}
    增删改查
    
    dic={
        123:{"2":"50",    },
        234:{"1":"100",    }
    }
    dic2={
        345:{"3":"100",    },
        234:{"4":"100"  }
    }
    dic.update(dic2)
    print(dic)
    

     这个直接把字典二中添加到字典一中,如果两个字典有相同的,则会被括号内的字典覆盖

    #返回值 该方法没有任何返回值
    
    #以下实例展示了 setdefault()函数的使用方法:
    #!/usr/bin/python
    
    dict = {'Name': 'Zara', 'Age': 7}
    
    print("Value : %s" %  dict.setdefault('Age', None))
    print ("Value : %s" %  dict.setdefault('Sex', None))
    #以上实例输出结果为:
    Value : 7
    Value : None
    print(dic.setdefault("addr":"jl")) #取一个key的值,如果没有就设置一个
    dic.setdefault()
    

     很实用的一个功能

    items这个是把字典转为列表,当字典数据很多的时候,不要做这个操作

    第一个只能用于2.X版本的Python,第二条等于has_key()

  • 相关阅读:
    Haskell语言学习笔记(38)Lens(1)
    Haskell语言学习笔记(37)RWS, RWST
    Haskell语言学习笔记(36)Data.List.Zipper
    Haskell语言学习笔记(35)Contravariant
    编程漫谈系列(4)协变(covariance),逆变(contravariance)与不变(invariance)
    Boost.Coroutine2:学习使用Coroutine(协程)
    C++17尝鲜:类模板中的模板参数自动推导
    bzoj 2797 [Poi2012]Squarks 枚举一个,推出所有
    FWT 学习笔记
    A* k短路 学习笔记
  • 原文地址:https://www.cnblogs.com/wlzhc/p/5514729.html
Copyright © 2011-2022 走看看