Python之路【第二篇】:Python基础(一)

入门知识拾遗

一、作用域

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

1
2
3
if 1==1:
    name = 'wupeiqi'
print  name

下面的结论对吗?

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

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

二、三元运算

1
result = 1 if 条件 else 2

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

三、进制

  • 二进制,01

  • 八进制,01234567

  • 十进制,0123456789

  • 十六进制,0123456789ABCDE

Python基础

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

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

一、整数

如: 18、73、84

每一个整数都具备如下功能:

int

二、长整型

可能如:2147483649、9223372036854775807

每个长整型都具备如下功能:

long

三、浮点型

如:3.14、2.88

每个浮点型都具备如下功能:

float

四、字符串

如:'wupeiqi'、'alex'

每个字符串都具备如下功能:

str

注:编码;字符串的乘法;字符串和格式化

五、列表

如:[11,22,33]、['wupeiqi', 'alex']

每个列表都具备如下功能:

list

注:排序;

六、元组

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

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

tuple

七、字典

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

ps:循环时,默认循环key

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

dict

1
2
3
练习:元素分类
有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
即: {'k1': 大于66 , 'k2': 小于66}

 八、set集合

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

set

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
练习:寻找差异
# 数据库中原有
old_dict = {
    "#1":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 80 },
    "#2":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 80 }
    "#3":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 80 }
}
# cmdb 新汇报的数据
new_dict = {
    "#1":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 800 },
    "#3":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 80 }
    "#4":{ 'hostname':c2, 'cpu_count': 2, 'mem_capicity': 80 }
}
需要删除:?
需要新建:?
需要更新:? 注意:无需考虑内部元素是否改变,只要原来存在,新汇报也存在,就是需要更新

demo

九、collection系列

1、计数器(counter)

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

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

1
2
3
c = Counter('abcdeabcdabcaba')
print c
输出:Counter({'a': 5, 'b': 4, 'c': 3, 'd': 2, 'e': 1})

Counter

2、有序字典(orderedDict )

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

OrderedDict

3、默认字典(defaultdict)

学前需求:

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

原生字典解决方法

defaultdict字典解决方法

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

defaultdict

4、可命名元组(namedtuple)

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

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

Mytuple

5、双向队列(deque)

一个线程安全的双向队列

deque

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

Queue.Queue

迭代器和生成器

一、迭代器

对于Python 列表的 for 循环,他的内部原理:查看下一个元素是否存在,如果存在,则取出,如果不存在,则报异常 StopIteration。(python内部对异常已处理)

listiterator

二、生成器

range不是生成器 和 xrange 是生成器

readlines不是生成器 和 xreadlines 是生成器

1
2
3
4
>>> print range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print xrange(10)
xrange(10)

生成器内部基于yield创建,即:对于生成器只有使用时才创建,从而不避免内存浪费

1
2
3
4
5
6
7
8
9
10
11
练习:<br>有如下列表:
    [13, 22, 6, 99, 11]
请按照一下规则计算:
13 22 比较,将大的值放在右侧,即:[13, 22, 6, 99, 11]
22 6 比较,将大的值放在右侧,即:[13, 6, 22, 99, 11]
22 99 比较,将大的值放在右侧,即:[13, 6, 22, 99, 11]
99 42 比较,将大的值放在右侧,即:[13, 6, 22, 11, 99,]
13 6 比较,将大的值放在右侧,即:[6, 13, 22, 11, 99,]
...

Demo

深浅拷贝

为什么要拷贝?

1
当进行修改时,想要保留原来的数据和修改后的数据

数字字符串 和 集合 在修改时的差异? (深浅拷贝不同的终极原因)

1
2
3
在修改数据时:
    数字字符串:在内存中新建一份数据
         集合:修改内存中的同一份数据

对于集合,如何保留其修改前和修改后的数据?

1
在内存中拷贝一份

对于集合,如何拷贝其n层元素同时拷贝?

1
深拷贝

作业

  开发一个简单的计算器程序
  *实现对加减乘除、括号优先级的解析,并实现正确运算

作者:武沛齐
出处:http://www.cnblogs.com/wupeiqi/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

