Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从字符串更改int和string_Python - Fatal编程技术网

Python 从字符串更改int和string

Python 从字符串更改int和string,python,Python,format_address函数将地址字符串的一部分分离为新字符串:house_number和street_name,并返回:“house number X on street named Y”。输入字符串的格式为:数字房屋编号,后跟街道名称,街道名称可能包含数字,但不能单独包含数字,长度可以是几个单词。例如,“主街123号”、“第一大道1001号”或“北中心大道55号”。填补空白以完成此功能 def格式地址(地址字符串): #声明变量 门牌号=“” 街道名称=“” #将地址字符串分成几个部分

format_address函数将地址字符串的一部分分离为新字符串:house_number和street_name,并返回:“house number X on street named Y”。输入字符串的格式为:数字房屋编号,后跟街道名称,街道名称可能包含数字,但不能单独包含数字,长度可以是几个单词。例如,“主街123号”、“第一大道1001号”或“北中心大道55号”。填补空白以完成此功能

def格式地址(地址字符串):
#声明变量
门牌号=“”
街道名称=“”
#将地址字符串分成几个部分
x=地址\字符串拆分(“”)
#遍历地址部分
对于x中的y:
如果(y.isdigit()):
房屋编号=y
其他:
街道名称+=y
街道名称+=''
#确定地址部分是否为
#门牌号或街道名称的一部分
#还有什么需要做的吗
#在返回结果之前?
#返回格式化的字符串
返回“名为{}的街道上的门牌号{}”。格式(门牌号、街道名)
打印(格式为地址(“123大街”))
#应打印:“名为Main street的街道上的123号房屋”
但它的输出显示为:

house number 123 on street named  
house number 1001 on street named  
house number 55 on street named  

在我看来,您的
return
语句发生在
for
循环中,这意味着您仅在第一项之后退出循环!但是到那时你还没有确定街道的名称


只需将
return…
移回一个选项卡,它就可以正常工作。

这是因为您的return没有处于良好的缩进状态。它在第一个循环中被调用,所以您的boucle只进行了一次迭代

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"```

使用
str.split()
时,您可以选择要将字符串拆分为多少段(只要不超过最大值)。在您的情况下,字符串只应拆分一次,以将门牌号与街道名称分开。此外,您还可以使用格式化字符串:

def format_address(address_string):
    num, st = address_string.split(' ',1)
    return f"house number {num} on street named {st}"

print(format_address("123 Main Street"))
输出:

house number 123 on street named Main Street

或者你可以这么做

def format_address(address_string):
  # Declare variables
  space = address_string.find(" ")
  house_number = address_string[:space]
  street_name = address_string[space:]
  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"

print(format_address("1001 1st Ave"))
# Should print: "house number 1001 on street named 1st Ave"

print(format_address("55 North Center Drive"))
# Should print "house number 55 on street named North Center Drive"
这对我有用

def format_address(address_string):
    # Declare variables
    hn =""
    ha =""
  # Separate the address string into parts
    address_string = address_string.split()
  # Traverse through the address parts
    for add in address_string:
        if add.isnumeric():
            hn += add
        else:
            ha += add + " "
    # 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(hn,ha)

print(format_address("123 Main Street"))
# Should print: "house number 123 on street named Main Street"

print(format_address("1001 1st Ave"))
# Should print: "house number 1001 on street named 1st Ave"

print(format_address("55 North Center Drive"))
# Should print "house number 55 on street named North Center Drive"
我不使用if语句对数值进行求解,我将列表拆分为两部分,并将每个部分添加到相应的变量中。


@TomServo我想用
{}
语法只会从左到右填充它嗨!请考虑投票和/或接受解决问题的答案,请参阅。非常感谢。好地方!这是一个很好的例子,说明了为什么让你的评论与他们评论的代码保持一致是一种好的做法;很难直观地跟踪缩进的垂直线,因为注释到处都是。回答得很好,不仅仅是直接修复明显的错误。嗨,Ghyxen。欢迎来到堆栈溢出。虽然本准则可以回答该问题,但提供关于本准则为什么和/或如何回答该问题的附加上下文可提高其长期价值。还有,这个问题有很多答案。你能解释一下我为什么要用这个答案而不是现有的答案吗。亲切的问候。最简单的解决办法
def format_address(address_string):
  # Declare variables
  addres = address_string.split()
  count = 0
  stret= ""
  for x in addres:
    if count == 0:
      num = x
      count+=1
    elif count == 1:
      stret += x
      count+=1
    else:
      stret += " "
      stret += x
      count+=1

  # Does anything else need to be done 
  # before returning the result?
  
  # Return the formatted string  
  return "house number {} on street named {}".format(num, stret)

