format_address函数将地址字符串的一部分分离为新字符串:house_number和street_name,并返回:“house number X on street named Y”。输入字符串的格式为:数字房屋编号,后跟街道名称,街道名称可能包含数字,但不能单独包含数字,长度可以是几个单词。例如,“主街123号”、“第一大道1001号”或“北中心大道55号”。填补空白以完成此功能
def format_address(address_string):
# Declare variables
house_number=' '
street_name=" "
# Separate the address string into parts
x=address_string.split(" ")
# Traverse through the address parts
for y in x:
if(y.isdigit()):
house_number=y
else:
street_name+=y
street_name+=' '
# Determine if the address part is the
# house number or part of the street name
# Does anything else need to be done
# before returning the result?
# Return the formatted string
return "house number {} on street named {}".format(house_number,street_name)
print(format_address("123 Main Street"))
# Should print: "house number 123 on street named Main Street"
但它的输出显示为:
house number 123 on street named
house number 1001 on street named
house number 55 on street named
在我看来,您的
return
语句发生在for
循环中,这意味着您仅在第一项之后退出循环!但是到那时你还没有确定街道的名称只需将
return ...
移回一个选项卡,它就可以正常工作了使用
str.split()
时,可以选择要将字符串拆分为的段数(只要不超过最大值)。在您的情况下,字符串只应拆分一次,以将门牌号与街道名称分开。此外,您还可以使用格式化字符串:输出:
相关问题 更多 >
编程相关推荐