iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python学习笔记__12.7章 it
  • 713
分享到

Python学习笔记__12.7章 it

学习笔记Python 2023-01-31 05:01:18 713人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

# 这是学习廖雪峰老师python教程的学习笔记1、概览Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数。1.1、itertools提供的几个“无限”迭代器                0)count()&g

# 这是学习廖雪峰老师python教程学习笔记

1、概览

Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数。

1.1、itertools提供的几个“无限”迭代器

                0)count()

>>> import itertools

>>> natuals = itertools.count(1)

>>> for n in natuals:

...     print(n)

count()会创建一个无限的迭代器,所以上述代码会打印出自然数序列,根本停不下来,只能按Ctrl+C退出。

                1)cycle()

cycle()会把传入的一个序列无限重复下去

>>> import itertools

>>> cs = itertools.cycle('ABC') # 注意字符串也是序列的一种

>>> for c in cs:

...     print(c)

                2)repeat()

repeat()负责把一个元素无限重复下去,不过如果提供第二个参数就可以限定重复次数

>>> ns = itertools.repeat('A', 3)

>>> for n in ns:

...     print(n)

                3)takewhile()

可以通过takewhile()等函数根据条件判断来对无限循环截取出一个有限的序列

>>> natuals = itertools.count(1)

>>> ns = itertools.takewhile(lambda x: x <= 10, natuals)

>>> list(ns)

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

 

1.2、itertools提供的几个迭代器操作函数

                1)chain()

chain()可以把一组迭代对象串联起来,形成一个更大的迭代器

>>> for c in itertools.chain('ABC', 'XYZ'):

...     print(c)

# 迭代效果:'A' 'B' 'C' 'X' 'Y' 'Z'

                2)groupby()

groupby()把迭代器中相邻的重复元素挑出来放在一起:

>>> for key, group in itertools.groupby('AAABBBCCAAA'):

...     print(key, list(group))

...

A ['A', 'A', 'A']

B ['B', 'B', 'B']

C ['C', 'C']

A ['A', 'A', 'A']

挑选规则是通过函数完成的,只要作用于函数的两个元素返回的值相等,这两个元素就被认为是在一组的,而函数返回值作为组的key。

>>> for key, group in itertools.groupby('AaaBBbcCAAa', lambda c: c.upper()): # 忽略大小写

...     print(key, list(group))

...

A ['A', 'a', 'a']

B ['B', 'B', 'b']

C ['c', 'C']

A ['A', 'A', 'a']

注意:itertools模块提供的全部是处理迭代功能的函数,它们的返回值不是list,而是Iterator,只有用for循环迭代的时候才真正计算。

2、例题

计算圆周率可以根据公式:

利用Python提供的itertools模块,我们来计算这个序列的前N项和:

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

import itertools

方法一:

def pi(N): 

    n=itertools.count(1,2)  # 取出奇数序列,从1开始,步长为2

    ns=itertools.takewhile(lambda x:x<=2*N,n) #取出前N个数

    num=list(ns)  #将Iterator 序列化

    sum=0

    for n in num: # 循环,if判断取值

        if n%4==1:

            n=4/n

        else:

            n=-4/n

        sum+=n

    return sum

方法二(网友写):

def pi(N):

    ' 计算pi的值 '

    # step 1: 创建一个奇数序列: 1, 3, 5, 7, 9, ...

    list1 = itertools.count(1, 2)

    # step 2: 取该序列的前N项: 1, 3, 5, 7, 9, ..., 2*N-1.

    list2 = list(itertools.takewhile(lambda x: x < 2 * N, list1))

    # step 3: 添加正负符号并用4除: 4/1, -4/3, 4/5, -4/7, 4/9, ...

    list3 = [4 / (-i) for i in list2[1::2]] + [4 / i for i in list2[::2]]

    # step 4: 求和:

    return sum(list3) #这里求和得用sum()函数,sum函数将list3中的所有值相加


--结束END--

本文标题: Python学习笔记__12.7章 it

