开始学习Python,主要的材料有三:

  1. 《Head First Python》。入门,了解概念。
  2. coursera上的《用Python玩转数据》,中文视频,比较粗浅,容易跟得上。与上一材料互补。
  3. 《利用Python进行数据分析》,O'REILLY的大作,主要是数据分析用的。学完上面的,再开这个。

在这里只记知识点,和自己在学习过程遇到的问题。总结自己的过程,也为同样遇到问题的朋友提个醒.


Python概述

Python基础知识

运行环境

Python的运行环境主要分为两大类:一种是IDE类的,即我们只可以输入代码,之后找地方执行代码(比较是和要输入大量代码的情况);另一种是Shell类的,即可以运行代码,显示结果的(比较适合代码量不大的情况);第三类是同时具备以上两类的功能。个人推荐新手使用第三类。下面简单介绍几种常见的编辑器(也是我筛选了很多信息以后最终选定的几种)。首先,本人的操作系统主要是windows(公司标配,无法改变),以及自己的一个Macbook Pro 13寸(自己便携用的),另外不好意思,新手不会用Linux,但是OSX是基于Uinux内核的,相信以后我会学会的,一定的。言归正传,想我一样的新手(windows用户)不推荐NotePad++(但是电脑上要装一个,改个什么配置什么的比记事本方便,别说Emacs之类的,本人是新手,一切都在学习中),缩进之类的不利于学习。因为不用Linux(至少现在不用),所以没有多了解Eclipse。这里简单说说IDLE,pycharm,python(xy),以及Emacs和VIM(列在这里主要是督促自己学习用的)

  • IDLE。安装Python自带的一个编辑器,缩进,颜色标注函数、变量之类的很好用。属于shell类的,可以直接显示运行结果。入门教材《Head First Python》就是用的这个编辑器讲解的Python。本人使用了一下,感觉还行,但是可能是还没有深入使用,感觉不太利于编辑。毕竟代码输入以后直接执行了。想调整,要把之前的代码Alt+p下来,然后再该,之前的显示也都在,不舒服。
  • python(xy)是一个第三类编辑器,而且优势在于把屏幕分成左右两部分,分别对应了第一类和第二类的功能,很方便。另外,Python包含的包之类的东西是各种丰富,重点推荐,科学计算的不错选择。很多人推荐课程时,提到了coursera上的一个南京大学的课程,叫《用Python玩转数据》。里面就主要用的是Python(xy)。
  • Ipython。也是一个不错的选择。经典教材,O'REILLY的《利用Python进行数据分析》推荐的。不用多说,绝对良选。
  • pycharm。上面三个都是我入门的资料推荐的,但是本人偏偏选中了pycharm,主要原因是——漂亮。绝对漂亮的界面,而且上手似乎很容易,但是对于新手也有的深入了解的点。属于上文说道的第三类,可以使用高亮的界面,各种设置。不错。
  • Emacs和VIM。前面说了,这两个放在这里是用来膜拜的,以后有机会一定学会。目前也只用Emacs的Org-mode写点笔记。感觉用好了,确实很好用。再叩首……

Python的格式

  • 大小写。Python对大小写是敏感的。换句话说变量CAT和变量cat是不一样的。通常情况下,全大写的变量是常量。

  • 函数的缩进是必须的。在IDLE中使用if函数的时候,直接输入代码会自动缩进,但是也不是完全自动的,比如直接输入后是这样的(《Head First Python》中的例子)

    def print_lol(the_list):

    for each_item in the_list:

    if isinstance(each_item,list):

    print_lol(each_item)

    else:

    print(each_item)

直接报错,不能使用,书上也没细说。自己第一次看的时候那叫一个晕菜,后来发现是缩进问题。在输入else的时候要Backspace一下,变成这样才可以。

def print_lol(the_list):
for each_item in the_list:
if isinstance(each_item,list):
print_lol(each_item)
else:
print(each_item)

也就是要把同级的if和else对齐。这里还不确定是不是我的IDLE 版本的问题,但是说这个例子就是要强调# 缩进是必须的#

  • 特殊符号。‘\’是续行符。‘;’是多行写成一行的意思。通常情况下,建议还是一行代码写成一行,方便阅读。
  • python的语句和表达式。语句是要完成一个任务(比如打印一份文件)。表达式是任务中的一个具体的组成部分(比如要打印文件的内容)。强调这个主要是为了便于交流。

Python的变量。

