elan1986 发表于 2013-1-15 01:26:19

python快速入门一

1)字符串:字符串有其特有的索引规则:第一个字符的索引是 0,最后一个字符的索引是 -1>>> prstr = 'Python'>>> pystrTraceback (most recent call last):File "<pyshell#15>", line 1, in <module>    pystrNameError: name 'pystr' is not defined>>> pystrTraceback (most recent call last):File "<pyshell#16>", line 1, in <module>    pystrNameError: name 'pystr' is not defined>>> pystr = "abcde">>> pystr'a'>>> pystr='Python'>>> pystr'P'>>> pystr'tho'>>> pystr[:2]'Py'>>> pystr'thon'>>> pystr[-1]'n'>>> pystr * 2'PythonPython'>>> '-' * 2'--'>>> pystr[-1:15]'n'>>> pystr[-1:15]'n'>>> pystr[-1:-3]''>>> pystr[-6:-1]'Pytho'>>> pystr[-6:]'Python'>>> pystr[-6:0]''>>> pystr[-6:-2]'Pyth'2)列表和元组列表和元组有几处重要区别,列表元素用中括号([])包裹,元素的个数及元素的值可以改变,元组元素用小括号(())包裹,不可以更改,尽管它们的内容可以改变,元组可以看成是只读的列表。通过切片运算([] 和[:])可以得到子集。>>> aList= >>> aList>>> aList1>>> aList>>> aList[:3]>>> aList2>>> atuple = ('robots', 77, 92, 'try')>>> atuple('robots', 77, 92, 'try')>>> atuple'try'>>> atuple[:3]('robots', 77, 92)>>> atuple = 55Traceback (most recent call last):File "<pyshell#44>", line 1, in <module>    atuple = 55TypeError: 'tuple' object does not support item assignment3)字典字典是Python中的映射数据类型,工作原理类似Perl中的关联数组或者哈希表,有键-值(key-value)组成,几乎所有类型的Python对象都可以用作键。值可以是任意类型的python对象,字典元素用大括号({})包裹。>>> adict = {'host' : 'earth'}>>> adict['port'] = 80>>> adict{'host': 'earth', 'port': 80}>>> adict.keys()dict_keys(['host', 'port'])>>> dir(adict)['__class__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']>>> adict.values<built-in method values of dict object at 0x014C7270>>>> adict.values()dict_values(['earth', 80])>>> adict.pop()Traceback (most recent call last):File "<pyshell#52>", line 1, in <module>    adict.pop()TypeError: pop expected at least 1 arguments, got 0>>> adict['host']'earth'>>> for key in adict:print key , adictSyntaxError: invalid syntax>>> for key in adict :print(key , adict)host earthport 804)if …elif…else1.print在3.0版本后改变为print()2.raw_input在3.0版本后改变为input()3.python一直让我不解的一个问题,代码块,现在看来没有什么好担心的了,因为它的缩进做到很好。约定有点时候带来的效率更高。不得不喜欢python简洁的语法。>>> if 3<0:print ' ok !'SyntaxError: invalid syntax>>> if 3 < 0SyntaxError: invalid syntax>>> if 3<0:print('ok----0')print('ok----1')elif 3>0:SyntaxError: invalid syntax>>> if 3<0:print('ok----0')print('ok----1')    elif 3>0:    SyntaxError: unindent does not match any outer indentation level>>> if 3<0:print('ok----0')print('ok----1')>>> if 3>0:print('ok----0')print('ok----1')ok----0ok----1>>> if 3<0:print('ok----0')print('ok----1')else print(111)SyntaxError: invalid syntax>>> if 3<0:print('ok----0')print('ok----1')else print(111)SyntaxError: invalid syntax>>> a = input("a:")b = input("b:")if(a > b):    print a, " > ", belse:print a, " < ", ba:1>>> a = input("a:")b = input("b:")if(a > b):    print a, " > ", belse:print a, " < ", ba:333 >>> a = input("a:")a:1>>> b = input("b:")b:3>>> if(a > b):    print a, " > ", belse:print a, " < ", bSyntaxError: invalid syntax>>> if(a > b):    print (a, " > ", b)else:print (a, " < ", b)SyntaxError: expected an indented block>>> if(a > b):    print (a, " > ", b)else:    print (a, " < ", b)    1<3>>> if(a < b):print(a, " < " b)SyntaxError: invalid syntax>>> if(a < b )SyntaxError: invalid syntax>>> if(a < b ):print(a, " < ", b)else:print(a, "> ", b)1<35)WhileWhile和if没什么区别,只是需要注意:要使用缩进来分隔每个子代码块>>> counter = 0>>> while counter < 3:print('loop #%d' % (counter))counter += 1loop #0loop #1loop #26)For>>> import sys>>> for num in ['1','2','3','4']:sys.stdout.write(num)1234>>> foo = 'abc'>>> for i in range(len(foo)):print(foo, '%d' % i)a 0b 1c 2>>> for i , ch in enumerate(foo):print( ch, '%d' % i)a 0b 1c 27)列表解析>>> squared = >>> for i in squared:print(i)0149>>> sqdEvens = >>> for i in sqdEvensSyntaxError: invalid syntax>>> for i in sqdEvens:print iSyntaxError: invalid syntax>>> for i in sqdEvens:print(i)0416368)文件>>> fobj = open('C:\GHOSTERR.TXT','r')>>> for eachLine in fobj:print(eachLine)*********************************Date   : Tue Oct 21 16:26:47 2008Error Number: (440)Message: Ghost cannot run on Windows based systems.Please boot your system into Dos and then run Ghost oralternatively, run Ghost32 (Ghost for Windows).Version: 11.0.0.1502 (Dec4 2006, Build=1502)OS Version: DOS v5.50Command line arguments:Active Switches :       AutoNamePathName            : DumpFile            : DumpPos             : 0FlagImplode         : 0FlagExplode         : 0Operation Details :Total size.........0MB copied..........0MB remaining.......0Percent complete...0%Speed..............0 MB/minTime elapsed.......0:00   Time remaining.....0:00   Program Call StackAbortLogGeneric_AbortmainCall Stack0x0039623c0x0009cbd10x0009c40c0x0009bae70x0009d6ee0x00003cad0x0039f468End Call StackStart heap available: 0Cur   heap available: 15728640Total Memory:         1064480768Allocated   1024 DpmiDjgpp.cpp:56FreeFat details:NTFS details:----------------NTFS Global Flags:---------------- contiguousWrite=0 forceDiskClusterMapping=0inhibitCHKDSK=0 ignoreBadLog=0 ignoreCHKDSKBit=0 enable_cache=0 xfrbuflen=0last_attr_type = 0loadExact = 0 ---------------->>> fobj.close()9)类self , 它是类实例自身的引用当一个实例被创建,__init__()就会被自动调用。不管这个__int__()是自定义的还是默认的。>>> class FooClass(object):"""my very first class : FooClass"""version = 0.1def __init__(self, nm='john doe'):"""constructor"""self.name = nmprint('----- ' ,nm)def showname(self):"""display instance attribute and class name"""print('your name is ', self.name)>>> fool = FooClass()-----john doe>>> fool.showTraceback (most recent call last):File "<pyshell#12>", line 1, in <module>    fool.showAttributeError: 'FooClass' object has no attribute 'show'>>> fool.showname()your name isjohn doe>>> foo2 = FooClass('test')-----test>>> foo2.showname()your name istest10)模块当你创建了一个 Python 源文件,模块的名字就是不带 .py 后缀的文件名。一个模块创建之后, 你可以从另一个模块中使用 import 语句导入这个模块来使用。>>> import sys>>> sys.stdout<idlelib.rpc.RPCProxy object at 0x013F59D0>>>> sys.stdout.write('hello world')hello world>>> sys.platform'win32'>>> sys.version'3.1.2 (r312:79149, Mar 21 2010, 00:41:52) '二1)“多元”赋值>>> x,y,z = 1,2,'a.string'>>> x1>>> y2>>> z'a.string'>>> x = 2>>> x2>>> (x,y,z)=(1,2,3)>>> x1>>> y2>>> z3>>> x=1>>> x=3>>> (x,y,z)(3, 2, 3)>>> a=(1,2,3)>>> a1>>> a=1Traceback (most recent call last):File "<pyshell#22>", line 1, in <module>    a=1TypeError: 'tuple' object does not support item assignment>>>无需中间变量,就可以交换值>>> x,y = 1,2>>> x,y = y, x>>> x2>>> y1>>> x,y(2, 1)>>>
页: [1]
查看完整版本: python快速入门一