本文链接: https://www.lsjlt.com/news/188532.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python学习笔记__12.7章 it
    # 这是学习廖雪峰老师python教程的学习笔记1、概览Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数。1.1、itertools提供的几个“无限”迭代器                0)count()&g...
    99+
    2023-01-31
    学习笔记 Python
  • Python学习笔记__12.3章 ba
    # 这是学习廖雪峰老师python教程的学习笔记Base64是一种用64个字符来表示任意二进制数据的方法。Base64是一种最常见的二进制编码方法,用作二进制到字符串的转换1、Base64的原理        1)准备一个包含64个字符的数...
    99+
    2023-01-31
    学习笔记 Python ba
  • Python学习笔记__12.11章 H
    1、概览HTML本质上是XML的子集,但是HTML的语法没有XML那么严格,所以不能用标准的DOM或SAX来解析HTML。Python提供了HTMLParser来非常方便地解析HTML。而且,HTMLParse类里的函数名是不能改的 fro...
    99+
    2023-01-31
    学习笔记 Python
  • Python学习笔记—第一章—Pytho
    书目:Python(Unix和Linux系统管理指南)学习日期:20120627知识点总结:Python的优势:既简单易学,也可以完成任何复杂任务可读性好(严格的代码缩进格式)支持面向对象编程(OOP)强大的Python社区强大的Pytho...
    99+
    2023-01-31
    学习笔记 Python Pytho
  • Python学习笔记—第二章—IPyth
    书目:Python(Unix和Linux系统管理指南)学习日期:20130807知识点总结:安装IPython:源码安装:tar zxvf ipython-0.13.2.tar.gz python setup.py install...
    99+
    2023-01-31
    第二章 学习笔记 Python
  • python 学习笔记第二章:安装pyt
       记得上次写python的学习笔记是三个月以前了,期间看过,也放下过,这次要坚持下来,一鼓作气,吃下python。    本文内容主要是根据《Python 简明教程》和自己的一些理解去写的,有问题,还请指出。   一、Linux 下安装...
    99+
    2023-01-31
    第二章 学习笔记 python
  • Python学习笔记
    Python介绍 Python是一种解释型、面向对象的语言。 官网:www.python.org Python环境 解释器:www.python.org/downloads 运行方式: 交互模式。在IDLE中运行。 脚本模式。文件的后缀...
    99+
    2023-01-30
    学习笔记 Python
  • Python 学习笔记
    rs=Person.objects.all() all返回的是QuerySet对象,程序并没有真的在数据库中执行SQL语句查询数据,但支持迭代,使用for循环可以获取数据。 print rs.query 会打印出原生sql语句 rs=Pe...
    99+
    2023-01-31
    学习笔记 Python
  • python学习笔记--趣学Python
    由反弹球和球拍构成的游戏。球会在屏幕上飞过来,玩家要用球拍把它弹回去 画布和画弹球 引入模块 #Tkinter -- Python的标准GUI库,Tk 接口,是python 内置的安装包 from tkinter import * i...
    99+
    2023-01-31
    学习笔记 python Python
  • Python Paste 学习笔记
    一、写在前面 这篇文章主要介绍了Python的Paste库的使用,学习过程中主要参考官网文档以及自己的理解,整理成笔记以便后续自己查阅。 如果转载,请保留作者信息。 邮箱地址:jpzhang.ht@gmail.com ...
    99+
    2023-01-31
    学习笔记 Python Paste
  • python OpenCV学习笔记
    目录图像翻转图像轮廓排序图像轮廓排序颜色识别基础颜色识别根据BGR获取HSV阈值编辑器图像翻转 使用Python的一个包,imutils。使用下面的指令可以安装。 pip in...
    99+
    2024-04-02
  • Python学习笔记(1)
    Python开发框架:       a.Python基础;       b.网络编程;       c.WEB框架;       d.设计模式+算法;       e.项目阶段; 开发:   开发语言:       高级语言:Python...
    99+
    2023-01-30
    学习笔记 Python
  • Python学习笔记(二)
    学完了基础中的基础后,我们准备深入基础中的函数、类和对象。 function函数: 正如英文单词描述的,函数就是“功能”的意思,把完成一个功能所需要的代码打包起来放在一个函数下可以方便以后程序的重复调用,也能使整体代码条理清晰。正如前...
    99+
    2023-01-30
    学习笔记 Python
  • python-memcached学习笔记
    介绍:   memcached是免费、开源、高性能、分布式内存对象的缓存系统(键/值字典),旨在通过减轻数据库负载加快动态web应用程序的使用。   数据类型:只用一种字符串类型 1:安装 sudo apt-get install me...
    99+
    2023-01-31
    学习笔记 python memcached
  • python egg学习笔记
    原文链接:http://www.worldhello.net/2010/12/08/2178.html经常接触Python的同学可能会注意到,当需要安装第三方python包时,可能会用到easy_install命令。easy_instal...
    99+
    2023-01-31
    学习笔记 python egg
  • Python学习笔记 --- pprin
    使用 pprint 模块 pprint 模块( pretty printer ) 用于打印 Python 数据结构. 当你在命令行下打印特定数据结构时你会发现它很有用(输出格式比较整齐, 便于阅读). import pprin...
    99+
    2023-01-31
    学习笔记 Python pprin
  • python学习笔记(1
    关于随笔 python随笔只是个人笔记,可能会有遗漏或错误,仅供参考 学习文档地址 https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e5...
    99+
    2023-01-30
    学习笔记 python
  • Python 学习笔记 - socket
    前面学习的例子都是单线程的socket收发;如果有多个用户同时接入,那么除了第一个连入的,后面的都会处于挂起等待的状态,直到当前连接的客户端断开为止。通过使用socketserver,我们可以实现并发的连接。socketserver的使用很...
    99+
    2023-01-31
    学习笔记 Python socket
  • Python 学习笔记 - SQLAlc
    继续上一篇SQLAlchemy的学习之旅。多对多表的创建表Host和表HostUser通过表HostToHostUser关联在一起from sqlalchemy import create_engine from sqlalchemy.ex...
    99+
    2023-01-31
    学习笔记 Python SQLAlc
  • Python学习笔记(2)
    Unicode字符串: GB2312编码为表示中文产生 python内部编码是unicode编码Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填0 就可以以Unicode表示的字...
    99+
    2023-01-31
    学习笔记 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作