JSP 标准标签库(JSTL)——格式化标签
目录
- fmt:formatNumber标签
- fmt:parseNumber 标签
- fmt:formatDate 标签
- fmt:parseDate 标签
- fmt:bundle 标签
- fmt:setLocale 标签
- fmt:setBundle 标签
- fmt:timeZone 标签
- fmt:message 标签
- fmt:requestEncoding 标签
fmt:formatNumber标签
<fmt:formatNumber>标签用于格式化数字,百分比,货币。
语法格式
<fmt:formatNumber
value="<string>"
type="<string>"
pattern="<string>"
currencyCode="<string>"
currencySymbol="<string>"
groupingUsed="<string>"
maxIntegerDigits="<string>"
minIntegerDigits="<string>"
maxFractionDigits="<string>"
minFractionDigits="<string>"
var="<string>"
scope="<string>"/>
属性
<fmt:formatNumber>标签有如下属性:
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
value | 要显示的数字 | 是 | 无 |
type | NUMBER,CURRENCY,或 PERCENT类型 | 否 | Number |
pattern | 指定一个自定义的格式化模式用与输出 | 否 | 无 |
currencyCode | 货币码(当type="currency"时) | 否 | 取决于默认区域 |
currencySymbol | 货币符号 (当 type="currency"时) | 否 | 取决于默认区域 |
groupingUsed | 是否对数字分组 (TRUE 或 FALSE) | 否 | true |
maxIntegerDigits | 整型数最大的位数 | 否 | 无 |
minIntegerDigits | 整型数最小的位数 | 否 | 无 |
maxFractionDigits | 小数点后最大的位数 | 否 | 无 |
minFractionDigits | 小数点后最小的位数 | 否 | 无 |
var | 存储格式化数字的变量 | 否 | Print to page |
scope | var属性的作用域 | 否 | page |
如果type属性为percent或number,那么您就可以使用其它几个格式化数字属性。maxIntegerDigits属性和minIntegerDigits属性允许您指定整数的长度。若实际数字超过了maxIntegerDigits所指定的最大值,则数字将会被截断。
有一些属性允许您指定小数点后的位数。minFractionalDigits属性和maxFractionalDigits属性允许您指定小数点后的位数。若实际的数字超出了所指定的范围,则这个数字会被截断。
数字分组可以用来在每三个数字中插入一个逗号。groupingIsUsed属性用来指定是否使用数字分组。当与minIntegerDigits属性一同使用时,就必须要很小心地来获取预期的结果了。
您或许会使用pattern属性。这个属性可以让您在对数字编码时包含指定的字符。接下来的表格中列出了这些字符。
符号 | 描述 |
---|---|
0 | 代表一位数字 |
E | 使用指数格式 |
# | 代表一位数字,若没有则显示 0,前导 0 和追尾 0 不显示。 |
. | 小数点 |
, | 数字分组分隔符 |
; | 分隔格式 |
- | 使用默认负数前缀 |
% | 百分数 |
? | 千分数 |
¤ | 货币符号,使用实际的货币符号代替 |
X | 指定可以作为前缀或后缀的字符 |
' | 在前缀或后缀中引用特殊字符 |
实例演示
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<title>JSTL fmt:formatNumber 标签</title>
</head>
<body>
<h3>数字格式化:</h3>
<c:set var="balance" value="120000.2309" />
<p>格式化数字 (1): <fmt:formatNumber value="${balance}"
type="currency"/></p>
<p>格式化数字 (2): <fmt:formatNumber type="number"
maxIntegerDigits="3" value="${balance}" /></p>
<p>格式化数字 (3): <fmt:formatNumber type="number"
maxFractionDigits="3" value="${balance}" /></p>
<p>格式化数字 (4): <fmt:formatNumber type="number"
groupingUsed="false" value="${balance}" /></p>
<p>格式化数字 (5): <fmt:formatNumber type="percent"
maxIntegerDigits="3" value="${balance}" /></p>
<p>格式化数字 (6): <fmt:formatNumber type="percent"
minFractionDigits="10" value="${balance}" /></p>
<p>格式化数字 (7): <fmt:formatNumber type="percent"
maxIntegerDigits="3" value="${balance}" /></p>
<p>格式化数字 (8): <fmt:formatNumber type="number"
pattern="###.###E0" value="${balance}" /></p>
<p>美元 :
<fmt:setLocale value="en_US"/>
<fmt:formatNumber value="${balance}" type="currency"/></p>
</body>
</html>
运行结果如下:
数字格式化:
格式化数字 (1): ¥120,000.23
格式化数字 (2): 000.231
格式化数字 (3): 120,000.231
格式化数字 (4): 120000.231
格式化数字 (5): 023%
格式化数字 (6): 12,000,023.0900000000%
格式化数字 (7): 023%
格式化数字 (8): 120E3
美元 : $120,000.23
fmt:parseNumber 标签
<fmt:parseNumber>标签用来解析数字,百分数,货币。
语法格式
<fmt:parseNumber
value="<string>"
type="<string>"
pattern="<string>"
parseLocale="<string>"
integerOnly="<string>"
var="<string>"
scope="<string>"/>
属性
<fmt:parseNumber>标签有如下属性:
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
value | 要解析的数字 | 否 | Body |
type | NUMBER,,CURRENCY,或 PERCENT | 否 | number |
parseLocale | 解析数字时所用的区域 | 否 | 默认区域 |
integerOnly | 是否只解析整型数(true)或浮点数(false) | 否 | false |
pattern | 自定义解析模式 | 否 | 无 |
timeZone | 要显示的日期的时区 | 否 | 默认时区 |
var | 存储待解析数字的变量 | 否 | Print to page |
scope | var属性的作用域 | 否 | page |
pattern属性与<fmt:formatNumber>标签中的pattern有相同的作用。在解析时,pattern属性告诉解析器期望的格式。
实例演示
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<title>JSTL fmt:parseNumber 标签</title>
</head>
<body>
<h3>数字解析:</h3>
<c:set var="balance" value="1250003.350" />
<fmt:parseNumber var="i" type="number" value="${balance}" />
<p>数字解析 (1) : <c:out value="${i}" /></p>
<fmt:parseNumber var="i" integerOnly="true"
type="number" value="${balance}" />
<p>数字解析 (2) : <c:out value="${i}" /></p>
</body>
</html>
运行结果如下:
数字解析:
数字解析 (1) : 1250003.35
数字解析 (2) : 1250003
fmt:formatDate 标签
<fmt:formatDate>标签用于使用不同的方式格式化日期。
语法格式
<fmt:formatDate
value="<string>"
type="<string>"
dateStyle="<string>"
timeStyle="<string>"
pattern="<string>"
timeZone="<string>"
var="<string>"
scope="<string>"/>
属性
<fmt:formatDate>标签有如下属性:
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
value | 要显示的日期 | 是 | 无 |
type | DATE, TIME, 或 BOTH | 否 | date |
dateStyle | FULL, LONG, MEDIUM, SHORT, 或 DEFAULT | 否 | default |
timeStyle | FULL, LONG, MEDIUM, SHORT, 或 DEFAULT | 否 | default |
pattern | 自定义格式模式 | 否 | 无 |
timeZone | 显示日期的时区 | 否 | 默认时区 |
var | 存储格式化日期的变量名 | 否 | 显示在页面 |
scope | 存储格式化日志变量的范围 | 否 | 页面 |
<fmt:formatDate> 标签格式模式
代码 | 描述 | 实例 |
---|---|---|
G |
时代标志 |
AD |
y |
不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。 |
2002 |
M |
月份数字。一位数的月份没有前导零。 |
April & 04 |
d |
月中的某一天。一位数的日期没有前导零。 |
20 |
h |
12 小时制的小时。一位数的小时数没有前导零。 |
12 |
H |
24 小时制的小时。一位数的小时数没有前导零。 |
0 |
m |
分钟。一位数的分钟数没有前导零。 |
45 |
s |
秒。一位数的秒数没有前导零。 |
52 |
S |
毫秒 |
970 |
E |
周几 |
Tuesday |
D |
一年中的第几天 |
180 |
F |
一个月中的第几个周几 |
2 (一个月中的第二个星期三) |
w |
一年中的第几周r |
27 |
W |
一个月中的第几周 |
2 |
a |
a.m./p.m. 指示符 |
PM |
k |
小时(12 小时制的小时) |
24 |
K |
小时(24 小时制的小时) |
0 |
z |
时区 |
中部标准时间 |
' |
转义文本 |
|
'' |
单引号 |
实例演示
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<title>JSTL fmt:dateNumber 标签</title>
</head>
<body>
<h3>日期格式化:</h3>
<c:set var="now" value="<%=new java.util.Date()%>" />
<p>日期格式化 (1): <fmt:formatDate type="time"
value="${now}" /></p>
<p>日期格式化 (2): <fmt:formatDate type="date"
value="${now}" /></p>
<p>日期格式化 (3): <fmt:formatDate type="both"
value="${now}" /></p>
<p>日期格式化 (4): <fmt:formatDate type="both"
dateStyle="short" timeStyle="short"
value="${now}" /></p>
<p>日期格式化 (5): <fmt:formatDate type="both"
dateStyle="medium" timeStyle="medium"
value="${now}" /></p>
<p>日期格式化 (6): <fmt:formatDate type="both"
dateStyle="long" timeStyle="long"
value="${now}" /></p>
<p>日期格式化 (7): <fmt:formatDate pattern="yyyy-MM-dd"
value="${now}" /></p>
</body>
</html>
以上实例运行结果:
日期格式化:
日期格式化 (1): 11:19:43
日期格式化 (2): 2016-6-26
日期格式化 (3): 2016-6-26 11:19:43
日期格式化 (4): 16-6-26 上午11:19
日期格式化 (5): 2016-6-26 11:19:43
日期格式化 (6): 2016年6月26日 上午11时19分43秒
日期格式化 (7): 2016-06-26
fmt:parseDate 标签
<fmt:parseDate> 标签用于解析日期。
语法格式
<fmt:parseDate
value="<string>"
type="<string>"
dateStyle="<string>"
timeStyle="<string>"
pattern="<string>"
timeZone="<string>"
parseLocale="<string>"
var="<string>"
scope="<string>"/>
属性
<fmt:parseDate>标签有如下属性:
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
value | 要显示的日期 | 是 | 无 |
type | DATE, TIME, 或 BOTH | 否 | date |
dateStyle | FULL, LONG, MEDIUM, SHORT, 或 DEFAULT | 否 | default |
timeStyle | FULL, LONG, MEDIUM, SHORT, 或 DEFAULT | 否 | default |
pattern | 自定义格式模式 | 否 | 无 |
timeZone | 显示日期的时区 | 否 | 默认时区 |
var | 存储格式化日期的变量名 | 否 | 显示在页面 |
scope | 存储格式化日志变量的范围 | 否 | 页面 |
属性设置我们需要的输出的时间格式。
实例演示
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<title>JSTL fmt:parseDate 标签</title>
</head>
<body>
<h3>日期解析:</h3>
<c:set var="now" value="20-10-2015" />
<fmt:parseDate value="${now}" var="parsedEmpDate"
pattern="dd-MM-yyyy" />
<p>解析后的日期为: <c:out value="${parsedEmpDate}" /></p>
</body>
</html>
以上实例运行结果:
日期解析:
解析后的日期为: Tue Oct 20 00:00:00 CST 2015
fmt:bundle 标签
<fmt:bundle>标签将指定的资源束对出现在<fmt:bundle>标签中的<fmt:message>标签可用。这可以使您省去为每个<fmt:message>标签指定资源束的很多步骤。
举例来说,下面的两个<fmt:bundle>块将产生同样的输出:
<fmt:bundle basename="com.tutorialspoint.Example">
<fmt:message key="count.one"/>
</fmt:bundle>
<fmt:bundle basename="com.tutorialspoint.Example" prefix="count.">
<fmt:message key="title"/>
</fmt:bundle>
语法格式
<fmt:bundle baseName="<string>" prefix="<string>"/>
属性
<fmt:bundle>标签有如下属性:
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
basename | 指定被载入的资源束的基础名称 | 是 | 无 |
prefix | 指定<fmt:message>标签key属性的前缀 | 否 | 无 |
程序示例
资源束包含区域特定对象。资源束包含键值对。当您的程序需要区域特定资源时,可以将所有的关键词对所有的locale共享,但是也可以为locale指定转换后的值。资源束可以帮助提供指定给locale的内容。
一个Java资源束文件包含一系列的键值对。我们所关注的方法涉及到创建继承自java.util.ListResourceBundle 类的已编译Java类。您必须编译这些类然后放在您的Web应用程序的CLASSPATH中。
让我们来定义一个默认的资源束:
package com.runoob;
import java.util.ListResourceBundle;
public class Example_En extends ListResourceBundle {
public Object[][] getContents() {
return contents;
}
static final Object[][] contents = {
{"count.one", "One"},
{"count.two", "Two"},
{"count.three", "Three"},
};
}
编译以上文件为Examble.class,然后放在Web应用程序的CLASSPATH能找到的地方。现在可以使用JSTL来显示这三个数字了,就像这样:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
<title>JSTL fmt:bundle 标签</title>
</head>
<body>
<fmt:bundle basename="com.runoob.Example" prefix="count.">
<fmt:message key="one"/><br/>
<fmt:message key="two"/><br/>
<fmt:message key="three"/><br/>
</fmt:bundle>
</body>
</html>
运行结果如下:
One
Two
Three
将其改为无prefix属性:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
<title>JSTL fmt:bundle 标签</title>
</head>
<body>
<fmt:bundle basename="com.runoob.Example">
<fmt:message key="count.one"/><br/>
<fmt:message key="count.two"/><br/>
<fmt:message key="count.three"/><br/>
</fmt:bundle>
</body>
</html>
运行结果如下:
One
Two
Three
fmt:setLocale 标签
<fmt:setLocale>标签用来将给定的区域存储在locale配置变量中。
语法格式
<fmt:setLocale value="<string>" variant="<string>" scope="<string>"/>
属性
<fmt:setLocale>标签有如下属性:
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
value | 指定ISO-639 语言码和ISO-3166 国家码 | 是 | en_US |
variant | 特定浏览器变体 | 否 | 无 |
scope | Locale配置变量的作用域 | 否 | Page |
程序示例
资源束包含区域特定对象。资源束包含键值对。当您的程序需要区域特定资源时,可以将所有的关键词对所有的locale共享,但是也可以为locale指定转换后的值。资源束可以帮助提供指定给locale的内容。
一个Java资源束文件包含一系列的键值对。我们所关注的方法涉及到创建继承自java.util.ListResourceBundle 类的已编译Java类。您必须编译这些类然后放在您的Web应用程序的CLASSPATH中。
让我们来定义一个默认的资源束:
package com.runoob;
import java.util.ListResourceBundle;
public class Example_En extends ListResourceBundle {
public Object[][] getContents() {
return contents;
}
static final Object[][] contents = {
{"count.one", "One"},
{"count.two", "Two"},
{"count.three", "Three"},
};
}
现在,再定义一个资源束,用于Spanish Locale:
package com.runoob;
import java.util.ListResourceBundle;
public class Example_es_ES extends ListResourceBundle {
public Object[][] getContents() {
return contents;
}
static final Object[][] contents = {
{"count.one", "Uno"},
{"count.two", "Dos"},
{"count.three", "Tres"},
};
}
编译以上文件至Examble.class和Examble_es_ES.class中,然后将它们放在Web应用程序的CLASSPATH中。现在可以使用JSTL标签来显示这三个数字,就像这样:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
<title>JSTL fmt:setLocale 标签</title>
</head>
<body>
<fmt:bundle basename="com.runoob.Example">
<fmt:message key="count.one"/><br/>
<fmt:message key="count.two"/><br/>
<fmt:message key="count.three"/><br/>
</fmt:bundle>
<!-- 修改地区-->
<fmt:setLocale value="es_ES"/>
<fmt:bundle basename="com.runoob.Example">
<fmt:message key="count.one"/><br/>
<fmt:message key="count.two"/><br/>
<fmt:message key="count.three"/><br/>
</fmt:bundle>
</body>
</html>
运行结果如下:
One
Two
Three
Uno
Dos
Tres
fmt:setBundle 标签
<fmt:setBundle>标签用来载入一个资源束,然后将它存储在作用域中已命名的变量或bundle配置变量中。
语法格式
<fmt:setBundle baseName="<string>" var="<string>" scope="<string>"/>
属性
<fmt:setBundle>标签有如下属性:
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
basename | 资源束家族基础名称,暴露给作用域变量或配置变量 | 是 | 无 |
var | 存储新资源束的变量 | 否 | Replace default |
scope | 变量的作用域 | 否 | Page |
实例演示
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
<title>JSTL fmt:setBundle 标签</title>
</head>
<body>
<fmt:setLocale value="en"/>
<fmt:setBundle basename="com.runoob.Example" var="lang"/>
<fmt:message key="count.one" bundle="${lang}"/><br/>
<fmt:message key="count.two" bundle="${lang}"/><br/>
<fmt:message key="count.three" bundle="${lang}"/><br/>
</body>
</html>
运行结果如下:
One
Two
Three
fmt:timeZone 标签
<fmt:timeZone>标签用来指定时区,供其它标签使用。
语法格式
<fmt:setLocale value="<string>" variant="<string>" scope="<string>"/>
属性
<fmt:timeZone>标签有如下属性:
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
value | 时区 | 是 | 无 |
实例演示
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
<title>JSTL fmt:timeZone 标签</title>
</head>
<body>
<c:set var="now" value="<%=new java.util.Date()%>" />
<table border="1" width="100%">
<tr>
<td width="100%" colspan="2" bgcolor="#0000FF">
<p align="center">
<b>
<font color="#FFFFFF" size="4">Formatting:
<fmt:formatDate value="${now}" type="both"
timeStyle="long" dateStyle="long" />
</font>
</b>
</p>
</td>
</tr>
<c:forEach var="zone"
items="<%=java.util.TimeZone.getAvailableIDs()%>">
<tr>
<td width="51%">
<c:out value="${zone}" />
</td>
<td width="49%">
<fmt:timeZone value="${zone}">
<fmt:formatDate value="${now}" timeZone="${zn}"
type="both" />
</fmt:timeZone>
</td>
</tr>
</c:forEach>
</table>
</body>
</html>
运行结果如下:
fmt:message 标签
<fmt:message>标签映射一个关键字给局部消息,然后执行参数替换。
语法格式
<fmt:message
key="<string>"
bundle="<string>"
var="<string>"
scope="<string>"/>
属性
<fmt:message>标签有如下属性:
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
key | 要检索的消息关键字 | 否 | Body |
bundle | 要使用的资源束 | 否 | 默认资源束 |
var | 存储局部消息的变量名 | 否 | Print to page |
scope | var属性的作用域 | 否 | Page |
实例演示
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
<title>JSTL fmt:message 标签</title>
</head>
<body>
<fmt:setLocale value="en"/>
<fmt:setBundle basename="com.runoob.Example" var="lang"/>
<fmt:message key="count.one" bundle="${lang}"/><br/>
<fmt:message key="count.two" bundle="${lang}"/><br/>
<fmt:message key="count.three" bundle="${lang}"/><br/>
</body>
</html>
运行结果如下:
One
Two
Three
fmt:requestEncoding 标签
<fmt:requestEncoding>标签用来指定返回给Web应用程序的表单编码类型。
语法格式
<fmt:requestEncoding value="<string>"/>
属性
<fmt:requestEncoding>标签有如下属性:
属性 | 描述 | 是否必要 | 默认值 |
---|---|---|---|
key | 字符编码集的名称,用于解码request参数 | 是 | 无 |
使用<fmt:requestEncoding>标签来指定字符集,用于解码来自表单的数据。在字符集不是ISO-8859-1时必须使用这个标签。由于大多数浏览器在它们的请求中不包含Content-Type头,所以需要这个标签。
<fmt:requestEncoding>标签的目的就是用来指定请求的Content-Type。您必须指定一个Content-Type,就算response是通过Page指令的contentType属性来编码。这是因为response的实际区域可能与Page指令所指定的不同。
如果页面包含 I18N-capable格式行为用于设置response的locale属性(通过调用ServletResponse.setLocale()方法),任何在页面中指定的编码集将会被覆盖。
实例演示
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
<head>
<title>JSTL fmt:message 标签</title>
</head>
<body>
<fmt:requestEncoding value="UTF-8" />
<fmt:setLocale value="es_ES"/>
<fmt:setBundle basename="com.runoob.Example" var="lang"/>
<fmt:message key="count.one" bundle="${lang}"/><br/>
<fmt:message key="count.two" bundle="${lang}"/><br/>
<fmt:message key="count.three" bundle="${lang}"/><br/>
</body>
</html>
运行结果如下:
Uno
Dos
Tres
上一篇: flex 鼠标忙碌
下一篇: Python基础——字典(dict)