OpenCV入门1:Python基础编程

目录

环境配置

Python基础语法

import 与 from...import

If ... Else 语句

While 循环

For 循环

集合数据类型

列表

函数

类和对象


环境配置

详情请参考:Pycharm环境配置完整教程

Python基础语法

import 与 from...import

  • 在 python 用 import 或者 from...import 来导入相应的模块。
  • 将整个模块(somemodule)导入,格式为: import somemodule
  • 从某个模块中导入某个函数,格式为: from somemodule import somefunction
  • 从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
  • 将某个模块中的全部函数导入,格式为: from somemodule import *

If ... Else 语句

else 示例
a = 200
b = 33
if b > a:
 print("b is greater than a")
elif a == b:
 print("a and b are equal")
else:
 print("a is greater than b")

简写 If ... Else

a = 2
b = 330
print("A") if a > b else print("B")

While 循环

break 语句
i = 1
while i < 6:
 print(i)
 if i == 3:
  break
i += 1
如果使用 break 语句,即使 while 条件为真,我们也可以停止循环。
continue 语句
i = 0
while i < 6:
 i += 1
 if i == 3:
  continue
 print(i)

如果使用 continue 语句,我们可以停止当前的迭代,并继续下一个。

For 循

range() 函数

for x in range(6):
 print(x)

嵌套循环

adj = ["red", "big", "tasty"]
fruits = ["apple", "banana", "cherry"]

for x in adj:
 for y in fruits:
  print(x, y)

pass 语句

for x in [0, 1, 2]:
 pass

break 语句

fruits = ["apple", "banana", "cherry"]
for x in fruits:
 print(x)
 if x == "banana"
  break

continue 语句

fruits = ["apple", "banana", "cherry"]
for x in fruits:
 print(x)
 if x == "banana"
  continue
 print(x)

集合数据类型

Python 编程语言中有四种集合数据类型:

  • 列表(List) 是一种有序和可更改的集合。允许重复的成员。
  • 元组(Tuple) 是一种有序且不可更改的集合。允许重复的成员。
  • 集合(Set) 是一个无序和无索引的集合。没有重复的成员。
  • 词典(Dictionary)是一个无序,可变和有索引的集合。无重复的成员。

列表

列表是一个有序且可更改的集合。在 Python 中,列表用方括号编写。

thislist = ["apple", "banana", "cherry"]
print(thislist)
print(len(thislist))

索引

列表被截取后返回一个包含所需元素的新列表。列表截取的语法格式如下:

变量[头下标:尾下标]     ,   索引值以 0 为开始值,-1 为从末尾的开始位置。

thislist = ["apple", "banana", "cherry", "kiwi", "melon", "mango"]
print(thislist[-1])
print(thislist[1])
print(thislist[2:])
print(thislist[:4])
print(thislist[-4:-1])
for x in thislist:
 print(x)
if "apple" inthislist:
 print("Yes, 'apple' is in the fruits list")
thislist.append("orange")
print(thislist)
thislist.remove("banana")
thislist.pop()

函数

调用函数

如需调用函数,请使用函数名称后跟括号:
def my_function():
 print("Hello World!")

my_function()

参数

信息可以作为参数传递给函数。

参数在函数名后的括号内指定。您可以根据需要添加任意数量的参数,只需用逗号分隔即可。

下面的例子有一个带参数(fname)的函数。当调用此函数时,我们传递一个名字,在函数内部使用它来打印全名:

def my_function(fname):
 print(fname + " Refsnes")

my_function("Emil")
my_function("Tobias")
my_function("Linus")

返回值

如需使函数返回值,请使用 return 语句:
def my_function(x):
 return 5 * x

print(my_function(3))
print(my_function(5))

pass 语句

函数定义不能为空,但是如果您出于某种原因写了无内容的函数定义,请使用 pass 语句来避免错误。
def my_function():
 pass

lambda 函数

语法:lambda arguments: expression

def my_function(n):
 return lambda a:a*n

类和对象

Python 是一种面向对象的编程语言。Python 中的几乎所有东西都是对象,拥有属性和方法。类(Class)类似对象构造函数,或者是用于创建对象的"蓝图"。

创建类

如需创建类,使用 class 关键字,使用名为 x 的属性,创建一个名为 MyClass 的类:

class Myclass:
 x = 5

创建对象

创建一个名为 p1 的对象,并打印 x 的值:
p = Myclass()
print(p.x)

__init__()函数

上面的例子是最简单形式的类和对象,在实际应用程序中并不真正有用。要理解类的含义,我们必须先了解内置的__init__()函数。所有类都有一个名为 __init__()的函数,它始终在启动类时执行。使用__init__()函数,将值赋给对象属性,或者在创建对象时需要执行的其他操作:创建名为 Person 的类,使用__init__()函数为 name 和 age 赋值:

