• python基础学习


    一、list

      就是python里面的数组,例如L=['abc',100,true] ,python是一门动态语言,数组里面的可以是不同类型的。然后可以按索引访问比如L[1]便是100,L[-1]便是true。

      添加元素可以使用append(),参数为要加入的元素,或者使用insert(1,'paul'),第一个参数为插入的位置索引。

      删除元素为pop(),可以传入参数表示位置索引,不传则删除最后一个。

    二、tuple

      与list很相似,但是不能增删改,有点类似于枚举,语法是这样 T=('haha','hehe',1000)

    三、dict

      字典,有点类似于对象,形式是下面这样的。

    d = {
        'Adam':95,
        'Lisa':85,
        'Bart':59,
        'Paul':75
    }

    访问value的时候可以这样d['Lisa'],当然也可以这样d.get('Lisa')。

    另外这个key必须是不可变的,也就是说可以是字符串、整数、浮点数或者元组,但不能是数组。

    另外这个字典可以用for...in...来进行遍历。

    for key in d:
        print key
        print d[key]

    四、set

    set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。

    set的语法是这样的。s = set(['Adam','Lisa','Bart','Paul'])

    set不可以用索引来访问,这可以用in来判断。例如'adam' in s返回的会是true。

    另外set也可以用for...in...来进行遍历。

    add()方法用于添加一个元素,remove()方法用于删除一个元素。

    五、函数

    abs(),接受一个数字,返回绝对值。

    cmp(x,y),若x<y,返回-1,若x>y,返回1。

    int(),将其他类型数据转换为整数。

    str(),将其他类型数据转化为字符串。

    sum([1,2,3]),接收一个list,返回数组元素之和。

    一个典型的自定义函数如下所示:

    def square_of_sum(L):
        sum = 0
        for i in L:
            sum = sum + i*i
        return sum
    
    print square_of_sum([1, 2, 3, 4, 5])
    print square_of_sum([-5, 0, 5, 15, 25])

    或者这样,py3后面打印的内容需要加();

    import math
    
    def quadratic_equation(a, b, c):
        det = b*b - 4*a*c
        x1 = (-1*b + math.sqrt(det))/(2*a)
        x2 = (-1*b - math.sqrt(det))/(2*a)
        return x1,x2
    
    print (quadratic_equation(2, 3, 0))
    print (quadratic_equation(1, -6, 5))

     嗯,也可以这样,这是一个汉诺塔。

    def move(n, a, b, c):
        if n==1:
            print (a,'-->',c)
            return
        move(n-1,a,c,b)
        print (a,'-->',c)
        move(n-1,b,a,c)
    move(4, 'A', 'B', 'C')

     或者下面这样,带默认参数的。

    def greet(str='world.'):
        print 'hello,'+str
    
    greet()
    greet('bart.')

    或者可以传入不定参数。

    def average(*args):
        if args:
            return sum(args)*1.0/len(args)
        else:
            return 0.0
    
    print average()
    print average(1, 2)
    print average(1, 2, 2, 3, 4)

    六、切片

    range(1,10)表示从1到10的一个list,可以传入第三个参数表示步长。

    同样L[2:10:2] 表示2到10的数字,每隔两个取一个,便是索引为2,4,6,8的元素

    当然也可以这样L[-10:]取出最后的十个元素。

    也可以对字符串进行切片,像下面这样:

    def firstCharUpper(s):
        return s[0].upper() + s[1:]
    
    print firstCharUpper('hello')
    print firstCharUpper('sunday')
    print firstCharUpper('september')

    七、迭代

    像下面这样,用for...in...可以对list,tuple,set,dict进行迭代。

    例如:

    for i in range(1,101):
        if i%7 == 0:
            print i

    可以用enumerate()方法来获得元素的索引

     L = ['Adam', 'Lisa', 'Bart', 'Paul']
     for index, name in enumerate(L):
         print index, '-', name

    嗯,例如这样,zip()方法可以将两个list变成一个,例如:

    >>> zip([10, 20, 30], ['A', 'B', 'C'])
    [(10, 'A'), (20, 'B'), (30, 'C')]

    values()方法可以拿到一个dict里面所有的value,组成一个list,例如下面这样。

    d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }
    
    sum = 0.0
    for v in d.values():
        print v
        sum = sum + v
    print sum/len(d.values())

    items()方法可以同时拿到key和value

    d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59, 'Paul': 74 }
    
    sum = 0.0
    for k, v in d.items():
        sum = sum + v
        print k+':'+str(v)
    print 'average',':',sum/len(d)

    八、生成列表

    嗯,就是这样,循环的时候生成一个列表。

    >>> [x * x for x in range(1, 11)]
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    当然,输出也可以用一个函数

    d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
    def generate_tr(name, score):
        if score<60:
            return '<tr><td>%s</td><td style="color:red">%s</td></tr>' % (name, score)
        else:    
            return '<tr><td>%s</td><td>%s</td></tr>' % (name, score)
    
    tds = [generate_tr(name, score) for name, score in d.iteritems()]
    print '<table border="1">'
    print '<tr><th>Name</th><th>Score</th><tr>'
    print '
    '.join(tds)
    print '</table>'

    也可以加入一些判断条件

    def toUppers(L):
        return [x.upper() for x in L if isinstance(x,str)]
    
    print toUppers(['Hello','world',101])

    然而他也是可以进行for嵌套的

    >>> [m + n for m in 'ABC' for n in '123']
    ['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']

      

  • 相关阅读:
    数据结构化与保存
    使用正则表达式,取得点击次数,函数抽离
    爬取校园新闻首页的新闻
    网络爬虫基础练习
    综合练习:词频统计
    Hadoop综合大作业
    理解MapReduce
    熟悉常用的Hbase操作
    熟悉的HDFS操作
    爬取晨星网对各公司主要职位的分析
  • 原文地址:https://www.cnblogs.com/shicongbuct/p/7020132.html
Copyright © 2020-2023  润新知