一、学习知识总结

(1)迭代

        range(起始值,结束值,步长):包含起始值,不包含结束值,步长为正数

(2)导入模块

from datetime import datetime

(3)查看帮助

dir(random)    help(random.randint)

(4)4个内置的数据结构:列表、字典、元组和集合

列表:

if letter not in found:

nums=[1,2,3,4]

nums.remove(3)

nums.pop()  #如果没有指定弹出哪个索引则默认弹出最后一项。也可以指定nums.pop(1)

nums.extend([5,6])

nums.insert(0,0)

nums.append(7)

nums.copy()  #这是浅copy

列表的切片:letters[start:stop:step]    step为正,从左往右;step为负,从右往左。如果没有指定结束值,则默认到结尾

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

字典:

字典的键必须初始化。

fruits={}   #空集合是temp=set()

if 'bananas' in fruits:

fruits['bananas']+=1

else:

fruits['banana']=1

if 'bananas' not in fruits:

...................

fruits.setdefault('bananas',0)

found[letter]+=1

美化打印:ppprint.pprint(people) #people为字典类型

-------------------------------------------------------------------------------------------------------------------------------

集合:

集合是不能重复的。集合和字典的区别是字典有冒号而集合没有冒号。

vowels=set('aeiou')

union (并集)    intersection(交集)   difference(差集)

-------------------------------------------------------------------------------------------------------------------------------

元组:

元组是不可变数据类型。形式为(1,2,3)。另外如果只有一个元素时,应使用(1,)以表示其为一个元组

(5)函数和模块

函数定义使用def 函数名(参数名:str) ->‘html’:

return set('aeiou')

''' docstring '''

位置赋值和关键字赋值

模块:模块就是包含函数的文件。

模块主要搜索的位置有:当前工作目录;site-packages位置;标准库位置。

可以使用setuptools将模块安装到site-packages

a:在要打包的文件夹中创建一个发布文件

from setuptools import setup

setup(

name='vsearch',

py_modules=['vsearch'],

version='1.0',

description='',

author='',

author_email='',

url=''

)

b:   在要打包的文件夹中目录下通过命令把文件打包(py  -3 setup.py sdist)

c:   安装site-packages

py -3 -m pip install vsearch-1.0.zip

备注:列表、字典、集合都是按引用传递总是会按引用传入函数。

字符串、整数和元组都是不可变数据类型总会按值传入函数。

(6)安装测试开发工具:

a:在windows上使用pip安装pytest: py -3 -m pip install pytest

b:使用pip安装pep8插件:py -3 -m pip install pytest-pep8

c:安装完成后,可以运行py.test这个程序来检查vsearch.py代码的pep8兼容性。确保在vsearch.py文件所在的同一个文件夹中,然后执行:

py.test   --pep8  vsearch.py

二、感悟:

a: 四种数据类型:元组是C#没有的,但是C#语言的readonly和其相似。列表中的切片功能与C#中的字符串截取相似,只是python的写法更简洁。

b:模块只有安装到sitepackages后通过import导入使用,这点感觉有些麻烦。

c:重用代码是构建一个可维护系统的关键。

d:符合一定规则的代码会增加代码的可读性和美观性,减少维护难度。在python中程序员普遍遵守PEP8原则。

e:函数需要一定的注解。通过注解无需读函数内部的代码,就能知道这个函数需要接收什么类型的数据以及返回什么类型的数据。

Head First Python 1-4章学习感悟的更多相关文章

  1. 201671010142 2017-2 《java第十二十三章学习感悟》

    Swing编程第一步,需要导入Swing相关包,即javax.swing.*. 接下里需要设置界面外观风格,使用到UIManager类. 设置完外观之后一定要调用 SwingUtilities.upd ...

  2. 201671010142 2017-2 《java第十二章学习感悟》

    Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. Swing提供许多比AWT更好的屏幕 ...

  3. 201671010142 2017-2 《java第十一章学习感悟》

    事件处理基础 事件源,事件监听器,事件监听器  监听器接口的实现,监听器对象所属类必须实现与事件源相对应的接口,即必须提供接口中方法的实现. 适配器类 当程序用户试图关闭一个框架窗口时,Jframe对 ...

  4. 201671010142 2017-2 《java第九章学习感悟》

    一,数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用. 集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用. 二.几种重要 ...

  5. web前端学习python之第一章_基础语法(二)

    web前端学习python之第一章_基础语法(二) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...

  6. web前端学习python之第一章_基础语法(一)

    web前端学习python之第一章_基础语法(一) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...

  7. 《Think Python》第17章学习笔记

    目录 <Think Python>第17章学习笔记 17.1 面向对象的特性(Object-oriented features) 17.2 打印对象(Printing objects) 1 ...

  8. 《Think Python》第16章学习笔记

    目录 <Think Python>第16章学习笔记 16.1 Time 16.2 纯函数(Pure functions) 16.3 修改器(Modifiers) 16.4 原型 vs. 方 ...

  9. 《Think Python》第15章学习笔记

    目录 <Think Python>第15章学习笔记 15.1 程序员定义的类型(Programmer-defined types) 15.2 属性(Attributes) 15.3 矩形( ...

随机推荐

  1. css 中 div垂直居中的方法

    在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的CSS Hack技术就可以啊!所以在这里我还要啰嗦两句,CSS中 ...

  2. ibatis的resultClass与resultMap 的区别

    ibatis的resultClass与resultMap还是有很大的区别.以下是我碰到的一个问题. 配置文件写法如下: 1 sqlMap2 typeAlias alias="notice&q ...

  3. 分享知识-快乐自己:FastDFS 上传 java 源码

    FastDFS 上传 java 源码:点我下载源码 首先导入 POM 文件:解决 maven 不能下载 fastdfs-client-java JAR <dependency> <g ...

  4. linux系统配置之单一网卡配置多个不同网段IP(centos)

    1.用root权限的用户登录CENTOS,进入network-scripts文件夹下(本步骤可以省略,与二步骤一起完成): shell命令:cd /ect/sysconfig/network-scri ...

  5. linux命令学习笔记( 7 ) : mv 命令

    mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令, 经常用来备份文件或者目录. .命令格式: mv [选项] 源文件或目 ...

  6. luogu2622开灯问题2

    #include<iostream> #include<cstdlib> #include<algorithm> #include<cstdio> #i ...

  7. Gym 100801B Black and White(构造)

    题意:给定X,Y,分别表示由'.'和'@'组成的连通块的个数. 思路:假如X<Y,我们用两部分来构造这个结果,第一部分由一个'.'连通块和Y-(X-1)割'@'连通块组成,第二个部分由X-1个' ...

  8. python【事物 】【数据库锁】

    1.数据库事物 1. 什么是事务  事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一 ...

  9. 装了Ironpython还需要装Python吗?

    IronPython 是一种在 NET 和 Mono 上实现的 Python 语言,由 Jim Hugunin(同时也是 Jython 创造者)所创造.IronPython是优雅的python编程语言 ...

  10. mac下安装node

    学着使用homebrew进行安装,发现很是方便. homebrew是mac下的一款管理安装的工具. 1. 安装homebrew 使用mac自带的ruby下载安装: ruby -e "$(cu ...