参考资料:https://github.com/lijin-THU/notes-python(相应实体书为:《自学Python——编程基础、科学计算及数据分析》)

1. Python之禅:import this

Python的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:import keyword + keyword.kwlist

2. iPython使用

%lsmagic  //查看所有magic命令;line magic % 作用于一行,cell magic %% 作用于整个cell

%pylab  //导入numpy和matplotlib两个包

%matplotlib inline  //页面内嵌画图,非弹窗 + import matplotlib + import matplotlib.pyplot as plt

?  //使用 ? 查看函数的帮助,如sum?

??  //使用 ?? 查看函数帮助和函数源代码,sum??

!ping baidu.com  //使用 ! 来执行一些系统命令

_  // _ 上个cell的输出结果

%run、%timeit、%%writefile、%precision

3. Python支持链式比较:x = 2; 1 < x <= 3  输出True

4. list.append():每次只添加一个元素,并不会因为这个元素是序列而将其展开(不展开)

5. list.extend(lst):将序列lst的元素依次添加到列表list的最后,相当于list += lst

6. 数据类型

不可变类型:基本类型(整型、长整型、浮点数等)+ 复数 + 元组 + 字符串 +不可变集合(frozen set);

可变类型:列表 + 字典 + 集合 + numpy数组 + 用户自定义类型;

7. 赋值机制(02.13 how-python-assignment-works)

(1)对于简单类型而言,python会为每个出现的对象进行赋值(分配内存),哪怕它们的值是一样的;不过,为了提高内存利用效率,对于一些简单的对象,如一些数值较小的int对象,python采用了重用对象内存的办法;  //可以使用 id() 函数查看内存地址,如id(x)返回变量x的内存地址;或者使用is 来判断是不是指向同一个事物(内存地址),如 x is y 返回True或False

(2)对于容器类型而言,python给新对象赋值时,仅仅是指向同一块内存空间(不分配新内存),如 x = [500, 501, 502]; y = x;  //改变列表数据时,会分配新的内存空间给新值,而旧值则会python自动调用垃圾处理机制回收

8. 生成随机数函数:range(), xrange()  //xrange效果与range函数相同,但是xrange并不会一次性的产生所有的数据,可以节省时间和内存消耗

%timeit for i in xrange(1000000): i = i  //运行时间较快

%timeit for i in range(1000000): i = i  //运行时间较慢,一次性产生所有数据

9. 列表推导式 x = range(1000000)

%timeit total = sum([i**2 for i in x])  //运行时间较慢,python会一次性生成整个临时列表,再进行求和,临时列表会被垃圾回收机制回收

%timeit total = sum(i**2 for i in x)  //运行时间较快,类似上述xrange()

10. map方法生成序列:map(aFun, aSeq)  //将函数 aFun 应用到序列 aSeq 上的每一个元素上,返回一个列表,不管这个序列原来是什么类型

1 defsqr(x):2 return x ** 2

3

4 a = [2, 3, 4]5 print map(sqr, a)

输出:[4 9 6]

注:根据函数参数的多少,map 可以接受多组序列,将其对应的元素作为参数传入函数

1 defadd(x, y):2 return x +y3

4 a = (2, 3, 4)5 b = [10, 5, 3]6 print map(add, a, b)

输出:[12 8 7]

11. 函数通过元组和字典传入参数  //结合可变参数的函数定义方式进行思考def func(arg1, *arg2, **arg3):  位置参数在前,键值对参数在后

1 defadd(x, y):2 """Add two numbers"""

3 a = x +y4 returna5

6 z = (2, 3)7 print add(*z)  #传入元组参数z,其中* 必不可少

输出:5

1 defadd(x, y):2 """Add two numbers"""

3 a = x +y4 returna5

6 w = {'x': 2, 'y': 3}7 print add(**w)  #传入字典参数w,其中 ** 必不可少

输出:5

12. 模块

import:载入模块,在导入时,python会执行一遍模块中的所有内容,包括输出语句print

注:为了提高效率,python只会载入模块一次,已经载入的模块再次载入时,Python并不会真正执行载入操作,哪怕模块的内容已经改变

reload()函数:强制重新载入模块 reload(module);Python 3把 reload 内置函数移到了 imp 标准库模块中,必须先导入 from imp import reload

#利用__name__属性,使得.py文件既能当作脚本,又能当作模块用

1 PI = 3.1416

2

3 defsum(lst):4 """Sum the values in a list5 """

6 tot =07 for value inlst:8 tot = tot +value9 returntot10

11 defadd(x, y):12 "Add two values."

13 a = x +y14 returna15

16 deftest():17 w = [0,1,2,3]18 assert(sum(w) == 6)19 print 'test passed.'

20

21 if __name__ == '__main__':  #当文件被当作脚本执行时,__name__的值为"__main__",会执行test()函数,当做模块导入是,test()不执行22 test()

13. 常用的标准库

re 正则表达式

copy 复制

math, cmath 数学

decimal, fraction

sqlite3 数据库

os, os.path 文件系统

gzip, bz2, zipfile, tarfile 压缩文件

csv, netrc 各种文件格式

xml

htmllib

ftplib, socket

cmd 命令行

pdb

profile, cProfile, timeit

collections, heapq, bisect 数据结构

mmap

threading, Queue 并行

multiprocessing

subprocess

pickle, cPickle

struct

14. 警告warnings:出现了一些需要让用户知道的问题,但又不想停止程序,可以使用警告

1 importwarnings2

