一、作用域

对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用。

  1. if 1==1:
  2. name = 'lenliu'
  3. print name

下面的结论对吗?(对)

外层变量,可以被内层变量使用

内层变量,无法被外层变量使用

二、三元运算

  1. result = 1 if 条件 else 2
  1. result = 'lenliu' if 1 == 1 else 'amy'
    print result

如果条件为真:result = 值1
如果条件为假:result = 值2

三、进制

  • 二进制,01
  • 八进制,01234567
  • 十进制,0123456789
  • 十六进制,0123456789ABCDE
Python基础

对于Python,一切事物都是对象,对象基于类创建

所以,以下这些值都是对象: "lenliu"、38、[ '上海', '深圳'],并且是根据不同的类生成的对象。

四、数字类型

1、整数:int()

如: 18、73、84

2、长整型:long()

可能如:2147483649、9223372036854775807

3、浮点型:float()

如:3.1415926、2.88

4、字符串:str()

如:lenliu、'amy'

五、列表:list()

如:[11,22,33]、[lenliu, 'amy']

每个元组都具备如下功能:

>>> help(list)

>>>dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

  

  

    删除整个列表的数据                                                             list1.sort(reverse=False)  从小大到排序

 

六、元组:tuple (只能读取,不能被修改)

如:(11,22,33)、('wupeiqi', 'alex')

每个元组都具备如下功能:

>>>help(tuple)

>>>dir(tuple)
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']

   

把元组拆成两部分,能后加入元素,逗号很关键  ( 删除元组 :del temp1  )

七、字典 (字典由索引key和它对应的值value组成)

如:{'name': 'wupeiqi', 'age': 18} 、{'host': '2.2.2.2', 'port': 80]}

ps:循环时,默认循环key

每个字典都具备如下功能:

>>>help(dict)

>>> dir(dict)
['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values', 'viewitems', 'viewkeys', 'viewvalues']

 

八、set集合

set是一个无序且不重复的元素集合

  1. 练习:寻找差异
  2. # 数据库中原有
  3. old_dict = {
  4. "#1":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 80 },
  5. "#2":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 80 }
  6. "#3":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 80 }
  7. }
  8.  
  9. # cmdb 新汇报的数据
  10. new_dict = {
  11. "#1":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 800 },
  12. "#3":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 80 }
  13. "#4":{ 'hostname':c2, 'cpu_count': 2, 'mem_capicity': 80 }
  14. }
  15.  
  16. 需要删除、需要新建、需要更新
  1. 注意:无需考虑内部元素是否改变,只要原来存在,新汇报也存在,就是需要更新
  1.  
  1. old_set = set(old_dict.keys())
  2. update_list = list(old_set.intersection(new_dict.keys()))
  3.  
  4. new_list = []
  5. del_list = []
  6.  
  7. for i in new_dict.keys():
  8. if i not in update_list:
  9. new_list.append(i)
  10.  
  11. for i in old_dict.keys():
  12. if i not in update_list:
  13. del_list.append(i)
  14.  
  15. print update_list,new_list,del_list
  1.  

九、collection系列

1、计数器(counter)

Counter是对字典类型的补充,用于追踪值的出现次数。

ps:具备字典的所有功能 + 自己的功能


在上面的例子我们可以看出,Counter方法返回的是一个字典,它将字符串中出现的所有字符都进行了统计。

在这里再介绍一下update方法,这个update方法是将两次统计的结果相加,和字典的update略有不同。

2、有序字典(orderedDict )

orderdDict是对字典类型的补充,他记住了字典元素添加的顺序

3、默认字典(defaultdict)

需求:有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {'k1': 大于66 , 'k2': 小于66}
# 字典解决方法

  1. values = [11, 22, 33,44,55,66,77,88,99,90]
  2. my_dict = {}
  3. for value in values:
  4. if value>66:
  5. if my_dict.has_key('k1'):
  6. my_dict['k1'].append(value)
  7. else:
  8. my_dict['k1'] = [value]
  9. else:
  10. if my_dict.has_key('k2'):
  11. my_dict['k2'].append(value)
  12. else:
  13. my_dict['k2'] = [value]
  1. #默认字典解决方法
  1. from collections import defaultdict
  2.  
  3. values = [11, 22, 33,44,55,66,77,88,99,90]
  4. my_dict = defaultdict(list)
  5. for value in values:
  6. if value>66:
  7. my_dict['k1'].append(value)
  8. else:
  9. my_dict['k2'].append(value)

PS:defaultdict是对字典的类型的补充,他默认给字典的值设置了一个类型。

4、可命名元组(namedtuple)

