Adminxe's Blog | 低调求发展 - 潜心习安全 ,技术永无止境 | 谢谢您对本站的支持,有什么问题或者建议请及时联系:点击这里给我发消息

0x003.Python学习-数据类型、内建函数

Python Adminxe 2161℃ 0评论

Python数据类型

  • 数字
  • 字符串
  • 列表
  • 元组
  • 字典

补充一下:空格也占用一个字符

Python的数字数据类型用于存储数值

Python支持四种不同的数值类型:

  • int(有符号整型)
  • long(长整型[也可以代表八进制和十六进制])
  • float(浮点型)
  • complex(复数)
  1. 整型(int)-通常被称为是整型或整数,是正或负整数,不带小数点。范围(-21474783648-2147583647)
  2. 长整型(long integers)-无限大小的整数,整数最后是一个大写或小写的L。
  3. 浮点型 (floting point real values)-浮点型由整数部分与小数部分组成,浮点型也可以使用科学技术法表示(5e2=2.5×102=250)
  4. 复数(complex numbers)-复数的虚部以字母j或J结尾。如2+3j

#! /usr/bin/python
#! -*- coding:UTF-8 -*-
a = 2
print type(a)
b = 56456L
print type(b)
c = 2.554
print type(c)
d = 2+3j
print type(d) 》》》<type ‘int’>》》》<type ‘long’>》》》<type ‘float’>》》》<type ‘complex’>

一些数值类型的实例:

int long float complex
10 51924361L 0.0 3.14j
100 -0x19323L 15.20 45.j
-786 0122L -21.9 9.322e-36j
080 0xDEFABCECBDAECBFBAEl 32.3e+18 .876j
-0490 535633629843L -90. -.6545+0J
-0x260 -052318172735L -32.54e100 3e+26J
0x69 -4721885298529L 70.2E-12 4.53e-7j
  • 长整型也可以使用小写 l,但是还是建议您使用大写 L,避免与数字 1 混淆。Python使用 L 来显示长整型。
  • Python 还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。

注意:long 类型只存在于 Python2.X 版本中,在 2.2 以后的版本中,int 类型数据溢出后会自动转为long类型。在 Python3.X 版本中 long 类型被移除,使用 int 替代。

 

Python字符串

字符串或串(String)是由数字、字母、下划线组成的一串字符。

一般记为 :

s=”a1a2···an”(n>=0)

它是编程语言中表示文本的数据类型。

python的字串列表有2种取值顺序:

  • 从左到右索引默认0开始的,最大范围是字符串长度少1
  • 从右到左索引默认-1开始的,最大范围是字符串开头

如果你要实现从字符串中获取一段子字符串的话,可以使用 [头下标:尾下标] 来截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。

