勤学思培训网USEIRY
  • 终于认识如何用python学数据结构

    Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。作为今年来越来越流行的语言,我们该如何学习或者转行学习Python呢,这里小迹为大家介绍如何入门学习Python。以下是小编为你整理的如何用python学数据结构

    如何选择教材,好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。因此我们需要去百度或者知乎等平台看看大家是如何选购学习教材的,寻找最合适自己的学习资料;

    书本的选购完成后,我们需要查看是否有配套的视频教程,可以通过百度或者去某些平台购买实时授课,这样在学习过程中遇到的问题就可以得以解答;


    [图片0]

    书和视频已搞定,那就是环境配置了,PC平台的环境配置以及库的安装,对于能否成功运行Python文件,有着关键的作用。不懂事要学会自己百度搜索相关的资源,一般你遇到的问题许多人也遇到过;

    学习过程结束后,我们需要自己动手做些事情,比如写一些界面程序,学学机器学习,训练一下神经网络等,从中我们会发现我们的许多不足与不懂的地方,通过请教他人,或者加入一些论坛进行学习,参考他人的代码等,这都是很重要的,一定要学会站在巨人的肩膀上思考问题;

    最后,还有非常非常重要的一点就是代码风格,从最开始学习就必须强迫自己模仿最优秀的代码风格。学会标注而不是一味地复制,在编程时懂得思考,同样的问题可以有数十种解法,因此,懂得思考很重要。

    for循环判断的格式

    for循环判断的格式为:

    for i in range(100): print i,

    我们开始加上判断条件输出50到70之间的数

    for i in range(100): if i >49 and i <71: print i,

    当然可以以此类推,比如输出 1-100 内,除开50-70的数,说明一下在range后面的括号内,前面可以自定义起始值

    #求1-100 内的所有奇数for i in range(1,100): if i % 2 == 1: print i,

    我们在1到100内循环查找,如果i无法被2整除就是奇数(视频中这里写错了写成了质数,表示抱歉)

    新增一个知识点获取随机数,我们可以通过导入的方式获取一个随机数

    import randoma = (1,200)b = (1,999)print a,b

    常用的变量

    class Student(object): def __init__(self, name, score): = name =score def Print_score(self): print ('%s:%s' % (, ))bat = Student('hongbin', 100)()print

    我们可以观察一下在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑。但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的name、score属性:小编可是好不容易才“考了”100分 就这样被修改成了59,会不会很不爽!


    [图片1]

    在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问。如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,我们可以测试一下:

    这样就确保了外部代码不能随意修改对象内部的状态,这样通过访问限制的保护,代码更加健壮。

    Python技巧

    交换变量

    x = 6

    y = 5

    x, y = y, x

    print x

    >>> 5

    print y

    >>> 6

    if 语句在行内

    print "Hello" if True else "World"

    >>> Hello

    连接

    下面的最后一种方式在绑定两个不同类型的对象时显得很cool。

    nfc = ["Packers", "49ers"]

    afc = ["Ravens", "Patriots"]

    print nfc + afc

    >>> ['Packers', '49ers', 'Ravens', 'Patriots']

    print str(1) + " world"

    >>> 1 world

    print `1` + " world"

    >>> 1 world

    print 1, "world"

    >>> 1 world

    print nfc, 1

    >>> ['Packers', '49ers'] 1

    数字技巧

    #除后向下取整

    print //2

    >>> 2

    # 2的5次方

    print 2**5

    >> 32

    注意浮点数的除法

    print .3/.1

    >>> 2.

    print .3//.1

    >>>

    数值比较

    这是我见过诸多语言中很少有的如此棒的简便法

    x = 2

    if 3 > x > 1:

    print x

    >>> 2

    if 1 < x > 0:

    print x

    >>> 2

    同时迭代两个列表

    nfc = ["Packers", "49ers"]

    afc = ["Ravens", "Patriots"]

    for teama, teamb in zip(nfc, afc):

    print teama + " vs. " + teamb

    >>> Packers vs. Ravens

    >>> 49ers vs. Patriots

    6

    带索引的列表迭代

    teams = ["Packers", "49ers", "Ravens", "Patriots"]

    for index, team in enumerate(teams):

    print index, team

    >>> 0 Packers

    >>> 1 49ers

    >>> 2 Ravens

    >>> 3 Patriots