根据nametuple可以创建一个包含tuple所有功能以及其他功能的类型。

  1. import collections
  2.  
  3. Mytuple = collections.namedtuple('Mytuple',['x', 'y', 'z'])

>>> dir(Mytuple)
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__module__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__slots__', '__str__', '__subclasshook__', '_asdict', '_fields', '_make', '_replace', 'count', 'index', 'x', 'y', 'z']

5、双向队列(deque)

一个线程安全的双向队列

注:既然有双向队列,也有单项队列(先进先出 FIFO )

友情链接:http://www.cnblogs.com/wupeiqi/articles/4911365.html  武sir

Python之路:Python 基础(二)的更多相关文章

  1. 自学Python之路-Python基础+模块+面向对象+函数

    自学Python之路-Python基础+模块+面向对象+函数 自学Python之路[第一回]:初识Python    1.1 自学Python1.1-简介    1.2 自学Python1.2-环境的 ...

  2. Python之路Python内置函数、zip()、max()、min()

    Python之路Python内置函数.zip().max().min() 一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算, ...

  3. Python之路Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数

    Python之路Python作用域.匿名函数.函数式编程.map函数.filter函数.reduce函数 一.作用域 return 可以返回任意值例子 def test1(): print(" ...

  4. Python之路Python全局变量与局部变量、函数多层嵌套、函数递归

    Python之路Python全局变量与局部变量.函数多层嵌套.函数递归 一.局部变量与全局变量 1.在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量.全局变量作用域是整个程序,局 ...

  5. 自学Python之路-Python核心编程

    自学Python之路-Python核心编程 自学Python之路[第六回]:Python模块       6.1 自学Python6.1-模块简介    6.2 自学Python6.2-类.模块.包  ...

  6. 自学Python之路-Python并发编程+数据库+前端

    自学Python之路-Python并发编程+数据库+前端 自学Python之路[第一回]:1.11.2 1.3

  7. 自学Python之路-Python网络编程

    自学Python之路-Python网络编程 自学Python之路[第一回]:1.11.2 1.3

  8. Python之路Python文件操作

    Python之路Python文件操作 一.文件的操作 文件句柄 = open('文件路径+文件名', '模式') 例子 f = open("test.txt","r&qu ...

  9. Python之路 day1 基础1 变量 for while 用户输入

    一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ...

  10. python之路: 基础篇

    )或>>> name = )    #按照占位符的顺序):]        #下标识从0开始的 wulaoer >>> print name[:]        # ...

随机推荐

  1. HelloX项目github协同开发指南

    概述 为了提高协同开发效率,HelloX项目已托管到github网站上.根据目前的开发进展,创建了下列几个子项目: HelloX操作系统内核项目:https://github.com/hellox-p ...

  2. HDU 3507 Print Article(CDQ分治+分治DP)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=3507 [题目大意] 将长度为n的数列分段,最小化每段和的平方和. [题解] 根据题目很容易得到dp ...

  3. ubuntu 12.04下安装和配置kohana 3.3.3 的方法

    一.先到官网下载3.3.3版本的压缩包到/var/www/1117/目录下(提前建好1117的目录)解压 解压好的文件有(applications\modules\system\build.xml\c ...

  4. 导出csv文件代码示例

    //当数据量达到一定级别后(大概60000以上),excel会溢出,不能全部显示,而新版的csv好像不会出现这个问题.为什么用好像,我也是听别人说,暂时没有去验证. <?php $sql = & ...

  5. Junk-Mail Filter(并差集删点)

    Junk-Mail Filter Time Limit: 15000/8000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  6. cocos2d-x过程动作CCProgressTo示例学习笔记

    // // SpriteProgressToRadial // //------------------------------------------------------------------ ...

  7. linux下emacs安装

    1.下载地址:http://ftp.gnu.org/pub/gnu/emacs/ 下载文件:emacs-24.2.tar.gz 步骤: 一.安装依赖文件:  (先进入root:终端中输入 su -) ...

  8. Clementine 12.0 的使用(因为比较少用,项目中用到才开始接触写一下自己的使用方法)

    首先我是根据excel的文件做的训练,就以excel来做介绍 1.打开Clementine 12.0 软件 点击软件下方的 ”源“ 即你要做训练的数据源.因为是excel文件双击excel. 2.双击 ...

  9. 关于js封装框架类库之选择器引擎(一)

    选择器模块之传统做法 var tag = function (tag){ return document.getElementsByTagName(tag); } var id = function ...

  10. Mac系统下下删除加锁文件方法|使用终端命令强制清除废纸篓中的文件

    链接地址1:http://jingyan.baidu.com/article/fdffd1f8e39403f3e98ca195.html 在Mac OS X下,无法删除的文件无外乎三种情况:1,文件( ...