python脚本暂停,如何禁用它?

时间:2013-01-09 07:45:01

标签: python-2.7 output

我有一个python脚本,我提供所有输入一次然后打印一些输出。现在,我期望的是这种格式

            input 1
            input 2
            input 3
            output 1
            output 2

现在我的问题是当我运行python脚本并提供输入(在终端中粘贴它)时,输出在打印“输出1”后暂停,我按Enter键再次打印它。

from sets import Set

test_cases = int(raw_input())

while test_cases > 0:
    cats_vs_dogs = {}
    input_ = raw_input()
    input_ = input_.split(" ")
    total_cats = input_[0]
    total_dogs = input_[1]
    votes = int(input_[2])    
    remove_count = 0
    cats = Set()
    dogs = Set()
    for i in range(1, int(total_cats) + 1):
        cats.add('C' + str(i))
    for i in range(1, int(total_dogs) + 1):
        dogs.add('D' + str(i))

    for i in range(0, votes):
        input_ = raw_input()
        input_ = input_.split(" ")
        cat = input_[0]
        dog = input_[1]        
        if cat in cats:
            cats.remove(cat)
        elif cat in dogs:
            dogs.remove(cat)
        if dog in cats:
            cats.remove(dog)
        elif dog in dogs:
            dogs.remove(dog)

        if dog not in cats_vs_dogs:
            # now simply add the vote
            if cat in cats_vs_dogs:
                temp = list(cats_vs_dogs[cat])
                temp.append(dog)
                cats_vs_dogs[cat] = temp
            else:
                # cat was not found
                cats_vs_dogs[cat] = list([dog])
        else:
            # relevant dog is present, remove corresponding cat
            dogs_list = list(cats_vs_dogs[dog])
            if cat in dogs_list:
                # remove this entry and don't save it
                dogs_list.remove(cat)
                cats_vs_dogs[dog] = dogs_list
                remove_count += 1
            else:
                # no reverse entry exists so simply add
                if cat not in cats:
                    cats_vs_dogs[cat] = list([dog])
                else:
                    cats_list = list(cats_vs_dogs[cat])
                    cats_list.append(dog)
                    cats_vs_dogs[cat] = cats_list


    # now update the count
    for k in cats_vs_dogs.keys():
        remove_count += len(cats_vs_dogs[k])
    print remove_count + len(cats) + len(dogs)
    # print 'cats: ', cats
    # print 'dogs: ', dogs
    test_cases -= 1
    cats.clear()
    dogs.clear()
    cats_vs_dogs.clear()

我提供的输入是:

    2
    1 1 2
    C1 D1
    D1 C1
    1 2 4
    C1 D1
    C1 D1
    C1 D2
    D2 C1

我得到的输出是:

    ...
    D2 C11
    <system pause> I press enter
    3

而我希望它像

一样
    D2 C1<last line>
    1
    3

1 个答案:

答案 0 :(得分:0)

好吧,我试图找出你的代码到底做了什么,但我可以提供一些你可能会尝试的建议:

  • 使用range()时,您无需输入零,因此range(0,6)range (6)相同。
  • 当您使用raw_input()时,包含某种提示通常会很有帮助。它也有助于调试。通过这种方式,您可以判断您所看到的暂停是否实际上正在等待输入。一个例子是test_cases = raw_input("Enter number of test cases: ")
  • 最后,关于您的实际问题:您的print语句包含在while块中。所以它可能会打印一些东西,然后回到整个代码。尝试将其拉出街区,看看会发生什么。