学习python第一天

来源:互联网 发布:网民数据统计 编辑:程序博客网 时间:2022/01/17 05:51

寒假在家搞搞python,计划每天搞两个小时,看看三十天后会到怎样的阶段。写个系列博客来激励一下自己。也算是留下一点学习的痕迹。

由于目前python分为2和3,而目前大量的第三方库都在2的平台上,因此学习过程中,我使用的是2.7.9的版本。

由于把《学习python》一书忘在了学校里,在这次学习过程中我将主要参考廖雪峰的官方网站上提供的教程。在这里先对廖雪峰先生表示感谢。

另外,在本系列结束的时候,我会把我的所有学习代码全部分享出来。


(一 ) 认识python

首先介绍一下Pythond的代码注释:单行注释用#,多行注释用三引号


一切数据皆对象,一切命名皆引用

python是一种动态类型语音,同时也是一种强类型语音。

下面我们来写一个简单的程序,这个程序会列出"h:/"下面的文件信息:

#-*-coding:utf-8-*-import sysimport osdef main():sys.stdout.write("hello world 我的第一个程序\n")print os.listdir("h:/")if __name__=="__main__":main()
第一行是为了能够使用中文:第二行和第三行是Import一些module.最后两行是为了让代码能够方便执行。


(二)变量与类型

Python 中以下划线开始或者结束的标识符通常有特殊意义。例如 一个中以下划线开始的标识符如_foo不能用 from module import *语句导入。

前后均有两个下划线的标识符如__init__被特殊方法保留。前面有两个下划线的标识符,如__bar, 被用来实现私有属性,这个将在“类和面向对象编程“中再说。

python没有常量,如果非要定义常量,可以 引用const模块

python的关键字 不能作为标识符

python的一切数据都是对象


python内建的数据类型有20多种,这里主要学习 空类型, 不二类型, 整型, 浮点型, 字符串, 元祖, 列表, 集合, 字典

空类型(None)表示该值是一个空对象

布尔类型的值分为True和False,需要注意大小写,在Python中,None以及任何数值类型的0,空字符串‘’,空元组(),空列表[],空字典{},都被当作False,其他对象均为True.

废话不多说,我们来看一段代码:

#-*-coding:utf-8-*-"""day01_02"""def main():print("hello world! True or False")if 0:print 'True'else:print 'False'if __name__=="__main__":main()
如果运行这段代码的话,结果会打印出False,原因就是数值0在python中被当作是False。所以执行else中的语句。


数值类型

关于Python中的数值类型,主要有四种:int  long  float  complex


字符串类型 

python拥有两种字符串类型:标准字符串类型(str)是单字节字符序列,Unicode字符串(unicode)是双字节字符序列

在 Python 中定义一个标准字符串 (str)可以使用单引号,双引号,三引号。当字符中含有换行符等特殊字符时,可以直接使用三引号定义

下面来看一段代码:

#-*-coding:utf-8-*-"""day01_03"""def main():print("hello world\n")str1='i am "python"\n'str2="i an 'python'\r"str3="""i'm "python",<a href="http://www.baidu.com"></a>"""print str1, str2, str3if __name__=="__main__":main()

结果如下



全局变量:

如果你在函数内部定义变量的话,在外部是无法获取的,但如果加上global关键字的话就可以。


列表:

列表中的元素可以是任意类型的(包括列表本身,可以实现多维数组),按位置索引

#-*-coding:utf-8-*-def main():classmates=['zhangsan','lisi','wangwu']print classmates[0]   #从0开始索引,打印的是第一个元素'zhangsan'classmates[0]='zhangsanfeng'  #修改第一个元素print classmateslis = [123,'spam',1.23]print len(lis)              #len()函数可以返回list的长度(元素个数)print lis[0]print lis[-1]                 #打印最后一个元素print lis[: -1]               #除最后一个元素以外的其他元素print lis+[4,5,6]             #重新拼接一个新的listif __name__=="__main__":main()

下面我们在通过一个程序来学习列表元素的添加与删除,并理解如何用list表示多维的数据

