首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python 函数为什么会默认返回 None?

    Python 有一项默认的做法,很多编程语言都没有——它的所有函数都会有一个返回值,不管你有没有写 return 语句。...不管有没有写 return,它们都会执行 return 的逻辑,而且默认的返回值就是 None。 那么,问题来了:Python 的函数为什么能默认返回 None 呢?它是如何实现的呢?...答案就在解释器中,当 CPython 解释器执行到函数的最后一个代码块时,若发现没有返回值,它就会主动地加上一个 Py_None 值返回(出自:compile.c): 也就是说,如果定义的函数没有返回值...,Python 解释器就会(强行地)默认给我们注入一段返回逻辑!...那么,这就会引出新的问题:Python 为什么要求函数都要有返回值呢?为什么它不像某些语言那样,提供一个 void 关键字,支持定义无返回值的空函数呢?

    2.9K40

    python 图像处理类库 PIL (二)

    和上一篇《python 图像处理类库 PIL (一)》一样,本文依然以图片 dog.jpeg 为例,演示 PIL Image 模块的实例接口。 1....pixel at ({},{}) is {}.".format(x, y, pixdata)) pixel at (160,160) is (184, 171, 155). 3.2 getdata() 返回一个图像数据的序列化对象...与 load() 方法不同的是,返回序列化对象行为像一个一维数组。也就说图像的第一行后紧跟着第二行数据。可以通过 list(image.getdata()) 将其转换为普通列表。...3 split(): 分离颜色通道 返回一个 Image 对象元组。元组的元素为各颜色通道分离出来的单通道图片。例如,RGB 图片,返回的就是图片 R,G,B 三个颜色通过对应的灰度图。...R, G, B = image.split() R.show() G.show() B.show() 传送门 上一篇 python 图像处理类库 PIL (一)

    1.8K10

    Python图像处理库-PIL获取图像的数值矩阵

    上一小节已经介绍了如何安装 PIL 以及 Image 类的简单使用,比如从当前路径下加载名为 shiliu.jpg 的图像。...PIL 提供了 PIL.Image.getdata(band = None) 方法,用来获取 Image 对象中的这些数值矩阵。...getdata() 函数返回的是包含图像像素内容的 ImagingCore 对象(类似序列的一个对象),此时的 ImagingCore 对象是一个 PIL 内部的数据类型。...我们可以使用 list(img.getdata()) 将其转换成 Python 的 list 对象。 from PIL import Image img = Image.open(r'....如果只想获取 RGB 图像三个通道中的某一个通道,可以为 getdata() 函数指定 band 参数: 当 band = None 时(默认),返回图像所有通道的像素点; 当 band = 0 时,返回第一个通道的数值

    2.8K40

    Python图像处理库-PIL获取图像的数值矩阵

    图像处理库-初识PIL中已经介绍了如何安装 PIL 以及 Image 类的简单使用,比如从当前路径下加载名为 shiliu.jpg 的图像。...PIL 提供了 PIL.Image.getdata(band = None) 方法,用来获取 Image 对象中的这些数值矩阵。...getdata() 函数返回的是包含图像像素内容的 ImagingCore 对象(类似序列的一个对象),此时的 ImagingCore 对象是一个 PIL 内部的数据类型。...我们可以使用 list(img.getdata()) 将其转换成 Python 的 list 对象。 from PIL import Image img = Image.open(r'....如果只想获取 RGB 图像三个通道中的某一个通道,可以为 getdata() 函数指定 band 参数: 当 band = None 时(默认),返回图像所有通道的像素点; 当 band = 0 时,返回第一个通道的数值

    3K20

    Python PIL图像处理开发极简教程

    问题或建议,请留言; 如果你觉得文章对你有帮助,欢迎转发支持 PIL安装与介绍 PIL是python image libaray缩写,是python语言的图像处理库,很多时候对于一些简单的图像处理,我们经常使用的是其中一个...fork项目pillow,它的github地址如下: https://github.com/python-pillow/Pillow 安装pillow只需要执行如下命令行即可 pip install...Pillow 常见操作代码 导入开发包 from PIL import Image, ImageFilter, ImageOps import numpy as np 读取与显示图像 im = Image.open...获取图像基本属性 print(im.format, im.size, im.mode) 访问像素 print(im.getpixel((256, 256))) 转为灰度图像 new_im = im.convert...('L') new_im.show() 高斯模糊图像 new_im = im.filter(ImageFilter.GaussianBlur()) new_im.show() 保存图像 new_im.save

    1.1K20

    Python PIL图像处理开发极简教程

    转载自:Opencv学堂 PIL安装与介绍 PIL是python image libaray缩写,是python语言的图像处理库,很多时候对于一些简单的图像处理,我们经常使用的是其中一个fork项目pillow...,它的github地址如下: https://github.com/python-pillow/Pillow 安装pillow只需要执行如下命令行即可 pip install Pillow 常见操作代码...导入开发包 from PIL import Image, ImageFilter, ImageOps import numpy as np 读取与显示图像 im = Image.open('D:/images...获取图像基本属性 print(im.format, im.size, im.mode) 访问像素 print(im.getpixel((256, 256))) 转为灰度图像 new_im = im.convert...('L') new_im.show() 高斯模糊图像 new_im = im.filter(ImageFilter.GaussianBlur()) new_im.show() 保存图像 new_im.save

    88120

    Python用Pillow(PIL)进行简单的图像操作

    專 欄 ❈ sunhaiyu,Python中文社区专栏作者 专栏地址: http://www.jianshu.com/u/4943cb2c6ea4 ❈ Python用Pillow(PIL)进行简单的图像操作...im.size返回一个元组,分别是宽和高。show()方法会调用系统默认图像查看软件,打开并显示。im.format可查看图像的格式。...裁剪图像 Image有个crop()方法接收一个矩形区域元组(上面有提到)。返回一个新的Image对象,是裁剪后的图像,对原图没有影响。 ? 看下原图和裁剪后的图像。 ? 原图 ?...旋转和翻转图像 rotate()返回旋转后的新Image对象, 保持原图像不变。逆时针旋转。 ? ? 90 ? 180 ? 270 ? 20 ?...其实,Pillow只是个基础的图像处理库。若不深入图像处理,已经够用。专业人士使用opencv是更好地选择。Python中使用import cv2开始使用吧!

    3.1K100

    Python使用Pillow(PIL)库实现验证码图片

    Pillow的用法参考:Python Pillow(PIL)库的用法介绍 验证码是随机的,使用Python内置的random库来生成随机的颜色和随机的字符。...random的用法参考:Python random模块常用方法的使用 一、验证码图片的效果 # coding=utf-8 import random from PIL import Image, ImageDraw...Draw()函数会将传入的两个参数传给ImageDraw类,实例化一个类对象并返回,以便后面使用类对象draw调用对应的方法执行绘图,使用draw对象将验证码中的字符画在画布上。...三、优化封装 import random from PIL import Image, ImageDraw, ImageFont def gen_verified_image(): width...将代码封装到一个函数中,并将image对象和验证码字符verify作为返回值,方便调用时展示图片和进行验证。

    1.3K20

    Python 递归函数返回值为 None 的解决办法

    在使用 Python 开发的过程中,避免不了会用到递归函数。但递归函数的返回值有时会出现意想不到的情况。 下面来举一个例子: >>> def fun(i): ... ...return i ... >>> r = fun(0) >>> print(r) 比如上面这段代码,乍一看没什么问题,但返回值并不是我们期望的 5,而是 None。...>>> print(r) None 要解决这个问题也简单,就是在执行递归调用的时候,加上 return 语句。 修改之后的代码如下: >>> def fun(i): ... ...---- 推荐阅读: 计算机经典书籍 技术博客: 硬核后端开发技术干货,内容包括 Python、Django、Docker、Go、Redis、ElasticSearch、Kafka、Linux 等。...面试题汇总: 包括 Python、Go、Redis、MySQL、Kafka、数据结构、算法、编程、网络等各种常考题。

    1.5K00
    领券