多语言展示
当前在线:460今日阅读:23今日分享:25

python 入门篇之疑难点一

Python作为一门新型的编程语言(一般常用作脚本语言)很受欢迎,毕竟相对其他的编程语言(Java ,C#等)来说比较容易入手。那么,在刚开始学习Python时有哪些疑难点需要掌握呢?
方法/步骤
1

list:列表。关于列表主要有创建、访问、添加、删除和替换几方面来看。创建:L=[1,2,3,4,5]访问:分按照索引访问和倒序访问。前者:L[0]=1,L[4]=5;后者:L[-1]=5,L[-5]=1添加:1,直接在最后添加:L.append()例如:L.append(6)则L=[1,2,3,4,5,6]2. L.insert()这个需要输入两个参数(前面参数是索引号,后面是新元素),例如L.insert(0,8)则L=[8,1,2,3,4,5]3,删除:L.pop(),这个是删除最后一个元素;如果删除某个位置的元素,只需要在()中输入索引号即可。如:L.pop(0)则L=[2,3,4,5]4,替换:想替换哪个位置的元素,只需要L[xx]其中xx就是替换的元素的索引号。例如:L[1]='Adam'则L=[1,'Adam',3,4,5]

2

tuple:元组。创建tuple例如:t=(1,2,3)注意:单元素的tuple必须要在元素后面添加“,”,例如:t=(1,)查看tuple只需要t[xx]其中xx表示元素的索引号。tuple是不可变的,一旦创建便不可修改。

3

dict:字典。关于dict主要有创建、访问、添加和遍历几方面来看。创建:dict={'A':1,'B':2,'C':3}前面的为Key后面的问Value,dict就是有Key:Value组合成的。可以通过Key来查找Value。访问:d[key]访问时必须保证key是在dict中的。例如:print d['A']=1;key在不在dict中需要判断(一般都使用dict提供的get方法即可),例如:print d.get('A')返回1;如果输入的key不存在dict中,那么print d['p']返回的是None。注意:dict的特点:无序,key必须是不可变。更新(添加):直接用赋值语句即可。例如:d['M']=4则print d返回的可能是{''C':3,'M':4,A':1,'B':2}因为dict是无序的,所以返回的顺序也是不确定的。遍历:dict={'A':1,'B':2,'C':3使用for即可for key in d:      print key则返回的是对应的key值:ABC

4

set:如果只需要dict中的key,可以使用set。创建:s=set{['A','B','C']}注意:set也是无序的,而且set不能包含重复的元素。访问:直接使用in来判断元素是否在set中即可。遍历:使用for key in s:更新:添加元素使用s.add()例如:s.add('D')删除元素使用s.remove('A')。注意:删除需要先判断元素是否在set中,否则会报错。

5

函数:包括调用、编写函数。调用:python内置很多函数,可以直接调用。可以直接从Python的官方网站查看文档: http://docs.python.org/2/library/functions.html了解更多内置函数。编写:使用def例如:def my_abs(x):       if x >= 0:                    return x         else:                     return -x(格式:def 函数名 ():)注意:1,定义默认参数,默认参数只能定义在必需参数的后面。例如:(world就是默认参数,当没有参数输入时,直接返回:Hello,world.;当有参数输入时,返回Hello,Bart.)def greet(name='world'):       print 'Hello,'+name+'.'greet()greet('Bart')2.定义可变参数:函数参数都是用*args表示。例如:def average(*args):       sum = 0.0       if len(args) == 0:          return sum        for x in args:              sum = sum + x        return sum / len(args)print average()print average(1, 2)print average(1, 2, 2, 3, 4)

6

切片:对list进行切片其实就是取一个list的部分元素。切片格式一般如下:L[0:3]表示取L的前三个元素,不包括L[3];也可简写为L[:3].L[:]表示从头取到尾,实际就是复制了一个L如果想要每隔两个元素取一次,则可以在第三个位置添加间隔数,例如:L[0:10:2]例如:L = range(1, 101)print L[0:10]print L[2::3]print L[4:50:5]其实就是:利用切片,分别取出L中1. 前10个数;2. 3的倍数;3. 不大于50的5的倍数。上面的切片方法对于tuple、字符串等同样适用。倒序切片就是从后往前进行切片。例如:L = range(1, 101)print L[-10:]print L[-46::5]其实就是利用倒序切片对 1 - 100 的数列取出:* 最后10个数;* 最后10个5的倍数。

7

迭代:利用for循环遍历list或者tuple等任何可迭代的对象的过程就是迭代。索引迭代:迭代永远是取出元素本身,而非元素的索引。那么,可以使用enumerate()函数来同时得到索引和元素。 L = ['Adam', 'Lisa', 'Bart', 'Paul']  for index, name in enumerate(L):         print index, '-', name 0 - Adam 1 - Lisa 2 - Bart 3 - Paul实际上,enumerate() 函数把:L=['Adam', 'Lisa', 'Bart', 'Paul']变成了:L=[(0, 'Adam'), (1, 'Lisa'), (2, 'Bart'), (3, 'Paul')]迭代dict的value:有两个方法values()和itervalues()。关于两者的区别如下:1. values() 方法实际上把一个 dict 转换成了包含 value 的list。2. 但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。3. 打印 itervalues() 发现它返回一个 对象,这说明在Python中,for 循环可作用的迭代对象远不止 list,tuple,str,unicode,dict等,任何可迭代对象都可以作用于for循环,而内部如何迭代我们通常并不用关心。例如:对于values()方法d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }print d.values() for v in d.values():         print v返回的是:859559对于intervalues()方法d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } print d.itervalues() for v in d.itervalues():         print v 返回的是:(注释:打印 itervalues() 发现它返回一个 对象)8595 59迭代dict的key和value:如果想同时迭代 key和value,可以使用items()方法。例如:请根据dict:d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }打印出 name : score,最后再打印出平均分 average : score。d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }sum = 0.0for k, v in d.items():      sum = sum + v      print k,':',vprint 'average', ':', sum/len(d)注意:和 values() 有一个 itervalues() 类似, items() 也有一个对应的 iteritems(),iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple,所以, iteritems() 不占用额外的内存。