#-*-coding:utf-8-*-"""day01_05"""def main():classmates=['zhangsan','lisi','wangwu']classmates.append('adam')      #在末尾为这个list添加元素print classmatesclassmates.insert(1,'jack')    #在指定的位置为这个list添加元素print classmatesclassmates.pop()               #删除list末尾的元素print classmatesclassmates.pop(1)              #删除list指定位置的元素(此处为第二个元素)print classmatesclassmates[1]='sarah'          #直接修改指定位置的元素print classmatess = ['python','java',['asp','php'],'scheme']   #一个list中的元素可以是listprint s[2][1]                  #第三个元素中的第二个元素为'php'print len(s)                   #长度应该为4print len(s[2])                #长度应该为2print ss.pop(2)print sif __name__=="__main__":main()
list还支持切片这样的操作,切片是指抽取序列的一部分。下面我们还是用代码来解释

#-*-coding:utf-8-*-"""day01_06"""def main():classmates=['zhangsan','lisi','wangwu','michael','sarah','tracy','bob','jack']print classmates[0:3]  #从索引0开始到索引3结束(不包括索引3),即0,1,2.                        #也可以写成classmates[:3]print classmates[2:5]  #打印索引2,3,4的元素print classmates[-2:]  #打印最后两个元素print classmates[-2:-1]#打印倒数第二个元素lis = range(100)print lis[:10]print lis[-10:0]print lis[10:20]print lis[:10:2]   #前十个数每过两个取一个print lis[::5]     #所有数每过五个取一个array = [5,2,3,1,8]array.reverse()       #对list进行翻转print arrayarray.sort()          #对list进行排序print arrayfor s in array:       #for循环打印元素print sif __name__=="__main__":main()

Python还包括了一个更高级的操作,称为列表解析表达式,从而提供了一种处理像矩阵这样结构的强大工具。

#-*-coding:utf-8-*-def main():M=[[1,2,3],[4,5,6],[7,8,9]]col2=[row[1] for row in M]     #打印第二列的元素print col2col3=[row[1]+1 for row in M]   #打印第二列的元素print col3colfilter=[row[1] for row in M if row[1]%2==0]  #打印能被2整除的第二列元素print colfilterif __name__=="__main__":main()


元组 tuple()

元组与列表非常相似,它用()表示。元组比列表速度更快,但是元组是一个不可变的序列,一旦初始化就不能修改

#-*-coding:utf-8-*-"""day01_08"""def main():classmates=('zhangsan','lisi','wangwu','michael','sarah','tracy','bob','jack')a,b,c,d,e,f,g,h=classmates   #实现解包的功能print classmates[1:3]        #tuple也支持切片print a,b,c,d,e,f,gt = (('t1','t2'),('t3','t4'))  #在元组中包含元组print t[0][0]if __name__=="__main__":main()


字典 dict:

啊,今天写了不少了,就到这里吧。明天计划学习dict,set.运算符,表达式,流程控制,以及简单的函数知识。

北京时间2015年1月27日23点28分







0 0
原创粉丝点击
热门问题 编写一个应用程序绘制一个如下的操作菜单并实现功能(定义一个类学生表示学生,有成员变量姓名name和年 手机是现在人们必不可少、最重要的通讯工具,拥有一款简单、实用、易用的手机通讯录,将会使你的手机更加好 手机是现在人们必不可少、最重要的通讯工具,拥有一款简单、实用、易用的手机通讯录,将会使你的手机更加好 编写一个应用程序绘制一个如下的操作菜单并实现功能(定义一个类学生表示学生,有成员变量姓名name和年 平坦衰落信道 平坦衰落信道2FSK差错性能分析 1204:剔除相关数 Minecraft 编写一个应用程序绘制一个如下的操作菜单并实现功能(定义一个类学生表示学生,有成员变量姓名name和年 2023 乐观型抑郁症 关于乐观的作文 关于乐观作文 乐观向上的句子 关于乐观的事例 乐观心态小故事12个 乐观向上励志图片 一拳之乐观家族 孩子乐观积极向上 乐观心态的简短句子 关于坚强乐观的名言 乐观心态的作用 乐观面对生活的句子 乐观心态怎么写 乐观是什么意思 有关乐观的名言 保持乐观的心态 乐观向上的名言 乐观心态演讲稿 乐观的近义词 关于乐观的散文 积极向上的名言 形容心境坦荡乐观豁达的诗句 如何调整心态让自己乐观 letv手机 乐事手机 樂視 lesh yueshi 乐tv 乐讯 乐讯社区 乐讯论坛 lexun乐讯 乐讯首页 乐讯网 乐讯旧版 乐讯交友网 乐讯数码 乐讯聊天 乐讯广告