zoukankan      html  css  js  c++  java
  • 【python】 入门

    函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数

    http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386819196283586a37629844456ca7e5a7faa9b94ee8000

    函数

    定义函数

    def my_abs(x):
    if x >= 0:
    return x
    else:
    return -x


    result =my_abs(10)
    print(result)

    高级特性

    切片

    Slice 

    L[:3]

    迭代

    d = {'a': 1, 'b': 2, 'c': 3}
    for key in d:
    print key #注意这个缩进 代替了{ }
     
     
    for ch in 'ABC':
    print ch
     

    for x, y in [(1, 1), (2, 4), (3, 9)]:
    print x, y
     

    函数式编程

    函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数

    Python对函数式编程提供部分支持。由于Python允许使用变量,因此,Python不是纯函数式编程语言。

    def add(x, y, f):
    return f(x) + f(y)
    print add(-5, 6, abs)
     
    结果:11
     
    把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。
     

    map/reduce

     
    如果你读过Google的那篇大名鼎鼎的论文“MapReduce: Simplified Data Processing on Large Clusters”,你就能大概明白map/reduce的概念。
    map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。

    reduce

    把一个函数作用在一个序列[x1, x2, x3...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

    #map
    def f(x):
    return x * x
    print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])

    #reduce
    def fn(x, y):
    print x,y, x * 10 + y
    return x * 10 + y
    print reduce(fn, [1, 3, 5, 7, 9])
    filter()也接收一个函数和一个序列。和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。
     
    def is_odd(n):
    return n % 2 == 1
    print filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])
     
     
     

    IO编程

     

    读文件

    f = open('D:logslog.txt', 'r')
    print f.read()
     
    写文件
    f = open('/Users/michael/test.txt', 'w')
    f.write('Hello, world!')
    f.close()
     
     

    中文注释

     
    # 
    ## -*- coding: utf-8 -*-

    __author_='robin'
    # 中文注释
    print "Hello World!"
     
    必须放在第一行
     
     
     

    TCP编程

     
    #
    ## -*- coding: utf-8 -*-

    # 导入socket库:
    import socket
    # 创建一个socket:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 建立连接:
    s.connect(('m.y**t**.com', 80))

    while True:
    data = s.recv(1024)
  • 相关阅读:
    在awk里引用shell变量(支持正则)
    python模块pyautogui
    一个完整的搜索系统
    信息检索笔记(9)再论文档评分
    信息检索导论学习笔记(8)向量空间模型
    搜索引擎查询扩展
    信息检索笔记(10)Lucene文档评分机制
    Lucene的分析过程
    信息检索导论学习笔记(7)文档评分、词项权重计算
    信息检索导论学习笔记(5)
  • 原文地址:https://www.cnblogs.com/viewcozy/p/4600959.html
Copyright © 2011-2022 走看看