[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。

比如:

>>> s = ‘abcdef’>>> s[1:5]’bcde’

当使用以冒号分隔的字符串,python 返回一个新的对象,结果包含了以这对偏移标识的连续的内容,左边的开始是包含了下边界。

上面的结果包含了 s[1] 的值 b,而取到的最大范围不包括尾下标,就是 s[5] 的值 f。

加号(+)是字符串连接运算符,星号(*)是重复操作。如下实例:

实例(Python 2.0+)

#!/usr/bin/python

# -*- coding: UTF-8 -*-

str = ‘Hello World!’

print str # 输出完整字符串

print str[0] # 输出字符串中的第一个字符

print str[2:5] # 输出字符串中第三个至第六个之间的字符串

print str[2:] # 输出从第三个字符开始的字符串

print str * 2 # 输出字符串两次

print str + “TEST” # 输出连接的字符串

以上实例输出结果:

Hello World!Hllollo World!Hello World!Hello World!Hello World!TEST

str = ‘hello world’
print str          #hello world 打印字符串
print str[0]       #h 输出第一个字符
print str * 2      #hello worldhello world打印两遍字符串
print str[2:]      #llo world从第三个字符串开始打印
print str[2:5]     #llo从第三个字符串开始打印,打印到第六个之前(即从第三个打印到第六个)
print str[:5]      #hello 打印第六个字符串之前的字符
print str + ‘test’ #hello worldtest 打印字符串和后面字符串的拼接(输出连接的字符串)

 

Python 列表截取可以接收第三个参数,参数作用是截取的步长,以下实例在索引 1 到索引 4 的位置并设置为步长为 2(间隔一个位置)来截取字符串:

print str[1:4:2]  # el

 

Python列表

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。

列表用 [ ] 标识,是 python 最通用的复合数据类型。

列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。

加号 + 是列表连接运算符,星号 * 是重复操作。如下实例:

实例(Python 2.0+)

#!/usr/bin/python

# -*- coding: UTF-8 -*-

list = [ ‘runoob’, 786 , 2.23, ‘john’, 70.2 ]

tinylist = [123, ‘john’]

print list # 输出完整列表

print list[0] # 输出列表的第一个元素

print list[1:3] # 输出第二个至第三个元素

print list[2:] # 输出从第三个开始至列表末尾的所有元素

print tinylist * 2 # 输出列表两次

print list + tinylist # 打印组合的列表

以上实例输出结果:

[‘runoob’, 786, 2.23, ‘john’, 70.2]runoob[786, 2.23][2.23, ‘john’, 70.2][123, ‘john’, 123, ‘john’][‘runoob’, 786, 2.23, ‘john’, 70.2, 123, ‘john’]

Python 元组

元组是另一个数据类型,类似于 List(列表)。

元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。

实例(Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- tuple = ( ‘runoob’, 786 , 2.23, ‘john’, 70.2 ) tinytuple = (123, ‘john’) print tuple # 输出完整元组 print tuple[0] # 输出元组的第一个元素 print tuple[1:3] # 输出第二个至第四个(不包含)的元素 print tuple[2:] # 输出从第三个开始至列表末尾的所有元素 print tinytuple * 2 # 输出元组两次 print tuple + tinytuple # 打印组合的元组

以上实例输出结果:

(‘runoob’, 786, 2.23, ‘john’, 70.2)runoob(786, 2.23)(2.23, ‘john’, 70.2)(123, ‘john’, 123, ‘john’)(‘runoob’, 786, 2.23, ‘john’, 70.2, 123, ‘john’)

以下是元组无效的,因为元组是不允许更新的。而列表是允许更新的:

实例(Python 2.0+)

#!/usr/bin/python

# -*- coding: UTF-8 -*-

tuple = ( ‘runoob’, 786 , 2.23, ‘john’, 70.2 )

list = [ ‘runoob’, 786 , 2.23, ‘john’, 70.2 ]

tuple[2] = 1000 # 元组中是非法应用

list[2] = 1000 # 列表中是合法应用

Python 字典

字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。

两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典用”{ }”标识。字典由索引(key)和它对应的值value组成。

实例(Python 2.0+)

#!/usr/bin/python

# -*- coding: UTF-8 -*-

dict = {}

dict[‘one’] = “This is one”

dict[2] = “This is two”

tinydict = {‘name’: ‘john’,’code’:6734, ‘dept’: ‘sales’}

print dict[‘one’] # 输出键为’one’ 的值

print dict[2] # 输出键为 2 的值

print tinydict # 输出完整的字典

print tinydict.keys() # 输出所有键

print tinydict.values() # 输出所有值

输出结果为:

This is oneThis is two{‘dept’: ‘sales’, ‘code’: 6734, ‘name’: ‘john’}[‘dept’, ‘code’, ‘name’][‘sales’, 6734, ‘john’]

Python数据类型转换

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。

以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。

函数 描述
int(x [,base]) 将x转换为一个整数
long(x [,base] ) 将x转换为一个长整数
float(x) 将x转换到一个浮点数
complex(real [,imag]) 创建一个复数
str(x) 将对象 x 转换为字符串
repr(x) 将对象 x 转换为表达式字符串
eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s) 将序列 s 转换为一个元组
list(s) 将序列 s 转换为一个列表
set(s) 转换为可变集合
dict(d) 创建一个字典。d 必须是一个序列 (key,value)元组。
frozenset(s) 转换为不可变集合
chr(x) 将一个整数转换为一个字符
unichr(x) 将一个整数转换为Unicode字符
ord(x) 将一个字符转换为它的整数值
hex(x) 将一个整数转换为一个十六进制字符串
oct(x) 将一个整数转换为一个八进制字符串

Python数字类型常用函数

数学函数

函数 返回值 ( 描述 )
abs(x) 返回数字的绝对值,如abs(-10) 返回 10
ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5
cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已废弃,使用 (x>y)-(x<y) 替换
exp(x) 返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x) 返回数字的绝对值,如math.fabs(-10) 返回10.0
floor(x) 返回数字的下舍整数,如math.floor(4.9)返回 4
log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x) 返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,…) 返回给定参数的最大值,参数可以为序列。
min(x1, x2,…) 返回给定参数的最小值,参数可以为序列。
modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x, y) x**y 运算后的值。
round(x [,n]) 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
sqrt(x) 返回数字x的平方根。

 

随机数函数

随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。

Python包含以下常用随机数函数:

函数 描述
choice(seq) 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
randrange ([start,] stop [,step]) 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1
random() 随机生成下一个实数,它在[0,1)范围内。
seed([x]) 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。
shuffle(lst) 将序列的所有元素随机排序
uniform(x, y) 随机生成下一个实数,它在[x,y]范围内。

 

三角函数

