Python学习笔记1:

python开发环境配置

关于版本: 2.X和3.X的区别还是挺大的,但是最后肯定新版本会取代旧版本,所以我还是安装了最新的3.5.1

具体安装就没什么好说的了,装完了在命令行里输入python就可以进入python环境了。最后不要忘了在我的电脑里配置下path的环境变量。

编辑器:
网上看了很多人的选择,pycharm功能口碑不错,功能比较强大。不过我现阶段主要还是学习,都是写一些小demo,简单些的编辑器就可以了。正好电脑上有sublime ,就装了些python的插件,用来写写简单的python代码也挺好的。

变量与基本数据类型

python是动态弱类型语言,简单的讲就是变量不区分类型,定义时不用定义类型。从Java、C++等强类型语言过来的确实感觉有点不适应。不过久了就适应了,而且弱类型确实方便了不少。

其基本数据类型有以下几种:

  1. 整型:
    在Python内部对整数的处理分为普通整数和长整数,普通整数长度为机器位长,通常都是32位,超过这个范围的整数就自动当长整数处理,而长整数的范围几乎完全没限制。所以long类型运算内部使用大数字算法实现,可以做到无长度限制。
  2. 浮点型
    Python的浮点数就是数学中的小数,类似C语言中的double。在运算中,整数与浮点数运算的结果是浮点数浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是相等的。浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。
  3. 字符串
    Python字符串即可以用单引号也可以用双引号括起来,字符串是以''或""括起来的任意文本,比如'abc',"xyz"等等。请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I,',m,空格,O,K这6个字符。
    如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识,比如:
'I\'m \"OK\"!'

其表示的是:

I'm "OK"!

转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\表示的字符就是\,可以在Python的交互式命令行用print打印字符串看看:
如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加个前缀 r
,表示这是一个 raw 字符串,里面的字符就不需要转义了。例如:

r'\(~_~)/ \(~_~)/'

Unicode编码
因为Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码,普通的字符串'ABC'在Python内部都是ASCII编码的。
Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,比如:

print u'中文'
中文
  1. 空(None)
    表示该值是一个空对象,空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值

  2. 布尔类型(Boolean)
    在Python中,None、任何数值类型中的0、空字符串“”、空元组()、空列表[]、空字典{}都被当作False,还有自定义类型,如果实现了nonzero()或len()方法且方法返回0或False,则其实例也被当作False,其他对象均为True布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写)

代码格式与基本语句

说起代码格式,python确实算得上奇葩了,代码块的区分竟然是靠缩进来控制的。在java里我一向是用tab键的,可python可一定要区分清楚tab和空格(最好不要用tab)。

个人觉得为了少写点{}而靠缩进来控制代码 真的不是什么好主意,可是规定就是这样,也没办法了,只能遵守吧

下面是一段简单的代码:

def square_of_sum(L):

    sum = 0

    for a in L:

        t = a * a

        sum = sum + t

    return sum

print (square_of_sum([1, 2, 3, 4, 5]))

print (square_of_sum([-5, 0, 5, 15, 25]))

还好上面循环里面的代码和层数不多,如果多了些的话确实要多留意些。

  1. 条件判断
    python的if语句和其他语言大概也差不多,就是if后面不用加括号,判断体输入完了后注意加“:”,代码块是4个空格缩进。
    另外python对else if定义了单独的一个关键字:”elif “

  2. while循环
    这个和java语言的基本一致,通过while关键字后面的判断体判断是否进入代码块。在代码块里面可以通过break和continue退出或者继续

  3. for循环
    其实全称应该是for in循环,相当于java里面的for each循环,主要用于循环数据容器,而没有java中的for(;;)的功能

List 与Tuple类型

  1. List
    基本的列表结构,因为python是弱类型语言,所以List也是不区分类型的,而且定义一个表时也没有什么关键字,通过[]符号就可以了,如下:
L = ['Tom', 100, True]

也可以创建空表:

empty_list = []

数据访问:
python支持正反两个方向访问,如L[0]是第一个元素,L[-1]是最后一个元素。这负方向访问,这个确实带来了很多方便。不过注意的是,如果索引值大于list长度,就会发生角标越界,程序会crash。
数据添加:
通过append('v')方法可以在list尾端添加元素,而insert(0,'v')就可以在制定位置插入值了,insert角标后面的所有元素,都自动向后移动一位。
数据删除
和插入类似,删除也有两个方法,pop()可以删除尾端的元素,pop(3)可以删除制定index的元素,删除之后,后面的元素会前进一位。

2.Tuple
tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。tuple表示如下:

t = ('Adam', True 3)

创建tuple和创建list唯一不同之处是用( )替代了[ ]。
创建单元素tuple
单元素的List可以用[1]这样的格式,那Tuple可以用(1)这种格式吗?
显然这是不可以的,因为()既可以表示tuple,又可以作为括号表示运算时的优先级,结果 (1) 被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。
所以正确的姿势是(1,),Python在打印单元素tuple时,也自动添加了一个“,”,为了更明确地告诉你这是一个tuple。
List为元素
前面说过Tuple的元素不可变,那如果元素是List呢?
打印一下看看:

>>> t = ('a', 'b', ['A', 'B'])
>>> L = t[2]
>>> L[0] = 'X'
>>> L[1] = 'Y'
>>> print t
('a', 'b', ['X', 'Y'])

可以发现,Tuple中的List元素改变了,可以这么理解:
表面上看,tuple的元素确实变了,但其实变的不是 tuple 的元素,而是list的元素。
tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
理解了“指向不变”后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。


未完待续

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容

  • 最近在慕课网学习廖雪峰老师的Python进阶课程,做笔记总结一下重点。 基本变量及其类型 变量 在Python中,...
    victorsungo阅读 1,656评论 0 5
  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,546评论 1 118
  • 一、python 变量和数据类型 1.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序...
    绩重KF阅读 1,645评论 0 1
  • 终端进入 python 交互式环境python>>> 运行 py 文件>>> python hello.py 加载...
    WesleyLien阅读 360评论 0 0
  • 近日,有关范雨素的相关文章刷爆朋友圈。范雨素是谁?当红女星?当红歌星?当红女歌星?科学家?作家?一连串的发问是你我...
    东宇教育在线阅读 164评论 0 1