class Person:
  def   init (self, name, age):
    self.name = name
    self.age = age

p1 = Person("John", 36)
print(p1.name)
print(p1.age)

对象方法

对象也可以包含方法。对象中的方法是属于该对象的函数。让我们在Person 类中创建方法:插入一个打印问候语的函数,并在 p1 对象上执行它:

class Person:
   def __init__(self, name, age):
     self.name = name
     self.age = age

   def my_function(self):
     print(f"Hello my name is {self.name}")

p = Person("John", 36)
p.my_function()

self 参数

self 参数是对类的当前实例的引用,用于访问属于该类的变量。它不必被命名为 self,你可以随意调用它,但它必须是类中任意函数的首个参数。

if  __name__ == '__main__':

它的意思是:当该模块被直接执行时,该条件成立,执行其下的代码;当该模块被导入时,该条件不成立,其下的代码不会被执行。

# test.py
def myfunc():
 print(f"Hello World!")

if __name__ == '__main__':
  myfunc()

当运行 test.py 文件时,可以执行myfunc()函数;当使用import test 导入该模块时,myfunc()函数不会执行(除非手动调用,即from test import myfunc)

参考文档:

Python3 教程 | 菜鸟教程(runoob.com)

OpenCV中文官方文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/610936.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在新页面中跳转到指定 div容器位置

要在打开新的页面时跳转到指定 div&#xff0c;我们需要结合 HTML、JavaScript 和后端技术来实现。以下是两种常见的方法&#xff1a; 使用 URL 参数传递目标 div 信息 HTML (新页面): 在新页面的链接中&#xff0c;添加参数来指示目标 div 的 id&#xff0c;例如&#xff1a;…

致远M3 Session 敏感信息泄露漏洞复现

0x01 产品简介 M3移动办公是致远互联打造的一站式智能工作平台,提供全方位的企业移动业务管理,致力于构建以人为中心的智能化移动应用场景,促进人员工作积极性和创造力,提升企业效率和效能,是为企业量身定制的移动智慧协同平台。 0x02 漏洞概述 致远M3 server多个日志文…

Vue3自定义指令封装-按钮权限控制v-permission、hasPermissions

背景&#xff1a;平常所接触到的系统权限控制&#xff0c;大部分都是菜单、路由级别的控制&#xff0c;但后台管理系统中&#xff0c;很多操作都是与职责和角色挂钩的&#xff0c;同样一个列表&#xff0c;不同人的操作列并不都一样&#xff0c;有些页面存在一些含有重要数据的…

万物生长大会 | 创邻科技再登杭州准独角兽榜单

近日&#xff0c;由民建中央、中国科协指导&#xff0c;民建浙江省委会、中国投资发展促进会联合办的第八届万物生长大会在杭州举办。 在这场创新创业领域一年一度的盛会上&#xff0c;杭州市创业投资协会联合微链共同发布《2024杭州独角兽&准独角兽企业榜单》。榜单显示&…

MathType2024官方版数学公式编辑器功能全面介绍

在数字化学习和科研的浪潮中&#xff0c;数学公式的编辑与展示成为了不可或缺的一部分。MathType&#xff0c;作为一款专业的数学公式编辑器&#xff0c;凭借其强大的功能和便捷的操作&#xff0c;为科研人员、教师、学生等广大用户提供了极大的便利。下面&#xff0c;我们将对…

基于.NET WinForms 数据CURD功能的实现

使用开发工具 VS 2022 C#&#xff0c;数据库MS SQL SERVER 2019 &#xff0c;基于NET WinForms&#xff0c;实现数据记录的创建(Create)、更新(Update)、读取(Read)和删除(Delete)等功能。主要控件包括&#xff1a;DataGridView&#xff0c;SqlDataApater &#xff0c; DataTab…

字符以及字符串函数

字符以及字符串函数 求字符串长度strlen 长度不受限制的字符串函数strcpystrcatstrcmp 长度受限制的字符串函数strncpystrncatstrncmp 字符串查找strstrstrtok 错误信息报告strerror 字符分类函数字符转换函数tolowertoupper 内存操作函数memcpymemmovememcmpmemset 这篇文章注…

软件开发故事 - 我对 CTO 撒谎并挽救了项目

原文&#xff1a;GrumpyOldDev - 2024.04.18 这是几年前的事情了。还记得在我职业生涯的初期&#xff0c;父亲曾告诉我&#xff0c;做好工作往往意味着要在上司的阻碍下做好需要做的事情。他的意思是&#xff0c;你可以让上司成功并感到快乐&#xff1b;也可以让上司做每一个决…

Linux的编译器

