测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A37232. 已知 IPv6 的地址字符串的格式为 X:X:X:X:X:X:X:X, 其中每个 X 表示长度为 4 的字符串。例如: 某 IPv6 字符串:“2A08:CCD6:0088:108A:0011:0002:202F:AA05”, IPv6 表示法需将每个X 的前导零都省略, 程序输出结果如下图所示:现设计程序自动删除 IPv6 地址的前导零, 请在划线处填入合适的代码。s="2A08:CCD6:0…

填空题 困难

题目描述

已知 IPv6 的地址字符串的格式为 X:X:X:X:X:X:X:X, 其中每个 X 表示长度为 4 的字符串。例如: 某 IPv6 字符串:“2A08:CCD6:0088:108A:0011:0002:202F:AA05”, IPv6 表示法需将每个X 的前导零都省略, 程序输出结果如下图所示:

现设计程序自动删除 IPv6 地址的前导零, 请在划线处填入合适的代码。

s="2A08:CCD6:0088:108A:0011:0002:202F:AA05"

______①______

flag=False

for i in range(len(s)):

if s[i]==":":

______②______

flag=False

elif ______③______:

ans+=s[i]

flag=True

print("原 IPv6 地址为:",s)

print("去前导零后:",ans)

参考答案

s="2A08:CCD6:0088:108A:0011:0002:202F:AA05" ans="" flag=False for i in range(len(s)): if s[i]==":": ans+=s[i] flag=False elif s[i]!="0" or flag==True: ans+=s[i] flag=True print("原 IPv6 地址为:",s) print("去前导零后:",ans)

答案解析

评分标准:

(1) ans="" ; (3 分)

(2) ans+=s[i]; (3 分)

(3) s[i]!="0" or flag==True。 (4 分)

上一题 下一题