我正在学习Python课程并坚持挑战。挑战的指示是这样的:
创建一个程序,该程序获取在键盘输入的IP地址,并打印出它包含的段数以及每个段的长度。
注意:它不是我的python代码。这是我发布的教师代码。我发布的原因是我不明白代码中发生了什么。
这是代码本身。
ipAddress = input("Please enter an IP address: ")
segment = 1
segmentLength = 0
character = ''
for character in ipAddress:
if character == '.':
print("segment {} contains {} characters".format(segment, segmentLength))
segment += 1
segmentLength = 0
else:
segmentLength += 1
if character != '.':
print("segment {} contains {} characters".format(segment, segmentLength))
我的问题是为什么segment = 1
和segmentLength = 0
?
答案 0 :(得分:0)
即使问题太差了,我想我会回答它(有点)
ipAddress = input("Please enter an IP address: ")
segments = ipAddress.split(".")
segmentsLengths = [str(len(seg)) for seg in segments]
print(", ".join(segments))
print(", ".join(segmentsLengths))
这是一个更好的例子。第2行基本上是你的for循环来查找"."
。 ipAddress拆分为每个"."
分割的列表,然后只需使用len
找到长度
*编辑*
# get input
ipAddress = input("Please enter an IP address: ")
# default value (could be any value but makes sense
# to be either 0 or 1)
segment = 1
segmentLength = 0
# the segment starts with a value of zero
# until it is counted and will increase
#character = '' # is not needed
for character in ipAddress: # loop through the ip address
if character == '.': # if a dot then ssegment has ended
# output previous segment info
print("segment {} contains {} characters".format(segment, segmentLength))
segment += 1 # move onto next segment
segmentLength = 0 # reset length to zero ready for next
else: # if character is not a dot then segment continues
segmentLength += 1 # add one to length of segment
if character != '.': # catches the last segment
print("segment {} contains {} characters".format(segment, segmentLength))