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')
     
  • 相关阅读:
    Pycharm创建Django项目示例
    Window下MyCat的下载与安装
    Python中使用xlrd、xlwt、xlutils读写Excel文件
    循环队列(Java实现)
    oracle 创建表
    win10 删除文件卡在99%
    python xx005文件操作
    python xx004集合
    python xx003字典
    不理解
  • 原文地址:https://www.cnblogs.com/MalcolmMeng/p/8442957.html
Copyright © 2011-2022 走看看