0

我正在尝试在 python 中定义一个函数来替换字符串中的某些项目。我的字符串是一个包含度分秒的字符串(即 216-56-12.02)

我想替换破折号以便获得正确的符号,所以我的字符串看起来像 216° 56' 12.02"

我试过这个:

def FindLabel ([Direction]):
  s = [Direction]
  s = s.replace("-","° ",1) #replace first instancwe of the dash in the original string
  s = s.replace("-","' ") # replace the remaining dash from the last string

  s = s + """ #add in the minute sign at the end

  return s

这似乎不起作用。我不确定出了什么问题。欢迎任何建议。

干杯,迈克

4

2 回答 2

2

老实说,我不会为更换而烦恼。只是.split()它:

def find_label(direction):
    degrees, hours, minutes = direction.split('-')

    return u'{}° {}\' {}"'.format(degrees, hours, minutes)

如果你愿意,你可以进一步压缩它:

def find_label(direction):
    return u'{}° {}\' {}"'.format(*direction.split('-'))

如果您想修复当前代码,请参阅我的评论:

def FindLabel(Direction):  # Not sure why you put square brackets here
  s = Direction            # Or here
  s = s.replace("-",u"° ",1)
  s = s.replace("-","' ")

  s += '"'  # You have to use single quotes or escape the double quote: `"\""`

  return s

您可能还必须utf-8使用注释在 Python 文件的顶部指定编码:

# This Python file uses the following encoding: utf-8
于 2012-10-25T22:01:06.670 回答
1

这就是我通过拆分成一个列表然后重新加入来做到这一点的方式:

s = "{}° {}' {}\"".format(*s.split("-"))
于 2012-10-25T22:00:32.987 回答