%运算符

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

语法介绍

在python中,可以使用%运算符进行灵活多样的格式化处理,通用的语法格式为:

(格式模板) + % +(值组)

格式化处理时,Python使用一个字符串(格式标记模板)作为格式模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。Python用一个tuple将多个值(值组)传递给格式模板,每个值对应一个格式符。

值组:既要格式化的字符串或者元祖,如果有两个及以上的值则需要用小括号括起来,中间用短号隔开。

格式模板:是一组或多组以%标记的字符串,通过格式标记模板可以灵活对值组进行格式化。格式模板的语法格式如下:

%[(name)][flags][width].[precision]typecode

格式模板中的格式标记符即可以简单、快速对数据进行格式化处理,也可以进行复杂的自动化处理和计算。其中只有typecode参数为必选项,其他选项都是可选项。所以typecode参数是最常用的格式化处理操作,每项操作都要用到,所以放到第一个进行介绍:

1)typecode,必选参数,表示获取对应类型的值并格式化到指定位置。格式符为真实值预留位置,并控制显示的格式。格式符可以包含有一个类型码,用以控制显示的类型。主要的格式符有:

l  s,获取传入对象的str方法的返回值,并将其格式化到指定位置。

l  r,获取传入对象的repr方法的返回值,并将其格式化到指定位置。

l  c,整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置。

l  o,将整数转换成八进制表示,并将其格式化到指定位置。

l  x,将整数转换成十六进制表示,并将其格式化到指定位置。

l  d,将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置。

l  e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)。

l  E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)。

l  f, 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)。

l  g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;)。

l  G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)。

l  %,当字符串中存在格式化标志时,需要用 %%表示一个百分号。

这些操作符最常用的是s、f、d,下面结合实例作以介绍:

print('%+s' % 20.53)          # 格式化为字符串

print('%d' % 3.1415926)       # 格式化为的整数

print('%f' % 20.53)           # 格式化为浮点数,默认保留6位

print('%.2f' % 3.1415926)     # 格式化为2位的浮点数

print('%3f' % 20.53)          # 格式化为3位的浮点数

print('%e' % 3.1415926)       # 格式化为科学记数法

输出结果为:

20.53

3

20.530000

3.14

20.530 000

3.141593e+00

2) (name),可选参数,较少使用。通常用在较复杂的字典格式化处理当中。在字典中选择指定的key,输出字典中指定的key对应的值,字典中没有顺序,只有键值对对应即可。如输出字典中手机的品名、销售数量和价格。

phone = '%(品名)s,%(数量)d,%(单价).2f' % {'单价': 3690, '数量': 2, '品名': 'mate20'}

print(phone )

输出结果为:

mate20,2,3690.00

使用字典格式化时,如果使用(name)作为字典中的键值,不用和字典中的元素进行一一对应。在使用(name)进行格式化时,可以灵活加入字符串常量,字符常量起到标记和说明作用,只相当于一个字符串的作用。如。

phone = '%(品名)s 销售数量为 %(数量)d 个,%(品名)s销售单价为%(单价).2f 元' % {'单价': 3690, '数量': 2, '品名': 'mate20'}

print(phone )

mate20 销售数量为 2 个,mate20销售单价为3690.00 元

采用(name)这种格式化可以灵活、方便地进行一些自动化工作。如自动出题、批量处理或验证数据。下面是题库自动出题系统中出题(带答案)的示例:

math = '用7、2、4组成一个最大的三位数是( %(答案1)s);用0、4、5组成一个最小的三位数是( %(答案2)s)。它们的差是(%(答案3)s)。' % {'答案1': 742, '答案2': 405, '答案3': '337'}

print(math)

输出结果为:

题目一:用7、2、4组成一个最大的三位数是( 742);用0、4、5组成一个最小的三位数是( 405)。它们的差是(337)。

3)flags,可选参数,默认为右对齐。可供选择的值有:+,-,' '或0。+ 表示右对齐。- 表示左对齐。' '为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0表示使用0填充。通常与width结合使用,演示示例放到3)Width中进行介绍。

l  +        右对齐;正数前加正号,负数前加负号;

l  -        左对齐;正数前无符号,负数前加负号;

l  空格     右对齐;正数前加空格,负数前加负号;

