还剩3页未读,继续阅读
文本内容:
Python变量和数据类型变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言静态语言在定义变量时必须指定变量类型如果字符串本身包含‘怎么办?比如我们要表示字符串ImOK这时,可以用〃”括起来表示TmOK〃类似的如果字符串包含〃,我们就可以用’’括起来表示*Learn-Python-inimooc如果字符串既包含又包含〃怎么办?这个时候,就需要对字符串的某些特殊字符进行转义,Python字符串用进行转义’Bobsaid0K\.字符串前面加个前缀r表示这是一个raw字符串,里面的字符就不需要转义了例如r\(二~)/\(二~)/表示多行字符串,可以用表示…Line1Line2Line3还可以在多行字符串前面添加r把这个多行字符串也变成一个raw字符串Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u...’表示,比如printu中文’Python中布尔类型and和or运算的一条重要法则短路计算.在计算aandb时,如果a是False则根据与运算法则,整个结果必定为False因此返回a;如果a是True则整个计算结果必定取决与b因此返回b.在计算aorb时、如果a是True则根据或运算法则,整个计算结果必定为True因此返回a;如果a是False则整个计算结果必定取决于b因此返回bList和Tuple类型list用[]把list的所有元素都括起来,就是一个list对象通常,我们会把list赋值给一个变量由于Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据用-1这个索引来表示list最后一个元素,倒数第二个元素用-2以此类推,注意不要越界用list的append方法,把元素追加到list的末尾;用list的insert方法,它接受两个参数,第一个参数是索引号,第二个参数是待添加的新元素用list的pop方法总是删掉list的最后一个元素,并且它还返回这个元素如果要删除的元素a不在末尾,先定位的a的索引,例如a的索引是2则用pop2把a删除对list中的某一个索引赋值,就可以直接用新的元素替换掉原来的元素,list包含的元素个数保持不变tuple是另一种有序的列表,中文翻译为元组tuple和list非常类似,但是,tuple一旦创建完毕,就不能修改了tuple创建tuple和创建list唯一不同之处是用替代了[Python规定,单元素tuple要多加一个逗号“,”,这样就避免了歧义例t=1条件判断和循环Python代码的缩进规则具有相同缩进的代码被视为代码块缩进请严格按照Python的习惯写法4个空格,不要使用Tab更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误在Python交互环境下敲代码,还要特别留意缩进,并且退出缩进需要多敲一行回车if语句后接表达式,然后用表示代码块开始根据条件表达式的值为True或者False分别执行if代码块或者else代码块else后面有个“”避免嵌套结构的if...else我们可以用if...多个elif...else...的结构,一次写完所有的规则elif意思就是elseiffor循环可以依次把list或tuple的每个元素迭代出来fornameinL:代码块#依次取出listL中的每个元素并将元素赋值给nameowhile循环不会迭代list或tuple的元素,而是根据表达式判断循环是否结束while表达式Diet和Set类型Diet花括号{}表示这是一个diet然后按照key:value写出来即可最后一个key value的逗号可以省略Diet的特点diet的第一个特点是查找速度快,第二个特点是存储的key-value序对是没有顺序的,第三个特点是作为key的元素必须不可变diet对象有一个values方法,这个方法把diet转换成一个包含所有value的listSetset持有一系列元素,这一点和list很像,但是set的元素没有重复,而且是无序的,这点和diet的key很像创建set的方式是调用set并传入一个listlist的元素将作为set的元素由于set存储的是一组不重复的无序元素,因此,更新set主要做两件事一是把新的元素添加到set中,二是把已有元素从set中删除添加元素时,用set的add方法,删除set中的元素时,用set的remove方法函数在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回Python的函数返回多值其实就是返回一个tuple函数的默认参数的作用是简化调用,你只需要把必须的参数传进去但是在需要的时候,又可以传入额外的参数来覆盖默认参数值如果想让一个函数能接受任意个参数,我们就可以定义一个可变参数deffn*args:printargsPython解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部,直接把变量args看成一个tuple就好了切片指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片Slice操作符例如L[0:3]指取前3个元素,从索引0开始取,直到索引3为止,但不包括索引3o切片操作还可以指定第三个参数,例会每n个元素取出一个来range函数可以创建一个数列ranged101对于list既然Python支持以-1]取倒数第一个元素,那么它同样支持倒数切片记住倒数第一个元素的索引是-1倒序切片包含起始索引,不包含结束索引迭代Python中,迭代永远是取出元素本身,而非元素的索引使用enumerate函数,我们可以在for循环中同时绑定索引index和元素name实际上,enumerate函数把[AdamLisaBartPaul]变成了类似[0Adam1Lisa2Bart3Paul]因此,迭代的每一个元素实际上是一个tupleo如果我们知道每个tuple元素都包含两个元素,for循环又可以进一步简写为forindexnameinenumerateL:printindex-,namediet对象有一个values方法,这个方法把diet转换成一个包含所有value的list;itervaluesO方法不会转换,它会在迭代过程中依次从diet中取出value所以itervaluesO方法比values方法节省了生成list所需的内存items0方法把diet对象转换成了包含tuple的list我们对这个list进行迭代,可以同时获得key和valueitems也有一个对应的iteritemsiteritems不把diet转换成list而是在迭代过程中不断给出tuple所以,iteritems不占用额外的内存_x*xforxinrange111]这种写法就是Python特有的列表生成式利用列表生成式,可以以非常简洁的代码生成list列表生成式的for循环后面还可以加上if判断[x*xforxinranged11ifx%2==0]有了if条件,只有if判断为True的时候,才把循环的当前元素添加到列表中。