格式化时间值

时间:2015-06-10 20:14:43

标签: python string-formatting

在下面的程序中,我返回一个布尔值和一个表示元组中执行时间的值:

import time


# O(n) time
def isAnagram1(s1, s2):
    start = time.time()
    letterlist1 = [0] * 26
    letterlist2 = [0] * 26

    for i in xrange(0, len(s1)):
        pos = ord(s1[i]) - ord('a')
        letterlist1[pos] = letterlist1[pos] + 1

    for i in xrange(0, len(s2)):
        pos = ord(s2[i]) - ord('a')
        letterlist2[pos] = letterlist2[pos] + 1

    for i in xrange(0, 26):
        if letterlist1[i] != letterlist2[i]:
            end = time.time()
            return False, end-start

    end = time.time()
    return True, end-start
    pass


def main():
    str1 = input("Enter string 1: ")
    str2 = input("Enter string 2: ")

    print "Is Anagram1: %s, "
    "Operation required %10.7f seconds" % isAnagram1(str1, str2)

但是,在调用此函数时,我需要将时间值转换为浮点值,以便适当地打印出来。如果没有,则会给出错误: TypeError:并非在字符串格式化过程中转换所有参数。我想我必须找到一种方法来获得表示转换执行时间的单个值。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

你错过了#34; \"为了延续线。因此,您有print语句,只会打印文字"Is Anagram1: %s, "。下一行是Python尝试评估的单独表达式。

此外,您需要使用raw_input,因为这是Python2

这是固定的main函数

def main():
    str1 = raw_input("Enter string 1: ")
    str2 = raw_input("Enter string 2: ")

    print "Is Anagram1: %s, " \
    "Operation required %10.7f seconds" % isAnagram1(str1, str2)