精华内容
下载资源
问答
  • python实现九九乘法表

    万次阅读 2021-01-21 21:18:14
    python实现九九乘法表 如何用python实现九九乘法表 直接上代码,利用for循环 for i in range(1, 10): for j in range(1, i+1): print(f'{j}*{i}={i*j}', end='\t') print() 代码这里要注意j的范围要在1到i+1...

    python实现九九乘法表

    如何用python实现九九乘法表
    直接上代码,利用for循环

       for i in range(1, 10):   
          for j in range(1, i+1):    
                print(f'{j}*{i}={i*j}', end='\t')
          print()
    

    代码这里要注意j的范围要在1到i+1之间取 j<=i
    \t横向制表符让表打印的更整齐

    图例

    在这里插入图片描述

    祝大家Python学习顺利!

    展开全文
  • python实现手势识别

    万次阅读 多人点赞 2020-04-14 20:39:59
    python实现手势识别(入门) 使用open-cv实现简单的手势识别 1.获取视频(摄像头) 2.肤色检测 3.轮廓提取 最终实现结果

    python实现手势识别(入门)

    使用open-cv实现简单的手势识别。刚刚接触python不久,看到了很多有意思的项目,尤其时关于计算机视觉的。网上搜到了一些关于手势处理的实验,我在这儿简单的实现一下(PS:和那些大佬比起来真的是差远了,毕竟刚接触不久),主要运用的知识就是opencv,python基本语法,图像处理基础知识。

    最终实现结果:
    在这里插入图片描述

    获取视频(摄像头)

    这部分没啥说的,就是获取摄像头。
    `

    cap = cv2.VideoCapture("C:/Users/lenovo/Videos/1.mp4")#读取文件
    #cap = cv2.VideoCapture(0)#读取摄像头
    while(True):
        ret, frame = cap.read()    key = cv2.waitKey(50) & 0xFF
        if key == ord('q'):
        	break
    cap.release()
    cv2.destroyAllWindows()
    
    

    肤色检测

    这里使用的是椭圆肤色检测模型
    在RGB空间里人脸的肤色受亮度影响相当大,所以肤色点很难从非肤色点中分离出来,也就是说在此空间经过处理后,肤色点是离散的点,中间嵌有很多非肤色,这为肤色区域标定(人脸标定、眼睛等)带来了难题。如果把RGB转为YCrCb空间的话,可以忽略Y(亮度)的影响,因为该空间受亮度影响很小,肤色会产生很好的类聚。这样就把三维的空间将为二维的CrCb,肤色点会形成一定得形状,如:人脸的话会看到一个人脸的区域,手臂的话会看到一条手臂的形态。

    def A(img):
    
        YCrCb = cv2.cvtColor(img, cv2.COLOR_BGR2YCR_CB) #转换至YCrCb空间
        (y,cr,cb) = cv2.split(YCrCb) #拆分出Y,Cr,Cb值
        cr1 = cv2.GaussianBlur(cr, (5,5), 0)
        _, skin = cv2.threshold(cr1, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) #Ostu处理
        res = cv2.bitwise_and(img,img, mask = skin)
        return res
    

    轮廓处理

    轮廓处理的话主要用到两个函数,cv2.findContours和cv2.drawContours,这两个函数的使用使用方法很容易搜到就不说了,这部分主要的问题是提取到的轮廓有很多个,但是我们只需要手的轮廓,所以我们要用sorted函数找到最大的轮廓。

    def B(img):
    
        #binaryimg = cv2.Canny(Laplacian, 50, 200) #二值化,canny检测
        h = cv2.findContours(img,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE) #寻找轮廓
        contour = h[0]
        contour = sorted(contour, key = cv2.contourArea, reverse=True)#已轮廓区域面积进行排序
        #contourmax = contour[0][:, 0, :]#保留区域面积最大的轮廓点坐标
        bg = np.ones(dst.shape, np.uint8) *255#创建白色幕布
        ret = cv2.drawContours(bg,contour[0],-1,(0,0,0),3) #绘制黑色轮廓
        return ret
    

    全部代码

    """ 从视频读取帧保存为图片"""
    import cv2
    import numpy as np
    cap = cv2.VideoCapture("C:/Users/lenovo/Videos/1.mp4")#读取文件
    #cap = cv2.VideoCapture(0)#读取摄像头
    
    #皮肤检测
    def A(img):
    
        YCrCb = cv2.cvtColor(img, cv2.COLOR_BGR2YCR_CB) #转换至YCrCb空间
        (y,cr,cb) = cv2.split(YCrCb) #拆分出Y,Cr,Cb值
        cr1 = cv2.GaussianBlur(cr, (5,5), 0)
        _, skin = cv2.threshold(cr1, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) #Ostu处理
        res = cv2.bitwise_and(img,img, mask = skin)
        return res
    
    def B(img):
    
        #binaryimg = cv2.Canny(Laplacian, 50, 200) #二值化,canny检测
        h = cv2.findContours(img,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE) #寻找轮廓
        contour = h[0]
        contour = sorted(contour, key = cv2.contourArea, reverse=True)#已轮廓区域面积进行排序
        #contourmax = contour[0][:, 0, :]#保留区域面积最大的轮廓点坐标
        bg = np.ones(dst.shape, np.uint8) *255#创建白色幕布
        ret = cv2.drawContours(bg,contour[0],-1,(0,0,0),3) #绘制黑色轮廓
        return ret
    
    
    while(True):
    
        ret, frame = cap.read()
        #下面三行可以根据自己的电脑进行调节
        src = cv2.resize(frame,(400,350), interpolation=cv2.INTER_CUBIC)#窗口大小
        cv2.rectangle(src, (90, 60), (300, 300 ), (0, 255, 0))#框出截取位置
        roi = src[60:300 , 90:300]  # 获取手势框图
    
        res = A(roi)  # 进行肤色检测
        cv2.imshow("0",roi)
    
        gray = cv2.cvtColor(res, cv2.COLOR_BGR2GRAY)
        dst = cv2.Laplacian(gray, cv2.CV_16S, ksize = 3)
        Laplacian = cv2.convertScaleAbs(dst)
    
        contour = B(Laplacian)#轮廓处理
        cv2.imshow("2",contour)
    
        key = cv2.waitKey(50) & 0xFF
        if key == ord('q'):
                break
    cap.release()
    cv2.destroyAllWindows()

    注意:最后送大家一套2020最新企业Pyhon项目实战视频教程,点击此处 进来获取 跟着练习下,希望大家一起进步哦!

    毕竟刚学不久,做出这个东西自己已经很满足了,当然和那些大佬也是没法比的,没有什么东西是速成的,只能一步一个脚印的走。

    展开全文
  • Python实现冒泡排序

    万次阅读 多人点赞 2020-07-06 23:22:30
    Python实现冒泡排序

    Python实现冒泡排序

    一、冒泡排序简介

    冒泡排序(Bubble Sort)是一种常见的排序算法,相对来说比较简单。

    冒泡排序重复地走访需要排序的元素列表,依次比较两个相邻的元素,如果顺序(如从大到小或从小到大)错误就交换它们的位置。重复地进行直到没有相邻的元素需要交换,则元素列表排序完成。

    在冒泡排序中,值最大(或最小)的元素会通过交换慢慢“浮”到元素列表的“顶端”。就像“冒泡”一样,所以被称为冒泡排序。

    二、冒泡排序原理

    冒泡排序的原理如下:

    1. 比较相邻的两个元素。如果第一个比第二个大则交换他们的位置(升序排列,降序则反过来)。

    2. 从列表的开始一直到结尾,依次对每一对相邻元素都进行比较。这样,值最大的元素就通过交换“冒泡”到了列表的结尾,完成第一轮“冒泡”。

    3. 重复上一步,继续从列表开头依次对相邻元素进行比较。已经“冒泡”出来的元素不用比较(一直比较到结尾也可以,已经“冒泡”到后面的元素即使比较也不需要交换,不比较可以减少步骤)。

    4. 继续从列表开始进行比较,每轮比较会有一个元素“冒泡”成功。每轮需要比较的元素个数会递减,一直到只剩一个元素没有“冒泡”时(没有任何一对元素需要比较),则列表排序完成。

    以列表 [10, 17, 50, 7, 30, 24, 27, 45, 15, 5, 36, 21] 进行升序排列为例。列表的初始状态如下图。

    要进行升序排列,则大的元素要依次“冒泡”到列表的结尾。

    1. 从列表的开头,比较相邻的两个元素,如果第一个值比第二个值大则交换。10小于17,不需要交换。

    2. 向列表的结尾方向“走访”,比较第二组相邻的元素(第二个和第三个),如果不是从小到大则交换。17小于50,不需要交换。

    3. 继续“走访”,比较第三组相邻的元素,如果不是从小到大则交换。50大于7,所以需要交换。

    4. 对顺序错误的元素进行位置交换。交换50和7的位置。

    5. 一直“走访”到结尾,第一轮“冒泡”结束后,值最大的元素“冒泡”到了列表的结尾。50“冒泡”到了列表结尾。

    在下一轮“冒泡”中,不需要再将50进行比较,需要比较的元素个数减1。

    6. 从列表开头,重复下一轮“冒泡”,每进行一轮“冒泡”,需要比较的元素都少一个,直到没有元素对需要比较时,整个列表排序完成。排序结果如下图。

    三、Python实现冒泡排序

    # coding=utf-8
    def bubble_sort(array):
        for i in range(1, len(array)):
            for j in range(0, len(array)-i):
                if array[j] > array[j+1]:
                    array[j], array[j+1] = array[j+1], array[j]
        return array
    
    
    if __name__ == '__main__':
        array = [10, 17, 50, 7, 30, 24, 27, 45, 15, 5, 36, 21]
        print(bubble_sort(array))

    运行结果:

    [5, 7, 10, 15, 17, 21, 24, 27, 30, 36, 45, 50]

    代码中,i 表示第几轮“冒泡”,j 表示“走访”到的元素索引。每一轮“冒泡”中,j 需要从列表开头“走访”到 len(array) - i 的位置。

    四、冒泡排序的时间复杂度和稳定性

    1. 时间复杂度

    在没有特殊说明时,一般都是计算最坏时间复杂度。

    在冒泡排序中,最坏的情况是元素列表的初始状态是完全逆序排列的,需要进行 n-1 轮“冒泡”,每一轮“冒泡”需要进行 n-i 次比较和交换操作。i 的平均值为 n/2 ,时间复杂度为 T(n)=n(n-1)/2 ,再乘每次操作的步骤数(常数,不影响大O记法),所以冒泡排序的时间复杂度为 O(n^2) 。

    2. 稳定性

    排序算法的稳定性指,当元素列表中有相等的元素时,相等元素的相对次序是否固定不变,如果相对次序固定不变,则排序算法是稳定的,反之。

    在冒泡排序中,每次比较两个元素,当元素的大小顺序错误时才会进行交换,如果元素列表中有两个相等的元素,它们最终肯定会相邻在一起,但对它们比较时不会进行交换,相对次序是保持不变的。所以冒泡排序是一种稳定的排序算法。

     

     

    展开全文
  • 如何用python实现斐波那契数列的前100个 如何用python实现斐波那契数列的前100个 首先分析题目 实现斐波那契数列的前100个, 斐波那契数列是什么? 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家...

    如何用python实现斐波那契数列的前100个

    如何用python实现斐波那契数列的前100个
    首先分析题目
    实现斐波那契数列的前100个, 斐波那契数列是什么?
    斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:**

    0、1、1、2、3、5、8、13、21、34、……

    *在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N

    0,1,0+1,1+1,1+2,2+3,3+5,5+8,8+13,13+21……

    采用for循环 之后会用到序列解包
    0、1、 1、 2、 3、 5、 8、 13、 21、 34、……
    0,1,0+1,1+1,1+2,2+3,3+5,5+8,8+13,13+21……
    a、b、a+b
    b的值给了a, a+b的值给了b 不断循环一直打印a

    代码实现

    a = 0
    b = 1
    for i in range(100):
    print(a, end=’ ')
    a, b = b, a+b
    在这里插入图片描述

    祝大家Python学习顺利!

    展开全文
  • Python实现模拟按键和改键精灵

    万次阅读 2019-12-09 10:36:34
    Python实现模拟按键和改键精灵,用以控制拳皇97,亲测有效. VK_CODE:虚拟键码 参考: https://www.cnblogs.com/Evan-fanfan/p/11097519.html https://blog.csdn.net/wang8978/article/details/52900048 ...
  • Python实现5毛钱特效

    万次阅读 多人点赞 2020-04-16 17:19:43
    请务必看到最后。Python牛已经不是一天两天的事了,但是我开始也没想到,Python能这么牛。
  • python实现猫捉老鼠小游戏

    万次阅读 多人点赞 2020-12-02 09:55:04
    python实现猫捉老鼠小游戏 首界面 开始游戏界面 然后键盘操作小老鼠上下左右移动,猫自己去追,当猫追上老鼠则游戏结束 这里用时3.2秒,最后将游戏时长与猫和老鼠都显示在主页面上 下面我把猫与老鼠的小图片也放...
  • Python实现二分法搜索

    千次阅读 2020-05-10 20:24:52
    Python实现二分法搜索
  • Python实现softmax函数

    万次阅读 2019-03-03 18:15:49
    Python实现softmax函数: PS:为了避免求exp(x)出现溢出的情况,一般需要减去最大值。 # -*-coding: utf-8 -*- import tensorflow as tf import numpy as np def softmax(x, axis=1): # 计算每行的最大值 ...
  • python实现并行爬虫

    2015-09-07 20:10:18
    指定爬虫depth、线程数, python实现并行爬虫
  • python实现串口收发

    万次阅读 2020-06-30 12:47:04
    python 实现串口通信 1. python 安装在vscode中运行 参考 搭建环境 . 官网下载 安装 python-3.8.0-amd64.exe。 用 python 解释器: 使用Ctrl+Shift+P打开命令板,输入Python: Select Interpreter进行搜索。 提示安装...
  • python实现微信聊天机器人

    万次阅读 多人点赞 2018-05-21 17:59:12
    python实现微信聊天机器人 具备基础:会编程就ok 电脑环境:已经安装过python,在命令行输入python能成功就行 在准备工作做完之后,就可以进入正式开发了,其实这个程序主要是使用了图灵机器人的接口,你...
  • python实现截图功能

    万次阅读 多人点赞 2018-01-18 17:11:27
    python实现截图功能
  • python实现闰年判断

    万次阅读 2018-03-25 09:02:47
    python实现闰年判断
  • 卡尔曼滤波算法及其python实现

    千次阅读 多人点赞 2020-01-07 15:20:54
    卡尔曼滤波算法及其python实现算法原理python实现 算法原理 python实现 # KF algorith demo by Leo # 2020.01.06 # ZJG CAMPUS,ZJU import numpy as np import matplotlib.pyplot as plt ''' 生成带噪声的...
  • 这个一个python实现的车道线识别程序,基于opencv库。压缩包内还附了测试用的图像和视频,适合进行python和图像处理学习。
  • python 实现开方

    万次阅读 多人点赞 2018-11-07 16:32:26
    问题描述:利用python实现开根号操作 1.调用库的方法 import math res = math.sqrt(x) 或者一个python特性的方法 res = x ** 0.5 2.二分法实现 二分法实现要主要x的范围,对应的二分范围也不同: 时,二分...
  • Python实现获取鼠标的实时位置

    万次阅读 多人点赞 2021-06-10 13:51:42
    使用Python的第三方库pyautogui 具体实现 import time import pyautogui as pag try: while True: #获取屏幕分辨率 screenWidth, screenHeight = pag.size() #获取鼠标位置 x, y = pag.position() #打印...
  • Python实现自己的分布式区块链视频培训教程:区块链技术近非常的火,去中心化,挖矿各种概念层出不穷。本课程的目标便是通过Python区块链技术实现自己的区块链,课程中会讲到Python3实现区块链的数据结构,Python3...
  • python实现Lasso回归

    万次阅读 多人点赞 2019-05-07 23:11:41
    Lasso与弹性拟合比较python实现 import numpy as np import matplotlib.pyplot as plt from sklearn.metrics import r2_score #def main(): # 产生一些稀疏数据 np.random.seed(42) n_samples, n_features = 50, ...
  • python 实现屏幕录制

    千次阅读 2019-06-12 10:19:50
    python实现屏幕录制 PIL 即pollow 的安装命令如下: pip install pillow 其中cv2的安装是下面这条命令 pip install opencv-python 代码实现: # coding: utf-8 from PIL import ImageGrab import numpy as np ...
  • SVM算法原理及Python实现

    万次阅读 多人点赞 2018-09-18 19:53:18
    Svm(support Vector Mac)又称为支持向量机,是一种二分类的模型。当然如果进行修改之后也是可以用于多类别问题的分类。支持向量机可以分为线性核非线性两大类。其主要思想为找到空间中的一个更够将所有数据样本划...
  • python实现自动拨号

    千次阅读 2019-03-17 09:00:50
    python实现自动拨号 标签: windows python 缘起 实验室有两台电脑,一台台式,一个笔记本,台式连着宽带,并且上面有一个小服务需要联网,因为实验室的网络不是很稳定,所以可能有时候网络会自动掉线,所以每次都...
  • python 实现CRC(循环冗余)校验

    万次阅读 2020-09-01 19:45:07
    循环冗余校验码(CRC),简称循环码,是一种常用的、具有检错、纠错能力的校验码,在早期的通信中运用广泛。循环冗余校验码常用于外存储器和计算机同步通信的数据校验。奇偶校验码和海明校验码都是采用奇偶检测为...
  • Python实现用手机监控远程控制电脑

    千次阅读 多人点赞 2021-04-26 23:33:15
    今天我们就来用Python实现一个远程监控并控制电脑的小程序。 二、实现原理 听起来远程控制电脑好像很高级的样子,但是实现起来其实非常简单。实现原理如下: 运行程序,让程序不停地读取邮件 用手机给电脑发送邮件 ...
  • Python实现ROS节点

    万次阅读 多人点赞 2017-01-02 18:28:59
    这里讲解如何利用Python实现ROS节点的编写。教程参考官网rospy_tutorials。1. 编写一个简单的发布者和订阅者1创建工作空间建立文件夹hello_rospy,再在该目录下建立子目录src,cd到该src目录,运行如下命令创建工作包...
  • python实现PID

    万次阅读 多人点赞 2017-02-08 16:01:08
    最近捣鼓ROS的时候,发现github上有人用python实现了PID,虽然可能执行效率不高,但是用python写工具的时候还是很方便的。从github上把代码搬下来,简单分析一下 给代码: 在截个都看烦了的公式意思一下吧 #!/usr...
  • Python实现数据库之间的数据迁移

    万次阅读 2018-03-01 11:35:08
    Python实现的数据库跨服务器(跨库)迁移, 每以5000条一查询一提交, 代码中可以自行更改每次查询提交数目. # -*- coding: utf-8 -*- import MySQLdb import time import warnings warnings.filterwarnings("...
  • Python实现SVM使用案例

    万次阅读 多人点赞 2019-06-05 20:14:31
    这篇推文主要介绍Python实现SVM的案例,后期会更新加强版。 这里主要讲的是使用Python的Sklearn包实现SVM样本分类,而不包括SVM的理论推导,我在看SVM的理论的时候看了很多网上的博客,有很多都写的不错,这里...
  • python实现全排列

    千次阅读 2019-07-02 14:24:02
    对于解释,我觉得以下这篇文章不错! https://www.cnblogs.com/zyoung/p/6764371.html python实现: def AllRange(listx, start, end): if start == end: for i in listx: print(i,end = '') print() ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,520,040
精华内容 608,016
关键字:

python实现

python 订阅