前言:《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. obfuscator-llvm Xcode集成配置

    一.简介 obfuscator-llvm 是一个开源的代码混淆编译器,能够使编译出来的文件添加垃圾代码和各种跳转流程,给逆向分析者增加难度. 二.编译 (1) 下载 目前最新版的是4.0的,下载地址是 ...

  2. npm 取消代理 npm config delete proxy

    今天在安装electron时设置了代理,发现再npm install 安装别的总是装不上,只好取消代理. npm 取消代理 npm config delete proxy

  3. QQ空间运营 怎么做一个QQ人气号?

    QQ空间,用户太年轻,他们渐渐长大. 空间,用户消费水准偏低,貌似很难开发,除非玩灰链,否则同等人气,和微信比起来,一个地下,一个天上. 然而,他们快要长大,即将成为消费主力军,难免会转移微信,但情怀 ...

  4. 第一篇:百问网ubuntu安装注意事项和部分配置

    目录 一.开启虚拟化技术 二.ubuntu部分设置 一.开启虚拟化技术 ​ 64位机,需要使用cpu-z.SecurAble软件来检查:CPU是否支持VT虚拟化技术 cpu-z使用(软件) 第一步:以 ...

  5. c语言中 *p++ 和 (*p)++ 有什么区别?以及C语言运算符的优先级。整理。

    *p++是指下一个地址. (*p)++是指将*p所指的数据的值加一. C编译器认为*和++是同优先级操作符,且都是从右至左结合的,所以*p++中的++只作用在p上,和*(p++)意思一样:在(*p)+ ...

  6. PWA-网络

    PWA-网络 fetch API Get fetch('/some/url',{ method:'GET' }).then(function(resp){ //success }).catch(fun ...

  7. mfc通过MapWinGIS控件读取shp文件(通过#import实现)

    在MFC工程中想使用MapWinGIS组件,有多种方法可以实现, 第一种方法,#Import来实现 1.首先注册MapWinGIS ActiveX组件, 2.新建一个单文档工程:MapGis,为控件添 ...

  8. Fliptil_KEY

    Fliptil(fliptile.pas/c/cpp) [问题描述] 约翰知道,那些高智力又快乐的奶牛产奶量特别高.所以他做了一个翻瓦片的益智游戏来娱乐奶牛. 在一个M×N的骨架上,每一个格子里都有一 ...

  9. LeetCode: 62. Unique Paths(Medium)

    1. 原题链接 https://leetcode.com/problems/unique-paths/description/ 2. 题目要求 给定一个m*n的棋盘,从左上角的格子开始移动,每次只能向 ...

  10. productFlavors 差异打包问题

    差异化打包: 1.dependencies compile 是不可以放到差异化的productFlavors里面的. 会报错: Error:(69, 0) Could not find method ...