Python学习笔记(1)——Python的概述(Python的环境、变量、数据类型、基本运算)
Table of Contents
开始学习Python,主要的材料有三:
- 《Head First Python》。入门,了解概念。
- coursera上的《用Python玩转数据》,中文视频,比较粗浅,容易跟得上。与上一材料互补。
- 《利用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)
整数型。就是我们一般说的整数。分为短的和长的,对于很多语言(包括老的Python版本)这个很重要,现在的不用考虑了。(包括Python2.7)。比如对于32位的系统,短整数型的范围是-231 -231 -1,(64bit的系统就是63次方),要用长整数型的时候需要用字母L,目前Python版本都不需要了,大大解决了溢出的问题。体现了Python的友善性,大赞一下。
浮点型。就是有小数了。这里支持科学计数法。比如3.22,9.8e3(就是9800)
布尔型。布尔型只有两种值,Ture和False。一般用1和0表示。
复数型。用小写字母j表示虚部。例如x=4+5j。利用函数real和imag可以提取实部和虚部。比如输入x.real,结果为4。x.imag就是5。另外可以用x.conjugate求共轭复数。
序列类型主要有字符串、元组、列表。
- 字符串,不可变类型,用引号表示。
- 元组,不可变类型,用()表示。比如赋值是x=1;y=2。然后输入x,y。结果显示1,2。这个很方便,比如用x,y=3,4直接赋值。也可以用x,y=y,x交换两个变量的值。
- 列表,可变类型,用[]表示。
映射类型,建立对应键值得对应关系,比如
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的环境、变量、数据类型、基本运算)的更多相关文章
- python学习笔记系列----(一)python简介
一个月前,就按下决心要系统的学习下python了,虽然之前有学习过java,学习过c++,也能较为熟练的使用java做自动化测试看懂c++里的业务逻辑,但是实际上有那么多的东西自己还是不清楚,今天下定 ...
- python学习笔记系列----(八)python常用的标准库
终于学到了python手册的最后一部分:常用标准库.这部分内容主要就是介绍了一些基础的常用的基础库,可以大概了解下,在以后真正使用的时候也能想起来再拿出来用. 8.1 操作系统接口模块:OS OS模块 ...
- python学习笔记-(一)初识python
1.python的前世今生 想要充分的了解一个人,无外乎首先充分了解他的过去和现在:咱们学习语言也是一样的套路 1.1 python的历史 Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈp ...
- Python学习笔记(五)之Python操作Redis、mysql、mongodb数据库
操作数据库 一.数据库 数据库类型主要有关系型数据库和菲关系型数据库. 数据库:用来存储和管理数的仓库,数据库是通过依据“数据结构”将数据格式化,以记录->表->库的关系存储.因此数据查询 ...
- Python学习笔记(一)初识Python以及安装Python
一.Python简介 1.Python发展史 Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的. Python 本身也是由诸多 ...
- python学习笔记-(十六)python操作mysql
一. mysql安装 1. windows下安装mysql 1.1. 下载源: http://dev.mysql.com/downloads/installer/,请认准对应版本 Windows (x ...
- Python 学习笔记(十二)Python文件和迭代(一)
文件 文件和文件夹 文件:文本文件.二进制文件 文件夹:(windows) G:\pythonWorkspace\python\study (linux/mac) /home/workspace/py ...
- Python学习笔记一:第一个Python程序,变量,字符编码与二进制,用户交互程序
第一个python程序 Windows:设置环境变量,X:\pthonxxx,xxx是版本号 在命令提示符下 输入python,进入解释器 >>>print(“Hello World ...
- python学习笔记(二)之python简单实践
1 安装python开发环境 Linux环境下自动安装好了python,可以通过以下命令更新到python最新版本. #echo "alias python=/usr/bin/python3 ...
- Python学习笔记:输入输出,注释,运算符,变量,数字类型,序列,条件和循环控制,函数,迭代器与生成器,异常处理
输入输出 输入函数input()和raw_input() 在Python3.x中只有input()作为输入函数,会将输入内容自动转换str类型: 在Python2.x中有input()和raw_inp ...
随机推荐
- thinkphp不能够将ueditor中的html文本显示
因为这个问题花费了我好长时间,非常的急躁.fuck!! 这次我首先在富文本框中输入了一些文本,这些文本是带有样式的,比如是代码.然后存入数据库,但是当我再一次将它取出来打算放入富文本框中的时候,马丹, ...
- 【黑金教程笔记之001】veriloghdl 扫盲文—笔记&勘误
001_veriloghdl 扫盲文—笔记&勘误 2014/10/31 原文作者:akuei2 联系方式:blog.ednchina.con/akuei2 勘误001: Page 3 0.1 ...
- TCP协议中的三次握手和四次挥手(图解)【转载】
建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来看看如何建立连接的. 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资 ...
- sublim text3快速生成html代码时,tab键失效问题
sublime text3是一款非常强大的文本编辑器,个人觉得做前端的话这款工具很好用.便携,秒启.唯一让我觉得不是特别爽的就是插件啊,都需要自己安装.不过瑕不掩瑜,这款编辑器是很适合开发前端和PHP ...
- Unity优化总览
CPU GC 序列化与反序列化,如protobuff,json解析 String的频繁构造,拼接,如ToString()会生成字符串,Object.name会返回拷贝 闭包和匿名函数,在闭包中调用外部 ...
- GIT 初始化 user.name user.email
git config --global user.name "username" git config --global user.email "email"
- bzoj 1565 [NOI2009]植物大战僵尸【tarjan+最大权闭合子图】
一上来以为是裸的最大权闭合子图,上来就dinic -然后没过样例.不得不说样例还是非常良心的给了一个强连通分量,要不然就WA的生活不能自理了 然后注意到有一种特殊情况:每个植物向他保护的植物连边(包括 ...
- iOS判断输入的字符串是否是纯数字
主要用于判断输入到TextField的内容是不是数字,比如需要输入电话号码的时候. 网上查看了一些资料,一般都是通过协议. 以下内容来自:http://www.2cto.com/kf/201404/2 ...
- jquery判断checkbox最多选几个
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- [转]F# Samples 101 - Visual Studio 2010
http://code.msdn.microsoft.com/F-Samples-101-0576cb9f/sourcecode?fileId=18956&pathId=1045958806 ...