前言:《Data Wrangling with Python》这本书主要是讲使用Pyhon来处理各种类型保存的数据的。


第一章:Python简介

  1、版本选择

本书选择的Python版本是2.7,并非最新的Python3,原文的说法是:想保证你能够找到容易阅读且容易获取的资源,并确保你的操作系统及服务支持你使用的Python版本。

这个说法也是比较容易接受的,毕竟Python3刚出没多久,网上大部分公开的资源还是基于Python2的。但即使如此,我个人觉得还是要关注一下3与2的差别,与时俱进嘛。但这不是本书的重点所在,所以作为额外关注吧。

  2、Python安装

在官网下载了Python2.7的MSI后可以直接安装,安装过程中选择添加path,会自动添加环境变量,我的是win10系统,不知在其他系统中是否会有此效果。

若是没有便主动在path中添加吧(我的安装路径为:D:\Python27)

1)、D:\Python27

2)、D:\Python27\Lib\site-packages(这个是我根据书本主动添加的,安装时并没有自动生成这个路径)

3)、D:\Python27\Scripts

  3、测试Python安装

安装完成以及配置好环境变量后,打开cmd,输入python,若是输出以下内容则证明安装成功。

上面显示了我的Python版本,在>>>之后可以直接编写Python代码并执行,退出输入命令:exit()

书中给了一组代码(输出的结果是有关Pyhon在计算机中的文件路径列表):

>>> import sys
>>> import pprint
>>> pprint.pprint(sys.path)

 下面是两个错误输入的演示:

1)、模块导入错误

2)、拼写错误

  4、安装pip

用于管理Python共享代码和库的命令行工具(书中说法,具体是什么还不清楚,等用到了再回来补充吧!)

  5、安装代码编辑器

  Sublime...本书中使用的代码都是在Sublime中编写,然后用命令行编译的,当然也有更方便的办法,比如PyCharm,Python的一个IDE,可以直接编写代码并且编译,类似于Java中的Eclipse,但是收费,可以破解,自行寻找方法。之前好像浏览到可以在Eclipse中安装Python插件,然后用Eclipse编译,不知道是否可行,我没有尝试。。。

Python代码的文件名为xxx.py


第二章:Python基础

  1、基本数据类型

    1.1、字符串

Python的字符串要求没其他语言那么严格,只要求在成对的引号之间即可(单引号或双引号)。

    1.2、整数和浮点数

1)整数

  python中整数是不能以0开头的,且赋值存储时不应加上引号,加引号的那是字符串(可以用0开头)。

书中说以0开头会报语法错误(SystaxError,invalid token),既是无效的标记。但我直接输入0开头的数字时只是输出错误,并没有报错。

2)浮点数

在python中使用非整数时,Python默认将其转化为非整数。

另外,看一个例子,关于浮点数精度的问题(原文:浮点数的运算速度很快,但正是因为这一点,浮点数不够精确)

考虑精度的问题时,需要使用decimal模块(或库:https://decs.python.org/2/library/decimal.html

例子:

第一行代码导入了Decimal模块中的getcontext和Decimal;

第二行代码是将舍入精度设定为一位小数

附:

Python中常用库:

1)、decimal:用于定点运算和浮点运算

2)、math:可以使用C语言标准所定义的数学函数

3)、numpy:Python科学计算的基础包

4)、sympy:用于符号数学的Python库

5)、mpmath:用于任意精度实数和复数浮点运算的Python库

  2、数据容器

    2.1、变量

规则:

1)、可以包含下划线,不能使用连字符

2)、可以包含数字,但不能以数字开头

3)、单词用小写字母,单词间用下划线隔开

    2.2、列表

列表是具有某种共同关系的一组值。

  ['milk','letter','eggs']

列表置于方括号内,元素之间用逗号隔开(上面这个例子中元素是字符串,若是数字或是变量则不需要引号)

可以将列表直接存入变量中:shopping_list = ['milk','lettuce','eggs']

列表也可以保存变量,当列表保存的是变量,我们调用列表时,输出的是变量的值。

例如:

列表中也可以包含列表,如下:

    2.3、字典

字典是一个key/value的集合,key可以是任意可被哈希(内部key被hash后作为索引)的类型。因此,key可以是文本、数字等任意类型。

