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()

posted @ 2016-05-21 14:38  wzc1206  阅读(216)  评论(0编辑  收藏  举报