Python 的变量主要有以下要注意的:

  • 变量首字母可以使用下划线或者字母,其它可以使用字母、下划线和数字,也就是说变量的开头不能使数字,变量中也不能用乱七八糟的字符。(由于Python的很多内建标识涉及到下划线,所以习惯上变量做好不要用下划线开头)
  • 大小写敏感(前面说了)
  • 关键字不可用(就是python自己的函数名字和变量不能用,可以直接输入dir(builtins_),查看这些不能用的东西)
  • Python是动态的,不需要声明变量的类型。(比C之类的东西更亲民啊)

Python的数据类型

Python变量不需要声明数据类型,这是极大的亲民,但是不代表Python没有数据类型。作为基础学习还是要了解一下的。Python主要的数据类型有整数型(integer)、浮点型(float)、布尔型(boolean)、复数型(complex)、序列类型和映射类型(即字典dictionary)

  1. 整数型。就是我们一般说的整数。分为短的和长的,对于很多语言(包括老的Python版本)这个很重要,现在的不用考虑了。(包括Python2.7)。比如对于32位的系统,短整数型的范围是-231 -231 -1,(64bit的系统就是63次方),要用长整数型的时候需要用字母L,目前Python版本都不需要了,大大解决了溢出的问题。体现了Python的友善性,大赞一下。

  2. 浮点型。就是有小数了。这里支持科学计数法。比如3.22,9.8e3(就是9800)

  3. 布尔型。布尔型只有两种值,Ture和False。一般用1和0表示。

  4. 复数型。用小写字母j表示虚部。例如x=4+5j。利用函数real和imag可以提取实部和虚部。比如输入x.real,结果为4。x.imag就是5。另外可以用x.conjugate求共轭复数。

  5. 序列类型主要有字符串、元组、列表。

    • 字符串,不可变类型,用引号表示。
    • 元组,不可变类型,用()表示。比如赋值是x=1;y=2。然后输入x,y。结果显示1,2。这个很方便,比如用x,y=3,4直接赋值。也可以用x,y=y,x交换两个变量的值。
    • 列表,可变类型,用[]表示。
  6. 映射类型,建立对应键值得对应关系,比如

    d={'sine':'sin','cosine':'cos','PI':3.14}

    d['sine']

    'sin'

这里就是建立键(比如‘sine’)和值(比如‘sin’)的对应关系,当然后面还有更多的用处,以后慢慢絮叨。

这里有一个有意思的事情,直接打开Python(不是编辑器),输入一个简单的计算,3除以2(输入3/2),应该是1.5,但是Python给的结果却是1。原因就是python默认的计算规则是如果你输入的是整数型计算,答案也是整数型,即把答案的小数部分抹去。解决的办法输入3.0/2.0。答案就变成了1.5,因为你输入的是浮点型,答案也就用浮点型了。另外一种方法是调用‘division’,即输入命令

from __future__ import division

再试试,答案变成1.5了。

Python的基本运算