Python包括以下三角函数:

函数 描述
acos(x) 返回x的反余弦弧度值。
asin(x) 返回x的反正弦弧度值。
atan(x) 返回x的反正切弧度值。
atan2(y, x) 返回给定的 X 及 Y 坐标值的反正切值。
cos(x) 返回x的弧度的余弦值。
hypot(x, y) 返回欧几里德范数 sqrt(x*x + y*y)。
sin(x) 返回的x弧度的正弦值。
tan(x) 返回x弧度的正切值。
degrees(x) 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
radians(x) 将角度转换为弧度

 

数学常量

常量 描述
pi 数学常量 pi(圆周率,一般以π来表示)
e 数学常量 e,e即自然常数(自然常数)。

Python3 字符串

字符串是 Python 中最常用的数据类型。我们可以使用引号(  或  )来创建字符串。

创建字符串很简单,只要为变量分配一个值即可。例如:

var1 = ‘Hello World!’ var2 = “Runoob”

Python 访问字符串中的值

Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。

Python 访问子字符串,可以使用方括号来截取字符串,如下实例:

实例(Python 3.0+)

#!/usr/bin/python3

var1 = ‘Hello World!’

var2 = “Runoob”

print (“var1[0]: “, var1[0])

print (“var2[1:5]: “, var2[1:5])

以上实例执行结果:

var1[0]:  Hvar2[1:5]:  unoo

Python 字符串更新

你可以截取字符串的一部分并与其他字段拼接,如下实例:

实例(Python 3.0+)

#!/usr/bin/python3

var1 = ‘Hello World!’

print (“已更新字符串 : “, var1[:6] + ‘Runoob!’)

以上实例执行结果

已更新字符串 :  Hello Runoob!

Python转义字符

在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符。如下表:

转义字符 描述
\(在行尾时) 续行符
\\ 反斜杠符号
\’ 单引号
\” 双引号
\a 响铃
\b 退格(Backspace)
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy 代表的字符,例如:\o12 代表换行,其中 o 是字母,不是数字 0。
\xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
\other 其它的字符以普通格式输出

Python字符串运算符

下表实例变量a值为字符串 “Hello”,b变量值为 “Python”:

操作符 描述 实例
+ 字符串连接 a + b 输出结果: HelloPython
* 重复输出字符串 a*2 输出结果:HelloHello
[] 通过索引获取字符串中字符 a[1] 输出结果 e
[ : ] 截取字符串中的一部分,遵循左闭右开原则,str[0,2] 是不包含第 3 个字符的。 a[1:4] 输出结果 ell
In 成员运算符 – 如果字符串中包含给定的字符返回 True ‘H’ in a 输出结果 True
not in 成员运算符 – 如果字符串中不包含给定的字符返回 True ‘M’ not in a 输出结果 True
r/R 原始字符串 – 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 print( r’\n’ )print( R’\n’ )
% 格式字符串 请看下一节内容。

实例(Python 3.0+)

#!/usr/bin/python3

a = “Hello”

b = “Python”

print(“a + b 输出结果:”, a + b)

print(“a * 2 输出结果:”, a * 2)

print(“a[1] 输出结果:”, a[1])

print(“a[1:4] 输出结果:”, a[1:4])

if( “H” in a) :

print(“H 在变量 a 中”)

else :

print(“H 不在变量 a 中”)

if( “M” not in a) :

print(“M 不在变量 a 中”)

else :

print(“M 在变量 a 中”)

print (r’\n’)

print (R’\n’)

以上实例输出结果为:

a + b 输出结果: HelloPythona * 2 输出结果: HelloHelloa[1] 输出结果: ea[1:4] 输出结果: ellH 在变量 a 中M 不在变量 a 中\n\n

Python字符串格式化

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。

实例(Python 3.0+)

#!/usr/bin/python3

print (“我叫 %s 今年 %d 岁!” % (‘小明’, 10))

以上实例输出结果:

我叫 小明 今年 10 岁!

python字符串格式化符号:

    符   号 描述
      %c  格式化字符及其ASCII码
      %s  格式化字符串
      %d  格式化整数
      %u  格式化无符号整型
      %o  格式化无符号八进制数
      %x  格式化无符号十六进制数
      %X  格式化无符号十六进制数(大写)
      %f  格式化浮点数字,可指定小数点后的精度
      %e  用科学计数法格式化浮点数
      %E  作用同%e,用科学计数法格式化浮点数
      %g  %f和%e的简写
      %G  %f 和 %E 的简写
      %p  用十六进制数格式化变量的地址

格式化操作符辅助指令:

