Python 整理一
---恢复内容开始---
Python (pailen)最近学习这个语言,其实早在几年前学习perl的时候就知道有这个语言了,在讲perl的那本书后面就推荐学习python,并且还附加了二章的入门。当时初看了一下,发现和perl很相似。
这几天学了python的一些基本东西,整理一下。如下 :
#!/usr/bin/python ''' 3.XX版后,默认是UTF-8,支持中文了. ''' #coding=utf-8 '''这是注释,和Perl一样可以使用#号注释单行,但是多行注释是使用3个单引号''' print("1. Mirror,python的Helloworld程序."); print(); print("2. '''这是注释,和Perl一样可以使用#号注释单行,但是多行注释是使用3个单引号'''"); print(); print("3. Hello World!"); print(); print("4. 你好,世界!"); print(); print("5. python版本:3.xx"); print(); print("6.变量命名"); a,b,c=1,"Mirror",1.13; print("a,b,c=1,\"Mirror\",1.17; #直接指定并赋值,无须显示声明,类型自动判断.与perl相似"); print("打印出值"); print(); print("a=",a); print("b=",b); print("c=",c); print(); print("7.取字符串的子串"); print("str=my name is mirrortom.这开始是特殊字符~!@#$%^&*()_+|?/\\"); print("例一:取出name子串.str[3:8],下标3(含)到下标8(不含)"); str='my name is mirrortom.这开始是特殊字符~!@#$%^&*()_+|?/\\'; print(str[3:8]); print("新颖的例二:将字符串输出两次 str * 2"); print(str * 2); print(); print("8.使用del语句删除变量引用,这怎么类似C语言的内存释放?"); print("-1.name = 'mirror';sex=0;","\n-2.del name,sex","\n-3.print(name,sex)"); print("NameError: name 'name' is not defined",'第3行:会报错误,变量没有定义'); print(); print("9.列表,python的列表使用[]",'感觉这类似于数组加散列,和perl差不多.'); list=['1str',2,'3str','mirrortom']; print (list); print (list[0]); print (list[1]); print (list[2]); print (list[3]); print("如果执行:print (list[4])",'list index out of range,类似下标出界的错误'); print(); print("9.元组:tuple [t^pl] 这个太奇怪了,相当于只读列表,认为和玫举性质差不多.我顾名思义,就是元数据的列表,而元数据一般是不能修改的"); print("示例:data=('1str',2,'3str','mirrortom')"); tupledata=('1str',2,'3str','mirrortom') print(tupledata); print(tupledata[0]); print(tupledata[1]); print(tupledata[2]); print(tupledata[3]); print(tupledata*2); print(); print("10.字典 dictionary,这个好理解,键值对.在形式上和json一样的."); print("例 : dict={'name':'mirror','sex':'男'}\n print(dict)"); dict={'name':'mirror','sex':'男'}; print (dict); print(dict['name']); print("print(dict['name']);") print(dict['name']); print(); print("11.数据类型转换"); print("将数据类型名作为函数名,要转换的值作为参数"); print("例:转为整数 int(a) 转为长整数long(a):3.xx版本后已经没有long了,统一使用int"); print("a='1';print(int(a));print(float(a));"); a="1"; print(int(a)); print(float(a)); print("将字符转为它的整数:a='a';print(ord(a));"); a='a'; print(ord(a)); print(); print("12.运算符 // 两个斜线表示取整除.这个不同于其它语言,"); print("例如:19//3"); print(19//3); print("除:19/3.其它语言的除等同于//"); print(19/3); print("取模(除法的余数):19%3"); print(19%3); print(); print("13.比较运算符.和其它语言一样.就是这些"); print("== != <> > < <= >=",'其中<>这个在3.XX版本中已经没有了.'); print(); print("14.赋值运算符.和其它语言一样"); print("= += -= *= /= %= **= //="); print("例:a,b=3,4;a+=b;print(a);a//=b;print(a)"); a,b=3,4; a+=b; print(a); a//=b; print(a); print(); print("15.位运算符.& | ^ ~ 与 或 异或 取反 << >>左右移位."); print("都是对二进制数位的操作.和其它语言一样."); print(); print("16.逻辑运算符 and or not 与 或非"); print("a,b=3,5;print(a and b);print(a or b);print(not not b);"); a,b=3,5; print(a and b); print(a or b); print(not not b); print(); print("17.成员运算符 in not in这不就是SQL语句中的吗.python也支持.呵呵."); print(); print("18.身份运算符 is is not 用于判断两个标识符是否引用同一个对象."); print("例:a=b=1;print(a is b);\nc=d='mirror';print(c is d)\na=1;b='1';print(a is b);\nc='mirror';d='mirror'"); a=b=1; c=d='mirror'; print(a is b); print(c is d); a=1;b='1'; print(a is b); c='mirror';d='mirror'; print(c is d); print("还有个这样的函数,获得一串数字,感觉像C#的对象哈希码.print(id(a));"); print(id(a)); print("请看这些码 print(id(1));print(id('mirror'));print(id(a));常量有相应表示方式"); print(id(1));print(id('mirror'));print(id(a)); print(); print("19.if 语句.没有使用花括号作为语句块边界,在if表达式之后使用冒号结束.之后为语句块,语句块以缩进来区分.这比较奇葩."); print("例:下面if之后两个语句,如果缩进相同,则视为同一语句块,就是说条件成立这两句都执行\nif 0==1:\n\tprint('0==1');\n\tprint('false')"); if 0!=1: print ('0!=1'); print('false'); print("如果缩进不同,就认为不是一个块里的,请看"); print("if 0==1:\n\tprint('0==1')\nprint('true');"); if 0==1: print ('0==1'); print('true #这里输出了第二个print,但是条件并不成立.说明它不属于IF语句块中的'); print("如果表达式和语句块都很简单,只有一句,可以这样写\nif(1==1):print('true');"); if(1==1):print('true #python还没有switch语句,可以使用if xx: elif xx:'); print(); print("20.循环.终于到循环了,有for 和 while 没有 do while."); print("i=1;\nwhile i==1:\n\ti+=1;\n\tprint(i);"); i=1; while i==1: i+=1; print (i,'#结果输出2'); print("continue break 这两个用于跳过当次循环和退出循环.和其它一样没什么说的"); print("这个比较有新意,else之后的语句什么时候执行?当循环正常结束时执行\nwhile xx: \n\t.....;\n\t.....;\nelse:\n\t正常执行完循环会执行else后面的语句块;"); print('正常执行完循环后会执行else后面的语句块,不正常执行完呢,就是使用了break跳出循环后,将不会执行else'); print(); print("for循环:没有经典的写法只有和foreach一样的写法: \nfor var in ('1','2'):\n\tprint(var)"); for i in ('1','2'): print(i); print(); print("21.pass 语句.这个有什么用处?\n如果语句块没有内容则可以用这句话占个位置.例:\nif 1==1:\n\tpass #不做任何事."); if 1==1: pass print("如果不写的话,空着行不行呢.不行了.因为python的语句块使用缩进区分,如什么都不写的话,就区分不了语句块了.") print(":(个人觉得这是没事找事,想少写大括号,又多引入pass解决代码块区分问题.最后还是没省多少事."); print(); print('22.随机数.介绍一个函数randrange(0,5,1);三个参数是起点终点步长.\n\t说明:无法直接使用该函数,因为它属于一个类random的静态方法,用来需要引入random类 import random'); print("import random;\nprint(random.randrange(0,5));取起不取终"); import random; print(random.randrange(0,5,1)); import math; print('import math;\nmath.pi #',math.pi); print('math.e #',math.e); print(); print('23.转义字符'); print('\\ 如果在源码的行尾打一个,表示该行没完,延续到下一行.\n\\a这个可以让系统发出一个声音'); print("r'\\n'",'在转义前面加一个r,表示不转义,直接输出原字符串.'); print(r'\\'); print(); print('24.格式化输出,下面这个东西看起来原始多了.%(name)s这句话分三部分:%是符号,name是点位名,s表示是字符串.'); print("print (\"my name is %(name)s programAge %(pa)d years.\" %{'name':'mirror','pa':3}) ;"); print ("my name is %(name)s programAge %(pa)d years." %{"name":'mirror',"pa":3}) ; print(":)还好3.XX版本有类似C#的string.format.那就是str.format().再试试上面那句"); print("print(\"my name is {0} programAge {1}.\".format('mirror',3));") print("能指定占位名,不过用数字不更好吗.print(\"my name is {name} programAge {pa}.\".format(name='mirror',pa=3));"); print("my name is {0} programAge {1}.".format('mirror',3)); print("my name is {name} programAge {pa}.".format(name='mirror',pa=3)); print(); print("以上是基础的语法,另外就是面向对象了.这个在下一篇里弄");