zoukankan      html  css  js  c++  java
  • python练习6

    # -*- coding: utf-8 -*-
    import itertools
    from functools import reduce
    minus = [-1]
    def change(num):
        minus[0]*= -1
        return minus[0]*4/num
    def pi(N):
        ' 计算pi的值 '
        # step 1: 创建一个奇数序列: 1, 3, 5, 7, 9, ...
        odd_seq = itertools.count(1,2)
        # step 2: 取该序列的前N项: 1, 3, 5, 7, 9, ..., 2*N-1.
        lmt_seq = itertools.takewhile(lambda x:x<=(2*N-1),odd_seq)
        # step 3: 添加正负符号并用4除: 4/1, -4/3, 4/5, -4/7, 4/9, ...
        seq = map(change,lmt_seq)
        # step 4: 求和:
        return reduce(lambda  x,y: x+y,seq)
    
    
    # 测试:
    print(pi(10))
    print(pi(100))
    print(pi(1000))
    print(pi(10000))
    print(pi(100000))
    assert 3.04 < pi(10) < 3.05
    assert 3.13 < pi(100) < 3.14
    assert 3.140 < pi(1000) < 3.141
    assert 3.1414 < pi(10000) < 3.1415
    print('ok')
    
    #看了下评论的代码,其实我更迷惑
    #为什么简单的json.loads一下就可以创建一个对象
    #返回的json数据应该是python里一个嵌套到底dict类型
    #好像是这样的,json.loads默认返回的类型是dict
    #通过设置参数函数可以定制返回的类型
    #让我手足无措的应该是这个嵌套的dict
    from urllib import request
    import json
    
    
    def fetch_data(url):
        with request.urlopen(url) as f:
            data =f.read()
            return json.loads(data.decode('utf-8'))
    
    
    # 测试
    URL = 'https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20%3D%202151330&format=json'
    data = fetch_data(URL)
    print(data)
    assert data['query']['results']['channel']['location']['city'] == 'Beijing'
    print('ok')
     
  • 相关阅读:
    redis后台启动配置
    Go匿名函数
    Java中的ExceptionInInitializerError异常及解决方法
    数据库备份工具mysqldump重要参数详解
    Nginx初识
    找不到或无法加载主类
    类加载机制与反射(二)
    JavaScript 数据结构与算法之美
    JavaScript 数据结构与算法之美
    JavaScript 数据结构与算法之美
  • 原文地址:https://www.cnblogs.com/MalcolmMeng/p/8442957.html
Copyright © 2011-2022 走看看