Python的基本运算包括算术运算(“+”“-”“*”“/”,乘方“**”,整除“//”,取余“%”);比较运算(>,<,,!=,<=,>=,分别对应大于,小于,等于,不等于,小于等于,大于等于);逻辑运算(not、and、or)。这些好理解,不说了,强调等于是“”,两个等号,一个那是赋值。不是一回事。

重点说一下字符运算。只有两种:

  • 原始字符串操作符r/R,大小写都行。用于一些不必转移字符的地方,举个例子,建立一个在python文件夹下建立一个test.py文件。

    f=open('d:\python\test.py','w') ##w是命令一部分,不用管

运行结果必然报错。因为,Python没有把'd:\python\test.py'当成一个地址,而是转义为一个字符串。其实就是将\转义了。怎么办?用r或者用双斜杠

f=open(r'd:\python\test.py','w')

或者用open('d:\\python\\test.py')

  • Unicode字符串操作符u/U,大小写都行。用于转换成Unicode字符串

Python学习笔记(1)——Python的概述(Python的环境、变量、数据类型、基本运算)的更多相关文章

  1. python学习笔记系列----(一)python简介

    一个月前,就按下决心要系统的学习下python了,虽然之前有学习过java,学习过c++,也能较为熟练的使用java做自动化测试看懂c++里的业务逻辑,但是实际上有那么多的东西自己还是不清楚,今天下定 ...

  2. python学习笔记系列----(八)python常用的标准库

    终于学到了python手册的最后一部分:常用标准库.这部分内容主要就是介绍了一些基础的常用的基础库,可以大概了解下,在以后真正使用的时候也能想起来再拿出来用. 8.1 操作系统接口模块:OS OS模块 ...

  3. python学习笔记-(一)初识python

    1.python的前世今生 想要充分的了解一个人,无外乎首先充分了解他的过去和现在:咱们学习语言也是一样的套路 1.1 python的历史 Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈp ...

  4. Python学习笔记(五)之Python操作Redis、mysql、mongodb数据库

    操作数据库 一.数据库 数据库类型主要有关系型数据库和菲关系型数据库. 数据库:用来存储和管理数的仓库,数据库是通过依据“数据结构”将数据格式化,以记录->表->库的关系存储.因此数据查询 ...

  5. Python学习笔记(一)初识Python以及安装Python

    一.Python简介 1.Python发展史 Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的. Python 本身也是由诸多 ...

  6. python学习笔记-(十六)python操作mysql

    一. mysql安装 1. windows下安装mysql 1.1. 下载源: http://dev.mysql.com/downloads/installer/,请认准对应版本 Windows (x ...

  7. Python 学习笔记(十二)Python文件和迭代(一)

    文件 文件和文件夹 文件:文本文件.二进制文件 文件夹:(windows) G:\pythonWorkspace\python\study (linux/mac) /home/workspace/py ...

  8. Python学习笔记一:第一个Python程序,变量,字符编码与二进制,用户交互程序

    第一个python程序 Windows:设置环境变量,X:\pthonxxx,xxx是版本号 在命令提示符下 输入python,进入解释器 >>>print(“Hello World ...

  9. python学习笔记(二)之python简单实践

    1 安装python开发环境 Linux环境下自动安装好了python,可以通过以下命令更新到python最新版本. #echo "alias python=/usr/bin/python3 ...

  10. Python学习笔记:输入输出,注释,运算符,变量,数字类型,序列,条件和循环控制,函数,迭代器与生成器,异常处理

    输入输出 输入函数input()和raw_input() 在Python3.x中只有input()作为输入函数,会将输入内容自动转换str类型: 在Python2.x中有input()和raw_inp ...

随机推荐

  1. 通过struts2-spring-plugin集成Struts2和Spring,报错:ClassNotFound:*Interceptor.......

    集成Struts2和Spring的时候,出现错误,ClassNotFound: *interceptor,之所以是*interceptor是因为报了好多个这样的错误,而且类名都不一样. 集成方法是通过 ...

  2. 设计模式-Template Method Pattern

    将generic部份放在abstract base class中的实现的方法中,而将和具体context相关的部份作为abstract base class的虚方法,由derivatives去实现. ...

  3. 关于kindle无法连接上wifi的问题

    家里换了宽带以后我发现kindle无法链接上WiFi了. 原因可能是我家使用的WiFi网络是1-11之间的信道,也有可能是运营商的问题(由于我是软件开发,对硬件和网络并不是很清楚,只能大概估计一下). ...

  4. Linux 常用命令十二 top

    一.top命令 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以 ...

  5. bzoj 3437: 小P的牧场【斜率优化】

    emmm妹想到要倒着推 先假设只在n建一个控制站,这样的费用是\( \sum_{i=1}^{n} b[i]*(n-i) \)的 然后设f[i]为在i到n键控制站,并且i一定建一个,能最多节省下的费用, ...

  6. hdu 5201 The Monkey King【容斥原理+组合数学】

    原来我一开始以为的\( O(n^2) \)是调和级数\( O(nlog_2n) \)的! 首先枚举猴王的桃子个数\( x \),然后使用容斥原理,枚举有至少\( k \)个不满足的条件,那么这\( k ...

  7. [App Store Connect帮助]七、在 App Store 上发行(3.4)提交至“App 审核”:将构建版本从审核中移除

    若要停止“App 审核”流程,您可以将该 App 版本从 App 审核中移除.要执行此项操作,App 状态必须为下列之一: 正在等待出口合规检查 正在等待审核 正在审核 等待开发者发布 等待 Appl ...

  8. python中threading中的lock类

    虽然线程可以在程序的执行过程中提高程序的运行效率,但是其带来的影响却难以忽略. Lock类是threading中用于锁定当前线程的锁定类.顾名思义,其作用是对当前运行中的线程进行锁定,只有当前线程被释 ...

  9. 项目Alpha版本发布

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 这个作业的要求在哪里 https://edu.cnbl ...

  10. centos 6.4 源码安装php5.4 mysql5.5 apahce2

    centos 6.4 源码安装php5.4 mysql5.5 apahce2 博客分类: php   参考:http://blog.csdn.net/simpleiseasy/article/deta ...