人生苦短,都用python 。这门语言的兴起呢,是因为介于C与shell之间易学易懂易用可扩展的语言。pyton是由C语言写的。那为什么还要学python呢,学C多好。但是C呢,不适合高效率的开发,跨平台又需要重新编译。而Python开发效率,比C要高很多。SO,你没有语言基础,可以先从python学起。python诞生于89年,但是99年才开始使用,从2000年开始构成现在的python语言框架基础。python2.4是非常典型的版本。同年,目前最流行的web框架DJANGO诞生。(这是一个以电影命名的,很好看,推荐大家看看,小李子主演被解救的姜戈)2008年python2.6版本之后呢,官方发生了一个重大的变更,当时因为发现了很多问题,类似重复的功能,所以要进行清理。就推出了python3.0版本。那这样一来,凡是用2.X的版本都需要重新写代码。因为不兼容。就是2.x版本之前的代码都不能再用。但是推出来后呢,发现没人用。因为一旦用了就要重写代码,谁愿意给自己找活干,是吧。没办法了,只能推出了python2.6.6既兼容2.X软件,又兼容了3.x的版本。所以那个时候的2.6/2.7版本都是过渡期。所以目前主流的版本依然是2.7,但是凡是新的项目开发出来的python都是用的3.0版本的。官方说2.7版本会维护到2020年。哇,还有三年~~~~~~~所以说嘛,python3.0版本是现在和未来的语言。
那么python3.0版本比2.x版本好在哪里,首先第一,它默认支持中文。第二 不兼容2.X。第三 核心语法调度更易学。第四 新特性默认只在3上有。(是不是心里有种冲动赶紧用上python3.0版本)
python几项规则:
变量
变量的作用是什么,是为了存储程序运算的结果,为了方便日后调用,或更改。当然官网说的会更加详细。这里 一句话就简单粗暴的总结了(ALEX老师总结的),那本身变量名没有实际意义的,一个好的变量名,没有描述性的数据,就不是一个好变量。你可以理解,变量是一个酒瓶,酒瓶里的酒水就是各种数据,那么主要的目的就是标记存储信息在内存里。
什么都是有规矩,没有规矩不成方圆,变量也有规矩的,1 变量名超过一个单词的,要用下划线形式或者大写形式表达,例如:ansible_name OR ansibleName 第二种属于驼峰体。当然,官方建议还是用第一种。
变量命名的规则:1 具有描述性 ;
2 只能以下划线_、数字、字母,不可以是特殊字符(#@¥%……等等)组成;
3 不能以中文为变量名(其实你命名了也可以,但是最好不要。除非你公司允许);
4 不能以数字,空格开头例如:1ansible 可以是ansible1 = 数字可以在中间、结尾、不可以开头因为这是规矩 ;
5 保留字符是不能被使用的,什么是保留字符,例如:print = 3
print = ('print') 这句话很矛盾啊,本来print是个语句啊,你非要当成个字符串。那python人家理解不了啊亲;
6 不能以大写开头,因为语句是不一样的。变量中分为常量,变量。两种。常量是指固定好的,不能被改变的,例如: pie = 3.1415~~~~这个pie是无法改变的,而在python中,所有的量都是可以变的。那就是说为了区分常量、变量,都会把常量全部变成大写,例如:PIE = 3.1415~~~~
7 保留字符是不能当做变量,这个就太多了,例如:“”print and as if elif else except while wit not or pass for from inport ralse try exec def del assert break class continue retarn finally “”等等;
引号
只要引号“ ”包起来的叫字符串,没有“ ”号的就是变量名。例如: name = "LiXiao"
删除变量,两种方式,第一种简单粗暴的直接del 例如:age = 1 del age 第二种替换 例如: age = 1 age = 2 python内部会每隔一段时间会运行检查一次,当发现写的变量没用时,就会自动回收。pyhton的回收机制。不许人为处理。它自带这种装备。C的会是需要手动写回收机制的。(恩,觉得这个装备还是蛮好的)
字符编码
刚才有说到ASCII编码表里有255个字符编码。一个字节等于8BIT 1967年 美国信息交换标准码(ASCII:American Standard Code for Information Interchange),那么那个时候呢,还没有中国什么事呢。因为中国那个时候也没有电脑。但是后期,中国开始使用电脑,但是发现,没有中国的编码表怎么办,中国人还是很聪明的,当时的ASCII的表有预留出100多个空地方,当然他也没想到,中国文字如此强大,就是100多个空地也不够编辑到编码表里,怎么办呢。中国人单创了一张表,与ASCII表简历对应关系,这张表就叫GB2312 1980年创建的,7455个字符,6763个汉字,682个字符。也就是72*94=6768字码。还预留了5个空位。即是这样,发现,呃,还是不够用。还是不全面,于是在2003年,在GB2312的基础上又扩展出了GB18030 ,这里面有27484个汉字。(感兴趣的可以百度看下这张表。)这也就是主流使用编码。后来电脑在世界开始流通开,每个国家都开始建立自己的表,出现了编码混乱,乱码的情况,于是呢就再次进行对ASCII码的编写,造就了UNICODE,UNI是统一的意思,就是我们所说的万国码,可以代表所有字符编码,规定ASCII码占一个字节,unicode存一个字节,统一占用2个字节,16个二进制。那所有字符两个字节会不会有问题?对没过来说,这种方法太占内存,人家用习惯了ASCII码,为了解决这个问题,又推出了扩展级UTF-8,可变长的字符编码,如果是英文的统一用一个字节,如果是中文的,统一用3个字节。(怎样,中国就是有钱。内存就比国外的大)UTF8可以压缩并进行分类。所以就成了现在用途广泛UTF8。就是这么由来滴!
那么在python2.X版本里,是不支持中文字符的。(原因已经在上面说过了)所以呢,如果你说我就想在python2.X版本里显示中文可不可以。当然可以。没有什么是不可以的。你给它指定一下就可以了。例如:#!-coding:utf-8-*- 这是规定要这样写的。然后你写,print u "我爱北京天安门"。建议在win的cmd里测试。你会看到奇迹的!!!当然就是出现了中文字符。这个U就是代表UNICODE类型,它是向下兼容的。兼容GDK/GB2312这两种码。所以你指定好了,肯定能写出来,如果觉得太麻烦,干脆听一句劝,用python3.x版本的好了。萝卜青菜,各有所爱。
关于注释,在shell里的注释是#号键。你要注释什么就在前面加个# ,python#号代表的是单行注释的意思。跟shell单行注释的意思是一样的。例如:
但是在python中,也可以多行注释的,那就要用 ''' 三个引号来表示注释。必须上下对应起来。当然还有别的方式,官方推荐用这个。例如:
运行一个小程序,说明一下python的使用吧。变量,上面已经说过以及使用规则。这里不再重复了。跟shell里一样的是,为了减少复杂的语句,可以给这个语句加一个变量。使其简单化,方便后面对这个变量加以应用。我上面举列子的意思。猜年龄。如果猜的年龄跟我写的年龄一样,都是80 就说yes ,如果不一样就说no。那么我先定义了80 这个年龄(当然这不是我的实际年龄了)给它加了一个变量。就是age_gengzhaodan = 80。这个age_gengzhaodan就代表80,后面直接引用就可以了。那么guess_age这就是你要输入的年龄。这个int这里简单说下。int是表示整数。记住一句话,你想把字符串,转换成数据,就用int(被转的 字符串),你想把字符串转成数据就用srt(被转数据)。可以看到我的括号里有的加引号,这个引号里的就叫字符串。数字和字符串是不能拼加的。也就是简单的说,数字跟字符串不能同时拼加,拼加时,要用到int这个表示。input是表示接受的数据都是字符串,即便你输入的是数字,也会被当做字符串来处理。那字符串用什么来表示呢str=字符串。这个str后面的举例会说到的。
继续说,那print就是打印的意思,就是把你上面的结果显示出来。if else这两个是要相对出现的,不可以单独使用的。if就是如果的意思。这句话的意思就是如果你猜的年龄等于age_gengzhaodan的年龄,那就打印出yes,是的。else就是否则,就打印出NO。这就是判断。在shell里,if后面通常就会跟着then,在python里,:冒号就是then的意思。而且在python里等于要用两个等于号 == 这个是说相等的意思。那么说到判断,我们讲讲判断的规则。首先,需要缩进。那什么是缩进。缩进是用来区分代码执行的。python必须要求缩进。图中标红的地方就是缩进。例如:
注意:tab键不等于空格。缩进要用统一的级别,保持一致,你用tab就统一用tab,用空格,就统一用空格。官方建议不要用tab键。当然这是建议。我这里用的是空格。那个小点点就是我用了四个空格。上下一致。这样python就能判断出,先执行第一个print,然后再执行第二个print 。
大概意思我想我已经说的明白了。我们来执行一下这个结果。看看出来的是什么,我是在win里进行的测试。(只是用来做测试使用的。)
很简单的小程序,我第一个猜的是30,结果就是no。第二个我猜的是80,结果就是yes 。这个就是很简单很简单的用户交互。那可以再加一点点难度。就是刚才有说到的一个叫做str,这个就是把数据转换成字符串。接下来写的一个程序,来玩一个,让它来算出来小明还能活多久的游戏。(这里的小明是自己编的名字,如有雷同纯属偶然。请勿计较。)那先来看下代码:
这个意思是我们先给这个死亡年龄定义一个变量。就是100岁。(长命百岁)然后输入小明的名字。然后输入小明的实际年龄(这都是我编的)然后用这个死亡的年龄减去实际年龄,就是还能活多少年。注意。这里我用了int这个代表把字符串转换为数据的意思。那么运行程序,看看出来的结果是什么:
可以看到小明已经70岁了,还能活30年。哇真好!
那么上面的是int的用法,并没有说到str的用法,表着急。接下来这个代码就是用str跟int结合使用的:
这里可以看到用到了str 这个就是把数据转成字符串,然后这个减号,在python里,减号就是—,是不是很方便,那同理大于> 号,小于就是<号。str的用法需要括号里填上你要被转的数据,可以看到我是把括号里的都转成了字符串来处理。int是整数,就是说把字符串转成了数据。就是小明的实际年龄。数据与数据才能做减法,用100-70的意思。字符串跟数据是不能拼加的。就是这个意思。然后再print出来结果就是:
.simpleness!
那以上的是判断语句跟int str的使用。那,肯定有人问了,能不能加多个判断啊,答案是当然可以。多分支语句。什么是多分支语句,就是多判断。上面说到了if else,是如果,就的意思。那么多分支语句就是说,elif,再如果的意思。它的用法是这样的。在shell里再如果的表示是else if 在python里就是elif 。举个例子,考试分数的,如果是大于90分是A,大于80分是B,大于70分时C,大于50分是D,其次是不合格。多分支判断,当程序判断时,满足条件时,就会停止当前的。再进行下一个判断,例如:
注意,语句后的:冒号,是要加上。(这个我总忘记加。希望大家一定记住这点。)那么得出来的结论就是:
大家发现了没有,85分也是大于80分大于70分大于50分。为什么得出来的B呢。而不是C 呢。这就是多分支判断,当程序判断的时候,只要符合一项,比如大于80分是B这项,它就会不再往下判断。不重复判断。这就是多分支判断的用法,你也可以练练。话说python真的好简洁。确实用起来不复杂。适合没有基础的人学习的一门语言。所以加油吧。学好数理化,走遍天下都不怕。人生苦短。都用python。
这个Python的工具,大家可以自行百度下载一个。比win要好。所以推荐大家用。