l  0        右对齐;正数前无符号,负数前加负号;用0填充空白处

4)Width,可选参数,指设置占位的宽度。通常和flags参数配合使用,示例如下:

print('%+6s' % '明日')          # 字符串右对齐,左侧添加空格占位

print('%+6d' % -3.14)            # 格式化为整数,右对齐,左侧添加空格占位

print('%-6s' % '明日')          # 字符串左对齐,右侧添加空格占位

print('%-6d' % -3.14)            # 格式化为整数,左对齐,右侧添加空格占位

print('% 6s' % '明日')          # 字符串右对齐,左侧添加空格占位

print('%06d' % 3.14)            # 格式化为整数,右对齐,左侧添加0占位

输出结果为:

    明日

    -3

明日   

-3   

    明日

000003

5) .precision,可选参数,设置浮点数或字符串的精度。对于浮点数来说,用于设置浮点数的精度,即小数点后保留的位数。对于字符串来说,就是截取字符串的位数。

print('%.2s' % '明日科技')           # 取字符串的前两位

print('%.2f' % 3.1415926)            # 格式化为小数点保存为2位的浮点数

print('%.6f' % 3)                    # 格式化为小数点保存为6位的浮点数

print('%.f' % 3.14)                  # 默认小数点后保留的位数为0

print('%f' % 3.14)                   # 不写小数点,精度默认为6位小数

输出结果为:

明日

3.14

3.000000

3

3.140000

    应用举例

1)对单个字符串进行格式化:

print('%d' % 20.53)       # 格式化为整数

print('%6s' % '明日科技')     # 格式化为6位居右显示的字符串,不足部分用空格填充

print('%f' % 20.53)       # 格式化为浮点数,默认带6位小数

print('%o' % 20)          # 格式化为八进制数

输出结果为:

20

      明日科技

20.530000

24

注意:模板为字符串形式,所以一定要用单引号或双引号,格式化的内容如果是数字,可以不加引号,如果是字符串,一定要加引号。模板中的%是占位符,按其后面的控制字符格式化字符串。单个模板与字符串对应关系如图1、图2所示。

图1  模板与格式化数据

图2   模板与格式化数据

2)对多个字符串或者元祖进行格式化。如果为多个字符串,需要用括号括起来。并且格式化的字符串和格式模板要一一对应。

print('%d,%f' % (20.53,20.53))         # 格式化20.53为整数和浮点数

print('%d,%f,%.2f,%.4f' % (20.53,20.53,20.53,20.53)) # 模板和字符串要对应

# 分别格式化3.1415926为宽度为4,空位用0填充和保留两位小数的浮点

print('%04d,%0.2f' % (3.1415926,3.1415926))   

s1 = "横坐标:%s,纵坐标:%s" % (123, 239)       # 分别输出横坐标和纵坐标

print(s1)

输出结果为:

20,20.530000

20,20.530000,20.53,20.5300

0003,3.14

横坐标:123,纵坐标:239

注意:在模板中,按%后面的控制字符格式化字符串,在%前面可以添加标示字符串,输出时原文输出标示字符串,标示字符串可以对格式化字符串起到标示或说明作用。模板和值组中的元素要一一对应,否则会报错。多个模板与字符串对应关系如图3所示。

图3 格式模板与值组关系

    快用锦囊

锦囊1  整数的格式化输出

整数包含十进制整数、八进制整数、十六进制整数等,对于八进制数和十六进制数,转换时需要使用0o(零欧)或0x(零x)前缀,告诉程序你现在格式化的数的进制(o -oct 八进制; d- dec,十进制;x -hex,十六进制)。在进制转换时,使用%o、%x、%d进行八进制整数、十六进制、十进制整数转换。常用转换示例如下:

print('%o' % 24)          # 格式化十进制数为八进制数

print('%x' % 24)          # 格式化十进制数为十六进制数

print('%o' % 0x3e)        # 格式化十六进制数为八进制数

print('%x' % 0o122)       # 格式化八进制数为十六进制数

print('%d' % 0x3e)        # 格式化十六进制数为十进制数

print('%d' % 0o122)       # 格式化八进制数为十进制数

print('%d' % 3.1415926)   # 格式化浮点数为整数