(如果两个数字'=='判断相等,那么key就相等,value会产生覆盖(例如:1 == 1.0 # => True)。浮点数比较很不精确,因此千万不要用浮点数作为key!)

字典使用大括号{xxx}包含,元素包括键和值,键值用冒号隔开,不同元素之间用逗号隔开

字典的内容很丰富,但本书只做简单介绍,之后学到了再补充吧

直接存储列表:

存储列表变量:

  3、各种数据类型的用途

    3.1、字符串

—大小写转换

—删除字符串末尾的空格

—分割字符串

删除空格strip()函数:

上面的例子中把一个带有多个空格的字符串付给了变量filename,对其执行strip()函数之后,字符串中的前后空格都被删除,中间空格未被删除。

大写upper()函数:

    3.2、整数和小数

—加减运算

—简单数学运算

以上例子说明Pyhon列表支持加法,却不支持减法(字符串会支持减法吗,怎么可能)

    3.3、列表

—在列表中增加或删除元素

—删除列表中的最后一个元素

—列表重新排列

—列表排序

增加元素函数append()与删除元素函数remove():

上面的例子中,首先定义了一个空的列表dog_names,然后通过append()函数给其添加元素,然后又用remove()函数移出该元素。

    3.4、字典

—增加一个键/值对

—将指定的键设置为新的值

—利用键查找值

注意字典添加元素与列表添加元素的区别。

keys()函数查询到的是一个字典中所有的键。

当你查询到某个键的值的时候,可以赋给一个变量:dogs = animal_counts['dogs'],这样就可以不用特地去记住或者重新查询了。。。



附录:type、dir、help

1、type可以用于确定数据类型

2、dir会返回一个内置方法和属性的列表

3、help会返回对象、方法或模块的帮助文档

第一、二章——Python简介与Python基础的更多相关文章

  1. 《Linux内核设计与实现》 第一二章学习笔记

    <Linux内核设计与实现> 第一二章学习笔记 第一章 Linux内核简介 1.1 Unix的历史 Unix的特点 Unix很简洁,所提供的系统调用都有很明确的设计目的. Unix中一切皆 ...

  2. 1、Python简介与Python安装

    一.Python简介: Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python的创始人为吉多·范罗苏姆(Guido van Rossum)少数几个不秃头的语言创始 ...

  3. python简介和python工具的选择

    Python 简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有 ...

  4. 第一二章、C++简介和基本语法

    C++简介 C++包含了三种编程模式,分别是面向过程.面向对象和泛型编程. 程序执行过程 C++编程格式 C++每个程序都会有main()函数作为入口,基本编程包括预处理/头文件.函数.输入输出语句等 ...

  5. 《Linux内核设计与实现》第一二章读书笔记

    第一章 Linux内核简介 1.Unix简介 (一)概念:支持抢占式多任务.多进程.虚拟内存.换页.动态链接和TCP/IP网络的现代化操作系统. (二)Unix特点(层次化结构): Unix很简洁,仅 ...

  6. Linux第一二章笔记

    第一章 Linux内核简介 1. Unix内核的特点 简洁:仅提供系统调用并有一个非常明确的设计目的 抽象:几乎所有东西都被当做文件 可移植性:使用C语言编写,使得其在各种硬件体系架构面前都具备令人惊 ...

  7. linux内核设计与实现一书阅读整理 之第一二章整合

    第一章:Linux内核简介 一.Unix和linux Unix是一个强大.健壮和稳定的操作系统. 1.Unix内核特点 十分简洁:仅提供几百个系统调用并且有明确的目的: 在Unix中,大部分东西都被( ...

  8. linux 第三周读书笔记-----第一二章 20135334赵阳林

    第一章 Linux内核简介 1.1 Unix的历史 由于Unix系统设计简洁并且在发布时提供源代码,所以许多其他组织和团体都对它进了进一步的开发. Unⅸ虽然已经使用了40年,但计算机科学家仍然认为它 ...

  9. linux内核第一二章总结

    1 Linux内核简介 1 Unix的历史 1.Unix演化版实现了任务管理.换页机制.TCP/IP等新的特性. 2.Unix的特点: Unix很简洁,仅仅提供几百个系统调用并且有一个非常明确的设计目 ...

随机推荐

  1. OrientDB部署

    1. 环境准备 操作系统: Centos6.8 内存: 8G(分布式部署时建议4G及以上,否则需要手动修改JVM配置) JDK: 建议jdk8版本(3.0版本要求jdk8) 环境变量:需配置JAVA_ ...

  2. pm2命令管理启动的nodejs项目进程

    安装 npm install -g pm2 用法 $ npm install pm2 -g # 命令行安装 pm2 $ pm2 start app.js -i 4 #后台运行pm2,启动4个app.j ...

  3. 关于php中数字0与其他变量的相等判断

    在实践过程中,经常需要做`==`判断,有时候会把0当做false一样用,但是0和false在用来做比较的时候还是不一样的, false false==0 等于true false=='0' 等于tru ...

  4. sea.js模块化工具

    sea.js 一. sea.js向全局中引入了两个变量seajs.define: 1.seajs用加载文件 seajs.use(deps,callback)异步引入入口模块 路径要以sea.js文件所 ...

  5. 【Hive六】Hive调优小结

    Hive调优 Hive调优 Fetch抓取 本地模式 表的优化 小表.大表Join 大表Join大表 MapJoin Group By Count(Distinct) 去重统计 行列过滤 动态分区调整 ...

  6. QOS-交换机拥塞管理

    QOS-交换机拥塞管理 2018年7月7日 20:29 优先级映射: 根据信任的优先级,查找映射表,标记丢弃优先级和本地优先级 如果信任端口优先级,不同产品优先级标记方式可能不同,S3610处理过程如 ...

  7. JavaScript’s “this”: how it works, where it can trip you up

    JavaScript’s “this”: how it works, where it can trip you up http://speakingjs.com/es5/ch23.html#_ind ...

  8. 20145226夏艺华 逆向及Bof基础实践

    逆向及Bof基础实践 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串,如图所示: 该程序同时 ...

  9. fastjson处理json

    返回主页 你是风儿 博客园首页新随笔联系订阅管理 随笔 - 29 文章 - 0 评论 - 23 FastJson对于JSON格式字符串.JSON对象及JavaBean之间的相互转换 fastJson对 ...

  10. Redis系列八 使用Jedis

    使用Jedis jar操作Redis 1.配置redis.conf文件,修改 2.建java工程,加入 jedis jar包 3.代码示例: package com.ntjr.redis; impor ...