8

列表生成式:列表生成式可以用一行语句代替通过繁琐的循环方式生成list:[x * x for x in range(1, 11)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]这种写法就是Python特有的列表生成式。利用列表生成式,可以以非常简洁的代码生成 list。

9

复杂表达式:使用for循环的迭代不仅可以迭代普通的list,还可以迭代dict。假设有如下的dict:d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }完全可以通过一个复杂的列表生成式把它变成一个 HTML 表格:tds = ['%s%s' % (name, score) for name, score in d.iteritems()]print '

'print '' print '\n'.join(tds) print '
NameScore
'注:字符串可以通过 % 进行格式化,用指定的参数替代 %s。字符串的join()方法可以把一个 list 拼接成一个字符串。把打印出来的结果保存为一个html文件,就可以在浏览器中看到效果了:     
NameScore
Lisa85
Adam95
Bart59

10

条件过滤:列表生成式的 for 循环后面还可以加上 if 判断。通过判断来进行筛选。例如:如果我们只想要1-10之间偶数的平方,可以加上 if 来筛选:[x * x for x in range(1, 11) if x % 2 == 0] 返回的是:[4, 16, 36, 64, 100]

11

多层表达式:for循环可以嵌套,因此,在列表生成式中,也可以用多层 for 循环来生成列表。对于字符串 'ABC' 和 '123',可以使用两层循环,生成全排列:[m + n for m in 'ABC' for n in '123'] 返回的是:['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']

注意事项

如果认为本经验对您有所帮助,请点击下面【投票】支持小编!如果您想以后随时浏览请点击下面的【收藏】,如果认为本经验能够帮助到您的朋友,请点击页面右边双箭头分享。

推荐信息