print('%d' % (7/3))       # 格式化计算结果为整数

a=100/3+5

print('%d' % a)           # 格式化变量为整数

输出结果为:

30

18

76

52

62

82

3

2

38

001

锦囊2  浮点数的格式化输出

在数据格式化时,对浮点数进行格式化是最常用的操作,通常使用“f ”操作符结合精度进行格式化操作。“%f”默认保留小数点后面六位有效数字;“%.3f”保留3位小数位。常用浮点数格式化操作如下:

print('%f' % 3.14)             # 默认保留6位小数

print('%.f' % 3.14)            # 默认保留0位小数

print('%.1f' % 3.14)           # 保留1位小数

print('%.2f' % 3.1415926)      # 保留2位小数

print('%+03.2f' % 3.1415926)   # 右对齐宽度为3保留2位小数

print('%+6.1f' % -3.1415926)    # 宽度为6,右对齐,保留1位小数,不足用空格填充

print('%-6.1f' % -3.1415926)    # 宽度为6,左对齐,保留1位小数,不足用空格填充

print('% 6.1f' % -3.1415926)    # 宽度为6,左对齐,保留1位小数,不足用空格填充

print('%06.1f' % -3.1415926)    # 宽度为6,右对齐,保留1位小数,不足用0填充

输出结果为:

3.140000

3

3.1

3.14

+3.14

  -3.1

-3.1 

  -3.1

-003.1

锦囊3  科学计数法的格式化输出

使用格式符“e”、“E”、“g”和“G”可以将数字格式华为科学记数法。使用科学计数法 %g ,在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法。常用操作如下:

print('%e' % 31415.92653589)    # 科学计数法表示,默认保留6位小数(不包含整数部分)

print('%.3e' % 31415.92653589)  # 科学计数法表示,保留3位小数(不包含整数部分)

print('%g' % 31415.92653589)    # 默认保留6位有效数字(包含整数部分)

print('%.6e' % 31415.92653589)  # 科学计数法表示,默认保留6位小数(不包含整数部分)

print('%.6g' % 31415.92653589)  # 保留6位有效数字(包含整数部分)

print('%.2g' % 31415.92653589)  # 默认保留2位有效数字(包含整数部分),所以才用科学计数法

输出结果为:

3.141593e+04

3.142e+04

31415.9

3.141593e+04

31415.9

3.1e+04

锦囊4  字符串的格式化输出

字符串格式化也是程序中经常要做的工作,通常使用操作符“s ”对字符串进行格式化操作。如%s直接将数据格式化为字符串;%5s,右对齐,字符宽度为5位(如字符实际宽度超过设置的宽度,则按实际字符串输出); %-5s,左对齐,字符宽度为5位;%.4s,截取字符串的前4位字符串输出。常用的字符串操作如下:

print('%s' % 'mingisoft')     # 字符串输出

print('%5s' % 'mingisoft')    # 字符串长度超过5,宽度5不起作用

print('%20s' % 'mingisoft')   # 默认右对齐,宽度为20位,不够默认用空格补位

print('%-20s' % 'mingisoft')  # 默认左对齐,宽度为20位,不够默认用空格补位

print('%.4s' % 'mingisoft')   # 截取字符串前4位

print('%8.4s' % 'mingisoft')  # 截取字符串前4位,右对齐,设置宽度为8

print('%-8.4s' % 'mingisoft') # 截取字符串前4位,左对齐,设置宽度为8

print('www.%s.com' % 'mingisoft') # 灵活加入字符串常量,连接格式化字符串

print('%s.%s/%s' % ('mingisoft','com','book'))  # 组合格式化字符

print('1%.1s 2%.1s 3%.2s' % ('吕布','赵云','典韦'))  # 灵活加入字符串的格式化

输出结果为:

mingisoft

mingisoft

           mingisoft

mingisoft          

ming

    ming

ming   

www.mingisoft.com

mingisoft.com/book

1吕 2赵 3典韦

锦囊5  字典的格式化输出

如果使用字典存储数据,该如何对字典的数据进行格式化处理呢?使用字典时,只要所有给出的键都能在字典中找到,就可以获得任意数量的转换说明符,这种形式只用在要输出的内容为字典时,这时对应关系不必是一一对应的关系,只需格式符中的name与字典中的键值对应即可。简单的词典操作如下:

print("%(pid)s,%(type)s,%(resource)s" % {'pid':1375,'type':'cpu','resource':2048})

print("%(002)s" % {'001':'沃尔玛','002':'中国石油化工集团公司','003':'荷兰皇家壳牌石油公司'})

world500 = {'沃尔玛':514405000,'中国石油化工集团公司':414649900,'荷兰皇家壳牌石油公司':39655600}

print('%(中国石油化工集团公司).2f' % world500)

stud={'Jeff':'1001','Jack':'1002','Joy':'1003','May':'1004'}

print('Jeff的学号:%(Jeff)s,May的学号:%(May)s' % stud)

book = {'name':'零基础学Python','price':79.8,'author':'明日科技'}

temp = '教材:%(name)s,价格:%(price).2f,作者:%(author)s'

print(temp % book)

输出结果为:

1375,cpu,2048

中国石油化工集团公司

414649900.00

Jeff的学号:1001,May的学号:1004

教材:零基础学Python,价格:79.80,作者:明日科技

注意:dict只支持字符串形式的key,对于int类型,可以直接取取字典的值

如果在遍历字典时对字典的数据进行格式化操作,该如何操作呢?使用for循环遍历字典,然后根据需要读取字典中的内容进行格式化即可。但要注意,遍历时是遍历整个字典还是遍历键,如果是遍历字典,按元祖读取每一项值即可;如果是遍历键,通过键读取对应的值。常见的代码操作如下:

phonebook = {'李铁':'135889012','王明':'187222341','胡旭':'1866789011','柳湖':'1778902121'}

for item in phonebook.items():                      # 遍历整个字典

    print( '%-8s %.6s ****'% (item[0],item[1]))    # 对电话后4位用*号代替

for item in phonebook:                               #  遍历键

    print( '%-8s,%.6s ****'% (item, phonebook[item]))

template='%(title)s \n %(homepage)s'

data = {'homepage':'www.mingrisoft.com', 'title':'Welcome to my home page!'}

print(template % data)

结果输出为:

李铁       135889 ****

王明       187222 ****

胡旭       186678 ****

柳湖       177890 ****

李铁      ,135889 ****

王明      ,187222 ****

胡旭      ,186678 ****

柳湖      ,177890 ****

Welcome to my home page!

 www.mingrisoft.com

锦囊6  自动化处理数据

随着大数据时代的到来,我们需要处理的数据越来越多,是否可以同%格式符进行一些自动化处理工作呢?当然是可以的,大道至简,下面针对一些简单的数据,实现数据的自动化处理,代码如下:

print ("Name:%8s Age:%8d Height:%8.2f"%("Jeff",37,1.75))

print ("Name:%-8s Age:%-8d Height:%-8.2f"%("Jeff",37,1.75))

print ("Name:%8s Age:%08d Height:%08.2f"%("Jeff",37,1.75))

stud=(("Jeff",37,1.75),("Jack",22,1.85),("Joy",32,1.69),("may",27,1.68))

print ("Name:%8s Age:%08d Height:%08.2f"%(stud[0][0],stud[0][1],stud[0][2]))

print ('%s %s %s %s' % ("Jeff",37,1.75, ['Facebook', 'CFO']))

print ('%(name)s:%(score)02.1f'%{'score':9.0, 'name':'Jeff'})

结果输出如下:

Name:    Jeff Age:      37 Height:    1.75

Name:Jeff     Age:37       Height:1.75   

Name:    Jeff Age:00000037 Height:00001.75

Name:    Jeff Age:00000037 Height:00001.75

Jeff 37 1.75 ['Facebook', 'CFO']

Jeff:9.0

使用循环语句可以批量格式化数据,从而实现数据的简单自动化处理工作。如下是对学生姓名、年龄和身高的批量输出,代码如下:

syst=[["Jeff",37,1.7523],["Jack",22,1.8534],["Joy",32,1.6908],["may",27,1.6834]]

for item in syst:

        print ("Name:%-8s Age:%-8d Height:%-8.2f"%(item[0],item[1],item[2]))

输出结果为:

Name:Jeff     Age:37       Height:1.75   

