BRC-20铭文合约NFT铸造交易平台系统开发规则玩法/详细步骤/项目方案/成熟技术/源码功能

简介: 有时候,像定义add2()这类简单的函数,用def来正式地写个命名、计算和返回显得稍有点麻烦,Python支持用lambda对简单的功能定义“行内函数”

代码清单6:使用range生成等差数列

s = 0
if s in range(4):
print(‘s在0, 1, 2, 3中’)
if s not in range(1, 4, 1):
print(‘s不在1, 2, 3中’)

  1. 函数

Python用def来自定义函数,如代码清单7所示。

代码清单7:自定义函数

def add2(x):
return x+2
print(add2(1)) # 输出结果为3

与一般编程语言不同的是,Python的函数返回值可以是各种形式,可以返回列表,甚至返回多个值,如代码清单8所示。

代码清单8:返回列表和返回多个值的自定义函数

def add2(x = 0, y = 0): # 定义函数,同时定义参数的默认值
return [x+2, y+2] # 返回值是一个列表
def add3(x, y):
return x+3, y+3 # 双重返回
a, b = add3(1,2) # 此时a=4,b=5

有时候,像定义add2()这类简单的函数,用def来正式地写个命名、计算和返回显得稍有点麻烦,Python支持用lambda对简单的功能定义“行内函数”,这有点像MATLAB中的“匿名函数”,如代码清单9所示。

代码清单9:使用lambda定义函数

f = lambda x : x + 2 # 定义函数f(x)=x+2
g = lambda x, y: x + y # 定义函数g(x,y)=x+y

03 数据结构

Python有4个内建的数据结构—List(列表)、Tuple(元组)、Dictionary(字典)以及Set(集合),它们可以统称为容器(Container),因为它们实际上是一些“东西”组合而成的结构,而这些“东西”可以是数字、字符、列表或者是它们之间几种的组合。

通俗来说,容器里边是什么都行,而且容器里边的元素类型不要求相同。

  1. 列表/元组

列表和元组都是序列结构,它们本身很相似,但又有一些不同的地方。

从外形上看,列表与元组存在一些区别是。列表是用方括号标记的,如a = [1, 2, 3],而元组是用圆括号标记的,如b = (4, 5, 6),访问列表和元组中的元素的方式都是一样的,如a[0]等于1,b[2]等于6,等等。刚刚已经谈到,容器里边是什么都行,因此,以下定义也是成立的:

c = [1, ‘abc’, [1, 2]]
‘’’
c是一个列表,列表的第一个元素是整型1,第二个是字符串’abc’,第三个是列表[1, 2]
‘’’

从功能上看,列表与元组的区别在于:列表可以被修改,而元组不可以。比如,对于a = [1, 2, 3],那么语句a[0] = 0,就会将列表a修改为[0, 2, 3],而对于元组b = (4, 5, 6),语句b[0] = 1就会报错。

要注意的是,如果已经有了一个列表a,同时想复制a,并命名为变量b,那么b = a是无效的,这时候b仅仅是a的别名(或者说引用),修改b也会修改a。正确的复制方法应该是b = a[:]。

跟列表有关的函数是list,跟元组有关的函数是tuple,它们的用法和功能几乎一样,都是将某个对象转换为列表/元组,如list(‘ab’)的结果是[‘a’, ‘b’],tuple([1, 2])的结果是(1, 2)。一些常见的与列表/元组相关的函数如下所示。

cmp(a, b):比较两个列表/元组的元素
len(a):列表/元组元素个数
max(a):返回列表/元组元素最大值
min(a):返回列表/元组元素最小值
sum(a):将列表/元组中的元素求和
sorted(a):对列表的元素进行升序排序

此外,作为对象来说,列表本身自带了很多实用的方法
(元组不允许修改,因此方法很少),如下所示。

a.append(1):将1添加到列表a末尾
a.count(1):统计列表a中元素1出现的次数
a.extend([1, 2]):将列表[1, 2]的内容追加到列表a的末尾
a.index(1):从列表a中找出第一个1的索引位置
a.insert(2, 1):将1插入列表a中索引为2的位置
a.pop(1):移除列表a中索引为1的元素

最后,不能不提的是“列表解析”这一功能,它能够简化我们对列表内元素逐一进行操作的代码。使用append函数对列表元素进行操作,如代码清单10所示。

代码清单10:使用append函数对列表元素进行操作

a = [1, 2, 3]
b = []
for i in a:
b.append(i + 2)

使用列表解析进行简化,如代码清单11所示。

代码清单11:使用列表解析进行简化

a = [1, 2, 3]
b = [i+2 for i in a]

相关文章
|
Ubuntu Unix Linux
Linux Ubuntu man文档的图文安装教程
Linux Ubuntu man文档的图文安装教程
414 0
|
存储 安全 Java
ConcurrentHashMap底层实现原理
ConcurrentHashMap底层实现原理
468 0
|
Java
Java 解析cad文件数据开源免费jar整理
Java 解析cad文件数据开源免费jar整理
1624 0
Java 解析cad文件数据开源免费jar整理
|
编解码
STM32:PWM驱动舵机(内含:1.接线原理图/实物图+2.代码部分+3.补充知识部分)
STM32:PWM驱动舵机(内含:1.接线原理图/实物图+2.代码部分+3.补充知识部分)
2656 1
STM32:PWM驱动舵机(内含:1.接线原理图/实物图+2.代码部分+3.补充知识部分)
|
JavaScript 前端开发 编译器
10min代码快速熟悉Tsconfig.json配置文件
【8月更文挑战第16天】10min代码快速熟悉Tsconfig.json配置文件
461 2
|
测试技术 Docker 容器
使用Docker构建多环境应用:开发、测试、生产环境
Docker已经成为了现代应用程序开发和部署的核心工具之一。通过使用Docker,开发团队可以轻松地在不同的环境中构建、测试和部署应用程序,从而提高开发速度和应用程序的可移植性。本文将介绍如何使用Docker构建多环境应用,包括开发、测试和生产环境,并提供丰富的示例代码,以帮助大家轻松应对不同环境的挑战。
|
7月前
|
弹性计算 运维 资源调度
使用阿里云操作系统控制台巧解调度抖动
阿里云操作系统控制台是一站式云服务器管理平台,提供性能监控、故障诊断、日志分析、安全管理和资源调度等功能。用户可实时查看CPU、内存等使用情况,快速定位并解决调度抖动等问题。智能诊断工具自动生成优化建议,简化运维流程,降低技术门槛。尽管部分功能仍在优化中,但整体上显著提升了云服务器管理的效率和稳定性。
156 15
使用阿里云操作系统控制台巧解调度抖动
|
SQL 关系型数据库 MySQL
实时计算 Flink版操作报错合集之程序初始化mysql没有完成就报错如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
460 58
|
应用服务中间件 Linux nginx
Docker Compose 安装与使用(常用指令)
Docker Compose 安装与使用(常用指令)
993 0