print(format_address("123 Main Street"))
# Should print: "house number 123 on street named Main Street"

print(format_address("1001 1st Ave"))
# Should print: "house number 1001 on street named 1st Ave"

print(format_address("55 North Center Drive"))
# Should print "house number 55 on street named North Center Drive"
def format_address(address_string):
  # Declare variables
  number = ''
  street = ''
  # Separate the address string into parts
  address_string = address_string.split()
  # Traverse through the address parts
  for add in address_string:
      # Determine if the address part is the
      # house number or part of the street name
      if add.isdigit():
          number += add 
      # Does anything else need to be done 
      # before returning the result?
      else :
          street += " " + add
      # Return the formatted string  
      return "house number {} on street named {}".format(number, street)

print(format_address("123 Main Street"))
# Should print: "house number 123 on street named Main Street"

print(format_address("1001 1st Ave"))
# Should print: "house number 1001 on street named 1st Ave"

print(format_address("55 North Center Drive"))
# Should print "house number 55 on street named North Center Drive"
def format_address(address_string):
    # Declare variables
    hn =""
    ha =""
  # Separate the address string into parts
    address_string = address_string.split()
  # Traverse through the address parts
    for add in address_string:
        if add.isnumeric():
            hn += add
        else:
            ha += add + " "
    # 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(hn,ha)

print(format_address("123 Main Street"))
# Should print: "house number 123 on street named Main Street"

print(format_address("1001 1st Ave"))
# Should print: "house number 1001 on street named 1st Ave"

print(format_address("55 North Center Drive"))
# Should print "house number 55 on street named North Center Drive"
def format_address(address_string):
  # Declare variables
  house_number = 0
  street_name = []
  # Separate the address string into parts
  address = address_string.split()
  # Traverse through the address parts
  for item in address:
    if item.isnumeric():
      house_number = item
    else:
      street_name.append(item)
    # 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, " ".join(street_name))

print(format_address("123 Main Street"))
# Should print: "house number 123 on street named Main Street"

print(format_address("1001 1st Ave"))
# Should print: "house number 1001 on street named 1st Ave"

print(format_address("55 North Center Drive"))
# Should print "house number 55 on street named North Center Drive"
def format_address(address_string):
# Declare variables
  house_number=[]
  street_name=[]
  addresses=[]
# Separate the address string into parts
  addresses = address_string.split()
# Traverse through the address parts
  for address in addresses:
# Determine if the address part is the house number or part of the street name
    
    if address.isnumeric() == True:
       house_number.append(address)
    else:
       street_name.append(address)
  
  house=" ".join(house_number)
  street=" ".join(street_name)
# Return the formatted string  
  return "house number {} on street named {}".format(house,street)

print(format_address("123 Main Street"))
# Should print: "house number 123 on street named Main Street"

print(format_address("1001 1st Ave"))
# Should print: "house number 1001 on street named 1st Ave"

print(format_address("55 North Center Drive"))
# Should print "house number 55 on street named North Center Drive"
def format_address(address_string):
  words = address_string.split()
  return "house number {} on street named {}".format(words[0],' '.join(words[1:]))
def format_address(address_string):
# Declare variables
house_number=''
street_name=''
# Separate the address string into parts
address = address_string.split()
# Traverse through the address parts
for add in address:
    # Determine if the address part is the
    # house number or part of the street name
    if add.isnumeric():
        house_number = int(add)
    else:
        street_name += add + " "
        # 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.strip())
def format_address(address_string):
  # Declare variables
  addres_list = []
  name = " "
  # Separate the address string into parts
  addres_list = address_string.split(" ")
  # Traverse through the address parts
  number = addres_list[0]
  name = name.join(addres_list[1:])
  # Return the formatted string  
  return "house number {} on street named {}".format(number,name)
def format_address(address_string):

  address = address_string.split(" ",1)
  house=address[0]
  street=address[1]
  return "house number {} on street named {}".format(house,street)

print(format_address("123 Main Street"))
# Should print: "house number 123 on street named Main Street"

print(format_address("1001 1st Ave"))
# Should print: "house number 1001 on street named 1st Ave"

print(format_address("55 North Center Drive"))
# Should print "house number 55 on street named North Center Drive"
def format_address(address_string):
      house_number = ''
      street_name = ''
      parts = address_string.split(' ',1)
      house_number += parts[0]
      street_name += parts[1]
    
    
      return "house number {} on street named {}".format(house_number,street_name)