Name:Jack     Age:22       Height:1.85   

Name:Joy      Age:32       Height:1.69   

Name:may      Age:27       Height:1.68  

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试突击:ArrayList源码详解

本文已收录于&#xff1a;https://github.com/danmuking/all-in-one&#xff08;持续更新&#xff09; 前言 哈喽&#xff0c;大家好&#xff0c;我是 DanMu。ArrayList 是我们日常开发中不可避免要使用到的一个类&#xff0c;并且在面试过程中也是一个非常高频的知识点&#…

机器人控制系列教程之URDF文件语法介绍

前两期推文&#xff1a;机器人控制系列教程之动力学建模(1)、机器人控制系列教程之动力学建模(2)&#xff0c;我们主要从数学的角度介绍了机器人的动力学建模的方式&#xff0c;随着机器人技术的不断发展&#xff0c;机器人建模成为了机器人系统设计中的一项关键任务。URDF&…

ZSWatch 开源项目介绍

前言 因为时不时逛 GitHub 会发现一些比较不错的开源项目&#xff0c;突发奇想想做一个专题&#xff0c;专门记录开源项目&#xff0c;内容不限于组件、框架以及 DIY 作品&#xff0c;希望能坚持下去&#xff0c;与此同时&#xff0c;也会选取其中的开源项目做专题分析。希望这…

基于Java的汽车租赁系统【附源码】

论文题目 设计&#xff08;论文&#xff09;综述&#xff08;1000字&#xff09; 当今社会&#xff0c;汽车租赁已成为一种受欢迎的出行方式。本文旨在探讨汽车租赁行业的发展趋势、市场规模及其对环境的影响。目前&#xff0c;汽车租赁行业正在经历着快速的发展。随着经济的发…

【独家揭秘】SmartEDA电路仿真软件:电子电路基础学习的神器!

在电子科技日新月异的今天&#xff0c;电路基础学习的重要性愈发凸显。但你是否曾为复杂的电路图、难以理解的电路原理而感到困扰&#xff1f;今天&#xff0c;我要向大家推荐一款学习神器——SmartEDA电路仿真软件&#xff0c;让你轻松踏入电子电路基础学习的殿堂&#xff01;…

22 Shell编程之免交互

目录 22.1 Here Document免交互 22.1.1 Here Document概述 22.1.2 Here Document免交互 22.1.3 Here Document变量设定 22.1.4 Here Document格式控制 22.1.5 Here Document多行注释 22.2 expect免交互 22.2.1 expect概述 22.2.2 expect安装 22.2.3 基本命令介绍 22.2.4expec…

ARM裸机:地址映射

S5PV210的地址映射详解 什么是地址映射&#xff1f; S5PV210属于ARM Cortex-A8架构&#xff0c;32位CPU&#xff0c;CPU设计时就有32根地址线&32根数据线。 32根地址线决定了CPU的地址空间为4G&#xff0c;那么这4G空间如何分配使用&#xff1f;这个问题就是内存映射问题。…

NAND闪存巨头铠侠(Kioxia)计划最迟于10月下旬通过首次公开募股IPO

据路透社于6月26日引用消息来源的报道&#xff0c;在半导体市场条件反弹及财务业绩迅速改善的背景下&#xff0c;NAND闪存巨头铠侠&#xff08;Kioxia&#xff09;正准备尽快提交初步申请&#xff0c;并计划最迟于10月下旬通过首次公开募股&#xff08;IPO&#xff09;在东京证…

9.二维数组的遍历和存储

二维数组的遍历和存储 二维数组的遍历 二维数组a[3][4],可分解为三个一维数组,其数组名分别为: 这三个一维数组都有4个元素,例如:一维数组a[0]的 元素为a[0][0],a[0][1],a[0][2],a[0][3]。所以遍历二维数组无非就是先取出二维数组中得一维数组, 然后再从一维数组中取出每个元…

Eclipse代码编辑器自主配色

1. 打开 Eclipse 的设置 - Java - Editor - Syntax Coloring 2. 自定义各种类型的颜色&#xff0c;例如&#xff1a; 1. Interface 勾选&#xff0c;设置为紫色 2. Class 勾选&#xff0c;设置为淡蓝色 3. Abstract classes 勾选&#xff0c;有自己默认的颜色 …