符号 功能
* 定义宽度或者小数点精度
用做左对齐
+ 在正数前面显示加号( + )
<sp> 在正数前面显示空格
# 在八进制数前面显示零(‘0′),在十六进制前面显示’0x’或者’0X'(取决于用的是’x’还是’X’)
0 显示的数字前面填充’0’而不是默认的空格
% ‘%%’输出一个单一的’%’
(var) 映射变量(字典参数)
m.n. m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

Python三引号

python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。实例如下

实例(Python 3.0+)

#!/usr/bin/python3

para_str = “””这是一个多行字符串的实例

多行字符串可以使用制表符

TAB ( \t )。

也可以使用换行符 [ \n ]。

“””

print (para_str)

以上实例执行结果为:

这是一个多行字符串的实例多行字符串可以使用制表符TAB (    )。也可以使用换行符 [  ]。

三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。

一个典型的用例是,当你需要一块HTML或者SQL时,这时用字符串组合,特殊字符串转义将会非常的繁琐。

errHTML = ”’

<HTML>

<HEAD>

<TITLE> Friends CGI Demo</TITLE>

</HEAD>

<BODY>

<H3>ERROR</H3>

<B>%s</B>

<P>

<FORM>

<INPUT TYPE=button VALUE=Back ONCLICK=”window.history.back()”>

</FORM>

</BODY>

</HTML> ”’ cursor.execute(”’ CREATE TABLE users ( login VARCHAR(8), uid INTEGER, prid INTEGER) ”’)

Unicode 字符串

在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,这样能够表示更多的字符集。使用的语法是在字符串前面加上前缀 u

在Python3中,所有的字符串都是Unicode字符串。

Python 的字符串内建函数

Python 的字符串常用内建函数如下:

方法及描述
1 capitalize()
将字符串的第一个字符转换为大写
2 center(width, fillchar)

 

返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。

3 count(str, beg= 0,end=len(string))

 

返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

4 bytes.decode(encoding=”utf-8″, errors=”strict”)

 

Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。

5 encode(encoding=’UTF-8′,errors=’strict’)

 

以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’

6 endswith(suffix, beg=0, end=len(string))
检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
7 expandtabs(tabsize=8)

 

把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。

8 find(str, beg=0, end=len(string))

 

检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1

9 index(str, beg=0, end=len(string))

 

跟find()方法一样,只不过如果str不在字符串中会报一个异常.

10 isalnum()

 

如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False

11 isalpha()

 

如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False

12 isdigit()

 

如果字符串只包含数字则返回 True 否则返回 False..

13 islower()

 

如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

14 isnumeric()

 

如果字符串中只包含数字字符,则返回 True,否则返回 False

15 isspace()

 

如果字符串中只包含空白,则返回 True,否则返回 False.

16 istitle()

 

如果字符串是标题化的(见 title())则返回 True,否则返回 False

17 isupper()

 

如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

18 join(seq)

 

以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

19 len(string)

 

返回字符串长度

20 ljust(width[, fillchar])

 

返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。

21 lower()

 

转换字符串中所有大写字符为小写.

22 lstrip()

 

截掉字符串左边的空格或指定字符。

23 maketrans()

 

创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

24 max(str)

 

返回字符串 str 中最大的字母。

25 min(str)

 

返回字符串 str 中最小的字母。

26 replace(old, new [, max])

 

把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。

27 rfind(str, beg=0,end=len(string))

 

类似于 find()函数,不过是从右边开始查找.

28 rindex( str, beg=0, end=len(string))

 

类似于 index(),不过是从右边开始.

29 rjust(width,[, fillchar])

 

返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串

30 rstrip()

 

删除字符串字符串末尾的空格.

31 split(str=””, num=string.count(str))

 

num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串

32 splitlines([keepends])

 

按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

33 startswith(substr, beg=0,end=len(string))

 

检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。

34 strip([chars])

 

在字符串上执行 lstrip()和 rstrip()

35 swapcase()

 

将字符串中大写转换为小写,小写转换为大写

36 title()

 

返回”标题化”的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())

37 translate(table, deletechars=””)

 

根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中

38 upper()

 

转换字符串中的小写字母为大写

39 zfill (width)

 

返回长度为 width 的字符串,原字符串右对齐,前面填充0

40 isdecimal()

 

检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。

https://www.runoob.com/python3/python3-number.html

python的字符串内建函数,常用的:

string.upper() 转换string中的小写字母为大写

string.swapcase() 翻转string中的大小写

max(str) 返回字符串str中最大的字母

min(str) 返回字符串str中最小的字母

string.lower()转换string中所有大写字符为小写字符

string.capitalize() 把字符串的第一个字符大写

 

转载请注明:Adminxe's Blog » 0x003.Python学习-数据类型、内建函数

喜欢 (6)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 看了好几篇,感觉亲好厉害呀!以后有时间多多更新呀! 😛
    站点小助手2019-10-11 10:42 回复