程序编译的过程 程序的编译过程是将源代码转换为可执行文件的一系列步骤。这个过程涉及多个阶段&#xff0c;主要包括预处理、编译、汇编和链接。下面详细介绍每个阶段&#xff1a; 1. 预处理&#xff08;Preprocessing&#xff09; 在实际编译之前&#xff0c;源代码文件首…

让云上用户拥有安全感 可信或成云服务器标配安全能力之一!

什么是虚拟主机 虚拟主机就是利用网络空间技术&#xff0c;把一台服务器分成许多的“虚拟”的主机&#xff0c;每一台网络空间都具有独立的域名和IP地址&#xff0c;具有完整的Internet服务器功能。网络空间之间完全独立&#xff0c;在外界看来&#xff0c;每一台网络空间和一台…

gpustat 不能使用问题

突然间就不能用了&#xff0c;可能是环境出了问题&#xff0c;如果GPU没问题的话&#xff0c;那么换个环境重新安装试一下&#xff08;pip install gpustat&#xff09;&#xff0c;目前是换个环境就可以了&#xff08;做个笔记&#xff09;

【神器来袭】快速解放双手,朋友圈自动转发工具,告别繁琐操作!

朋友圈作为一个重要的营销推广渠道&#xff0c;如果能实现自动转发&#xff0c;那对于很多企业或个人来说&#xff0c;是极好的。下面&#xff0c;就给大家分享一个实用且便捷的朋友圈运营工具——个微管理系统&#xff0c;让大家都能快速推广。 1、多账号登录&#xff0c;定时…

企业如何有效做好源代码防泄密工作之九种干货分享

企业为解决源码泄密风险问题&#xff0c;许多单位采取拆除光驱软驱、封掉USB接口、限制上网等方法来进行限制&#xff1b;或者安装一些监控软件&#xff0c;监控员工的日常工作&#xff0c;使其不敢轻举妄动&#xff1b;或者安装各种网络信息安全防护产品&#xff0c;如防火墙&…

“幽灵“再临!新型攻击瞄准英特尔CPU;微软Outlook漏洞被俄利用,网络间谍攻击捷克德国实体 | 安全周报0510

1. 微软Outlook漏洞被俄罗斯APT28利用&#xff0c;捷克德国实体遭网络间谍攻击&#xff01; 捷克和德国于周五透露&#xff0c;他们成为与俄罗斯有关的APT28组织进行的长期网络间谍活动的目标&#xff0c;此举遭到欧洲联盟&#xff08;E.U.&#xff09;、北大西洋公约组织&…

深度技术解读AlphaFold3: 谷歌第三代AI工具精准预测生物大分子四级结构

自然界每一种植物、动物和人类细胞内部&#xff0c;都包含有数以亿计的分子机器。这些分子机器由蛋白质、DNA、RNA及其他配体分子组成。正是这些由生物大分子组成的小型机器&#xff0c;维持着生命的运转和延续。从本质上来讲&#xff0c;生命就是建立在分子层面的结构支撑&…

Qt——信号 和 槽

目录 概述 信号和槽的使用 自定义信号和槽 带参数的信号和槽 概述 在Linux系统中&#xff0c;我们也介绍了信号的产生、信号的检测以及信号的处理机制&#xff0c;它就是系统内部的通知机制&#xff0c;也可以是一种进程间通信的方式。在系统中有很多信号&#xff0c;我们可…

探索 Joomla! CMS:打造个性化网站的利器

上周我们的Hostease客户咨询建站服务。他想要用Joomla建站。Hostease提供免费安装Joomla CMS服务。这可以让客户搭建网站变得更加简单和高效。下面是针对Joomla建站的一些使用心得。 Joomla CMS是一款开放自由的软件&#xff0c;为用户提供了创建和维护网站的自由度。它经过全…

MemoryModule - exp - test

文章目录 MemoryModule - exp - test概述笔记测试环境GetModuleFileName不能正常执行GetModuleFileNameWntdll_LdrGetDllFullName猜测原因用LoadLibrary载入的DLL中功能是正常的 gLog可以正常使用内存载入DLL无法支持的功能的折中方法COM操作正常调用方代码接口代码 接口入参测…

AI图书推荐:使用FastAPI框架构建AI服务

《使用FastAPI构建生成式AI服务》&#xff08;Building Generative AI Services with FastAPI (Early Release) &#xff09;是一本由Ali Parandeh编写的书籍&#xff0c;计划于2025年3月首次出版&#xff0c;该书以实践为导向&#xff0c;指导读者如何开发具备丰富上下文信息的…

LeetCode 513.找树左下角的值

LeetCode 513.找树左下角的值 1、题目 题目链接&#xff1a;513. 找树左下角的值 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1示例 2: 输入: [1,2,3,4,null…
最新文章