俯视LLM的灵魂:一文搞懂稀疏自动编码器

实时了解业内动态&#xff0c;论文是最好的桥梁&#xff0c;专栏精选论文重点解读热点论文&#xff0c;围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;…

使用jupyter打开本地ipynb文件的方法

常用方法&#xff1a; 先启动jupyter&#xff0c;然后在打开的页面点击upload&#xff0c;选择想要打开的文件上传然后打开&#xff0c;但是这样其实是先复制了一份到jupyter中&#xff0c;然后打开运行。而我不想复制。 方法二 先打开项目文件所在文件夹&#xff0c;文件夹…

【Dison夏令营 Day 01】如何用Python写一个游戏“石头剪刀布”

欢迎你们踏入这个充满无限可能性的编程世界&#xff01;作为一名热爱Python的开发者&#xff0c;我深感编程的魅力&#xff0c;并希望与你们一同分享这份乐趣和激情。编程&#xff0c;不仅仅是一种技能&#xff0c;更是一种思维方式和解决问题的工具。在Python的世界里&#xf…

如何寻找强势货币和弱势货币?

外汇交易的独特之处在于&#xff0c;它融合了两种货币的价值&#xff0c;其中一种货币的价值通过另一种货币来体现。举例来说&#xff0c;USDJPY外汇反映了美元与日元之间的价值关系&#xff0c;而EURUSD则代表了欧元与美元的价值对比。 通过开仓操作&#xff0c;我们预测一种…

Linux学习第54天:Linux WIFI 驱动:蓝星互联

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 数字化、现代化的今天&#xff0c;随处的WIFI给与了大众极大的方便&#xff0c;也感受到了科技的力量。万物互联、无线互联越来越成为一个不可逆转的趋势。现在比较火…

四川赤橙宏海商务信息咨询有限公司抖音电商领航者

在数字化浪潮席卷全球的今天&#xff0c;电商行业无疑是其中最为活跃、最具潜力的领域之一。而在中国这片广袤的土地上&#xff0c;四川赤橙宏海商务信息咨询有限公司以其独特的视角和前瞻性的战略布局&#xff0c;成为了抖音电商服务领域的佼佼者。今天&#xff0c;就让我们一…

stm32学习笔记---TIM输入捕获(代码部分)输入捕获模式测频率/PWMI模式测频率占空比

目录 第一个代码&#xff1a;输入捕获模式测频率 调整频率 PWM.c PWM.h 输入捕获 IC.c 输入捕获初始化步骤 TIM.h库函数 TIM_ICInit TIM_PWMIConfig TIM_ICStructInit TIM_SelectInputTrigger TIM_SelectOutputTrigger TIM_SelectSlaveMode 单独配置四个通道的分…

聊一聊UDF/UDTF/UDAF是什么,开发要点及如何使用?

背景介绍 UDF来源于Hive&#xff0c;Hive可以允许用户编写自己定义的函数UDF&#xff0c;然后在查询中进行使用。星环Inceptor中的UDF开发规范与Hive相同&#xff0c;目前有3种UDF&#xff1a; A. UDF--以单个数据行为参数&#xff0c;输出单个数据行&#xff1b; UDF&#…

打破生态「孤岛」,Catizen将开启Telegram小游戏2.0时代?

Catizen&#xff1a;引领Telegram x TON生态的顶级猫咪链游 在区块链游戏领域&#xff0c;吸引玩家的首要因素往往是游戏的趣味性。然而&#xff0c;仅靠趣味性无法评估一个项目的长期价值和发展潜力。真正能在区块链游戏市场中取得长久成功的项目&#xff0c;无一例外都依靠扎…

【消息队列】RabbitMQ集群原理与搭建

目录 前言1、集群搭建1.1、安装RabbitMQ1.1.1、前置要求1.1.2、安装Erlang环境①创建yum库配置文件②加入配置内容③更新yum库④正式安装Erlang 1.1.3、安装RabbitMQ1.1.4、RabbitMQ基础配置1.1.5、收尾工作 1.2、克隆VMWare虚拟机1.2.1、目标1.2.2、克隆虚拟机1.2.3、给新机设…