勤学思培训网USEIRY
  • 总算明白python的学习经验

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

    list:列表。关于列表主要有创建、访问、添加、删除和替换几方面来看。

    创建:L=[1,2,3,4,5]

    访问:分按照索引访问和倒序访问。前者:L[0]=1,L[4]=5;后者:L[-1]=5,L[-5]=1


    [图片0]

    添加:

    1,直接在最后添加:()

    例如:(6)则L=[1,2,3,4,5,6]

    2. ()这个需要输入两个参数(前面参数是索引号,后面是新元素),例如(0,8)则L=[8,1,2,3,4,5]

    3,删除:

    (),这个是删除最后一个元素;如果删除某个位置的元素,只需要在()中输入索引号即可。如:(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 ('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值:

    A

    B

    C

    变量的应用

    首先看变量(实际是对象引用,只是大家在其他语言的影响下,习惯叫变量)

    如果2个变量的数值相同,那么必然是地址相同,所以a is b是True(正确的)

    解析:a = 123,这时候内存里面没有123这个对象,于是创建了123,当b = 123的时候,内存里面有了123这个对象,于是直接指向123这个对象,这就是Python的特点,变量也是引用对象

    当换成元组之后,结果就不一样了,结果是False(不正确)

    比如:a = (123,456) b = (123,456)

    解析:a是指向一个元组,b是指向一个元组,这些元组分别有自己的内存地址,然后这些元组里面的元素再分别指向其他对象

    但是具体到某一个元素的时候,结果又一样了

    比如,a = (123,456) b = (123,456),比较,a[0] 与 b[0]

    解析:当具体指向某一个元素的时候,实际指向这个元素指向的对象

    注意:当元组只有一个元素的时候,创建的不是元组(列表就不一样了,如图2)

    如:a = (123),那么a的类型的int,不是元组类型

    关于==符号

    python的==是比较值是否相同,不是比较内存是否相同

    比如:a =(123,456) b =(123,456),而a==b则是True,a is b是Flash

    查看内存地址,用id()

    说了这么多,is是比较内存地址,那么人眼比较可以直接打印出内存地址

    比如:a = 123,id(a)则是获取a的内存地址

    输出方法

    输出无外乎就是将想要打印的东西或者结果打印出来,即为输出

    使用print()函数进行输出


    [图片1]

    打印字符串

    可以在括号中加上引号引起来的字符打印输出

    例如输出test,代码实现如下

    print('test')

    当然也可以打印多个字符串

    例如输出'test , ','hello world!'

    可以次用逗号分割,就可以连接在一起输出到屏幕

    print('test , ','hello world!')

    稍作说明:print()会依次打印每个字符串,遇到逗号就会输出一个空格,这样子字符串就连成一片输出来喽。

    还可以打印整数(数值型的)

    例如

    print(250)

    当还可以将数值跟字符一起输出来

    例如:算一个250+250

    print(250+250)

    输出的更漂亮一些,可以这样

    print('205 + 250 = ' , 250+250)

    如何用python爬取数据

    第一步:我们先打开我们的python专用编辑工具pycharm软件,然后点击“新建”,然后在我们的页面输入以下代码:

    import requestsimport re #正则import json #字典def get_mp3_by_songid(songid) api='/v1/restserver/ting?method=.play&format=jsonp&callback=jQuery_&songid=%s&_='%songi response=(api data= data=(r'((.*))',data)[0] data=(data print(data) #获取歌曲的信息(名字,mp3地址) mp3_name=data['songinfo']['title'] #该文件所在位置的递减阶级关系 mp3_url=data['bitrate']['file_link'] print(mp3_name) print(mp3_url) #发送http请求 response=(mp3_url) print() filename='%'%mp3_name with open('E:\music\%'%filename,'wb') as f: #爬取文件保存的位置 ()#根据查询的内容获取siddef get_sids_by_name(query): api='/search' data={ 'key':query } response=(api,params=data html= sids=(r'sid":(d+),',html) #获取歌曲id return sids #将id返回回去sids=get_sids_by_name('大张伟') #调用for sid in sids: #循环爬取 get_mp3_by_songid(sid)

    第二步:我们声明的“ef get_mp3_by_songid(songid):”是写一个函数,能够根据songid下载获取歌曲的mp3地址。

    第三步:声明获取歌曲的下载地址函数之后,我们需要将我们的歌曲路径放在我们的api里面,然后利用requests进行访问。

    第四步:然后我们需要获取歌曲的信息(名字,mp3地址),使用

    mp3_name=data['songinfo']['title'] #该文件所在位置的递减阶级关系mp3_url=data['bitrate']['file_link']print(mp3_name)print(mp3_url)

    第五步:我们继续下一步,发送我们的http请求,括号里面的第二个值的作用是将返回的数据以二进制信息放在content里面

    response=(mp3_url)print()

    第六步:我们的歌曲获取之后,我们需要给予它一个储存的路径,并将其永久化。其中open是指定储存的路径的作用。

    filename='%'%mp3_namewith open('E:\music\%'%filename,'wb') as f: ()

    第七步:根据查询的内容获取我们的sid

    def get_sids_by_name(query): api='/search' data={ 'key':query } response=(api,params=data html= sids=(r'sid":(d+),',html) return sids