3 defmonth_warning(m):4 if not 1<= m <= 12:5 msg = "month (%d) is not between 1 and 12" %m6 warnings.warn(msg, RuntimeWarning)  #警告函数7

8 month_warning(13)

输出:RuntimeWarning: month (13) is not between 1 and 12

#设置忽略特定类型的警告

1 warnings.filterwarnings(action = 'ignore', category = RuntimeWarning)2

3 month_warning(13)  #没有警告出现

学python需要什么基础知识-Python学习(一)基础知识相关推荐

  1. 零基础该如何学习Web前端知识?

    想要跳槽到IT行业人在近几年越来越多,大部分都是想要学习web前端技术,但是这其中有很多都是零基础学员,大家都想知道零基础该如何学习Web前端知识?我们来看看下面的详细介绍. 零基础该如何学习Web前 ...

  2. 学python对数学要求吗_python 学习和数学知识 - 文章分类 - 风中小郎君 - 博客园...

    文章分类 - python 学习和数学知识 http://www.cnblogs.com/vamei 摘要:它们的区别在于应用的对象不同.1.map()map() 是一个Series的函数,DataF ...

  3. python第三项基础知识_Python学习心得——基础知识(三)

    一.常见的Python种类 1.Cpython 使用C语言实现,Python的官方版本,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上.我们目前 ...

  4. 大学计算机软件基础心得体会,学习计算机应用基础心得体会.doc

    文档介绍: 学****计算机应用基础心得体会.doc学****计算机应用基础心得体会小编语:学****计算机基础知识,掌握计算机基本的操作方法,是每个现代人必须学****的内容,目的就是在将来的工作. ...

  5. 知识图谱学习笔记-知识图谱介绍

    一.什么是知识图谱? 解释1:  知识图谱本质上是语义网络 (本体论是语义网落的重要因素) 解释2: 知识图谱也叫做多关系图,由多种类型的节点和多种类型的边组成 构建知识图谱系统中所涉及到的技术 数据 ...

  6. 知识图谱学习笔记之知识图谱中的知识分类

    知识图谱中的知识分类 事实知识 事实知识是关于某个特定实体的基本事实,如(山东富士苹果,产地,山东).事实知识是知识图谱中非常常见的知识类型.大部分的事实知识都是在描述实体的特定属性或关系,如&quo ...

  7. python语言的语法_Python语言学习系列------基础语法(一)

    本博客系列为自己按照网上视频教学学习python的一个随笔系列文章,也不知道会更新到多少,反正闲开个坑呗. 一.高级语言的分类 高级的编程语言分为解释型语言和编译型语言,两者的区别是主要是:在执行前是 ...

  8. 0基础学android开发,我们究竟还要学习哪些Android知识

    前言 如果你也学习Android,那么你大概率会看过我的文章.经常有读者给我留言:"该怎么学习Android?"."日常学习Android的方法是什么". 所以 ...

  9. ♂【超全超详细】2W字零基础小白黑客学习路线,知识体系(附学习路线图)♂

    前言: 这是外网曾经一篇很火的关于如何成为一个黑客的文章,虽然里面提到的一些技术可能有些过时,但就学习方法和思想上,仍然值得我分享给大家. 关注大师的言行, 跟随大师的举动, 和大师一并修行, 领会大 ...

  10. Linux基础知识系统学习.NO2——基础字符界面命令

    2.4.简单基础命令 Ps:实际命令为把加号替换为空格 (1)whoami:查询当前登陆用户用户名 (2)pwd:打印当前工作目录 (3)mkdir -p+[新目录名]:创建新目录,-p表示可以创建多 ...

最新文章

  1. LeetCode Flatten Nested List Iterator
  2. 计算字符串的实际长度
  3. 【测试】ABAP直连外部数据库
  4. SHADER效果收集
  5. pat1079+1086+1090+1094(树的遍历)感想
  6. gvim e303 无法打开 “[未命名]“的交换文件,恢复将不可能
  7. 系统时钟(汇编语言程序设计)
  8. 从分析性数据库ADS中导出数据
  9. table表框去掉相邻的间隔
  10. css12个技巧,12个CSS高级技巧汇总
  11. linux 定位 踩内存_应用稳定性优化系列(二),Crash/Tombstone问题分析及定位
  12. 运输问题的表上作业法
  13. .NET报表控件TeeChart使用教程:构建图表
  14. 电信机顶盒,废弃机顶盒复活,华为电信定制机顶盒,固件。设置关闭限制apk选项。安装自己所需的apk软件。
  15. halcon手眼标定
  16. flash builder 4 序列号
  17. 谷歌最新版本浏览器如何兼容flash插件
  18. GIS坐标系:epsg 3857 vs 4326
  19. 433M、2.4G无线模块
  20. 跑跑卡丁车rush服务器维护,跑跑卡丁车rush+每日必做事情整理得丰富奖励

热门文章

  1. 游遍中国 —— 大街小巷、秘境与远方
  2. 数组中的一些常用方法总结
  3. 第一个只出现一次的字符位置
  4. XHTML5 与 HTML 4.01的差异
  5. arm920T与arm926的区别[转载]
  6. WS-Eventing、WS-Transfer Web服务标准
  7. WLC HA-维护模式(Maintenance Mode)
  8. East Central North America Region 2015
  9. PHP内核探索之变量(2)-理解引用
  10. python自动化测试看什么书-《自动化平台测试开发-Python测试开发实战》新书出版了...