Python总结:Python基础(一)
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:具备字典的所有功能 + 自己的功能
123c
=
Counter(
'abcdeabcdabcaba'
)
c
输出:Counter({
'a'
:
5
,
'b'
:
4
,
'c'
:
3
,
'd'
:
2
,
'e'
:
1
})
Counter
2、有序字典(orderedDict )
orderdDict是对字典类型的补充,他记住了字典元素添加的顺序
OrderedDict
3、默认字典(defaultdict)
学前需求:
12有如下值集合 [
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所有功能以及其他功能的类型。
123import
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基础(一)相关推荐
- Python培训入门基础知识学什么?
Python培训基础知识主要是针对一些零基础的同学安排的,虽说Python是相对比较简单的一门编程语言,但是没有基础的同学还是要进行系统的学习,那么Python培训入门基础知识学什么呢?来看看下面小编 ...
- Python初学者零碎基础笔记(一)
Python初学者零碎基础笔记 一行代码输入多个参数 方法1.) a,b,c=map(类型,input("请输入").split()) #默认空格分隔,若要转其他类型,把类型换成需 ...
- 大数据之Python入门语法基础
一.python特点及简介\ python在编程语言中的排名 4位 简洁优雅 同scala语言 完成同样一个任务 c语言 1000行 java 100行 scala/python 20行 面向过程及面 ...
- python计算机_基础python计算机知识
1.计算机基础知识 计算机基础 :组成---输入输出设备 储存器 CPU 内存 cpu 中央处理器 :处理各种数据的 内存 存储数据 硬盘 存储数据的 什么是操作系统:控制计算机的工作流程 软件 什么 ...
- 计算机编程书籍-笨办法学Python 3:基础篇+进阶篇
编辑推荐: 适读人群 :本书适合所有已经开始使用Python的技术人员,包括初级开发人员和已经升级到Python 3.6版本以上的经验丰富的Python程序员. "笨办法学"系列, ...
- Python的零基础超详细讲解(第十三天)-Python的类与对象
基础篇往期文章如下: Python的零基础超详细讲解(第一天)-Python简介以及下载 Python的零基础超详细讲解(第二天)-Python的基础语法1 Python的零基础超详细讲解(第三天)- ...
- Python的零基础超详细讲解(第十二天)-Python函数及使用
基础篇往期文章: Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博 ...
- Python的零基础超详细讲解(第七天)-Python的数据的应用
往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...
- Python的零基础超详细讲解(第五天)-Python的运算符
往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...
- Python的零基础超详细讲解(第一天)-Python简介以及下载
接下来我会将python基础部分出一个合集分享给大家记得关注我不迷路哦~ Python简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强 ...
最新文章
- Iptables架构
- 对象级别锁 vs 类级别锁 – Java
- ibatis动态查询条件
- 前端学习(1261):接口调用fetch方法
- Spring Boot应用的后台运行配置
- 远程连接“终端服务器超出了最大允许连接数” 解决
- Linux内核网络协议栈7-socket端口管理
- 从零开始部署基于阿里容器云的微服务(consul+registrator+template)(一)
- 【VMCloud云平台】SCAP(二)
- React Native 0.21 发布 (翻译Changelog)
- 10款精选的后台管理系统,收藏吧!
- kali netstat使用教程
- win10下使用Winsat对系统进行评分
- 内网环境下使用rpm包制作yum数据源及使用
- 将IMYWebLoader添加到蚂蚁mpaas框架中引发的问题和解决的问题
- XML解析器及相关概念介绍
- Navicat8注册码+mysql配置
- 【计算机网络学习笔记06】以太网帧结构、HDLC协议
- photoshop cs5在win8.1上安装启动问题
- python土味情话_python教你谈恋爱-之-土味情话5000条