转载于:https://blog.51cto.com/sky66/1722611

Python总结:Python基础(一)相关推荐

  1. Python培训入门基础知识学什么?

    Python培训基础知识主要是针对一些零基础的同学安排的,虽说Python是相对比较简单的一门编程语言,但是没有基础的同学还是要进行系统的学习,那么Python培训入门基础知识学什么呢?来看看下面小编 ...

  2. Python初学者零碎基础笔记(一)

    Python初学者零碎基础笔记 一行代码输入多个参数 方法1.) a,b,c=map(类型,input("请输入").split()) #默认空格分隔,若要转其他类型,把类型换成需 ...

  3. 大数据之Python入门语法基础

    一.python特点及简介\ python在编程语言中的排名 4位 简洁优雅 同scala语言 完成同样一个任务 c语言 1000行 java 100行 scala/python 20行 面向过程及面 ...

  4. python计算机_基础python计算机知识

    1.计算机基础知识 计算机基础 :组成---输入输出设备 储存器 CPU 内存 cpu 中央处理器 :处理各种数据的 内存 存储数据 硬盘 存储数据的 什么是操作系统:控制计算机的工作流程 软件 什么 ...

  5. 计算机编程书籍-笨办法学Python 3:基础篇+进阶篇

    编辑推荐: 适读人群 :本书适合所有已经开始使用Python的技术人员,包括初级开发人员和已经升级到Python 3.6版本以上的经验丰富的Python程序员. "笨办法学"系列, ...

  6. Python的零基础超详细讲解(第十三天)-Python的类与对象

    基础篇往期文章如下: Python的零基础超详细讲解(第一天)-Python简介以及下载 Python的零基础超详细讲解(第二天)-Python的基础语法1 Python的零基础超详细讲解(第三天)- ...

  7. Python的零基础超详细讲解(第十二天)-Python函数及使用

    基础篇往期文章: Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博 ...

  8. Python的零基础超详细讲解(第七天)-Python的数据的应用

    往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...

  9. Python的零基础超详细讲解(第五天)-Python的运算符

    往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...

  10. Python的零基础超详细讲解(第一天)-Python简介以及下载

    接下来我会将python基础部分出一个合集分享给大家记得关注我不迷路哦~ Python简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强 ...

最新文章

  1. 美团语音交互部招聘NLP/知识图谱/语音识别等算法职位(可实习)
  2. 校验用户手机号是否合法
  3. mysql 汉编码 的选_peewee连接mysql汉语言数据编码_mysql
  4. axios (get post请求、头部参数添加)傻瓜式入门axios
  5. html多个单元格合并单元格内容,excel怎样快速把多个单元格内容合并 合并多个单元格内容的设置方法...
  6. excel 单元格求和大于某个数后返回列号_Excel最常用的几个函数,我都帮你整理好了!...
  7. 4-2 数据模型的生成
  8. Docker Swarm的前世今生
  9. C++ STL 学习 :for_each与仿函数(functor)
  10. Python1 关于安装
  11. MySQL 数据恢复 —— 使用 data 目录
  12. java判断session中是否存在_java中session用法 判断用户是否登录
  13. ISP模块之色彩增强算法--HSV空间Saturation通道调整
  14. 关于 Hypervisor的理解
  15. Building QNX guests
  16. 【哈利波特全集】哈利波特1-7
  17. 微软word如何插入页码_如何在Microsoft Word中插入,删除和管理超链接
  18. 实现相册功能 java_javaWEB实现相册管理的简单功能
  19. 数字电路设计之Spice仿真
  20. 解决opencv保存视频打不开问题

热门文章

  1. Nginx Http 过滤模块
  2. 浅谈SpringMVC执行过程
  3. 2016去哪儿编程题:乘坐公交
  4. 2013.11.13
  5. How do I cover the “no results” text in UISearchDisplayController's searchResultTableView?
  6. 几个ARX取CAD窗口句柄的函数
  7. ProGit-读书简记
  8. OpenCV Mat 简介
  9. UiBot Creator v1.2火热体验中……
  10. 你必须拥有的Python调试神器