2017-08-19 19 views
0

最終結果を最初に印刷する必要があります。開始時に最終結果を出力するPython

fail_count = 0 
pass_count = 0 
a = "A" 
b = "B" 
if a == "A" and b == "B": 
    print "QA_check1 | Passed" 
    pass_count += 1 
else: 
    print "QA_check1 | Failed" 
    fail_count += 1 
c = "C" 
d = "Z" 
if c == "c" and d == "D": 
    print "QA_check1 | Passed" 
    pass_count += 1 
else: 
    print "QA_check1 | Failed" 
    fail_count += 1 

total_qa = pass_count + fail_count 
print "Total QA Performed {}".format(total_qa) 
print "Total QA Passed {}".format(pass_count) 
print "Total QA Failed {}".format(fail_count) 

と以下の出力は次のとおりです:

は、以下のPythonスクリプトである

QA_check1 | Passed 
QA_check1 | Failed 
Total QA Performed 2 
Total QA Passed 1 
Total QA Failed 1 

しかし、以下に示すように、私は出力を期待しています。これを達成するために私を助けてください:

Total QA Performed 2 
Total QA Passed 1 
Total QA Failed 1 
QA_check1 | Passed 
QA_check1 | Failed 
+1

'QA_check1'の出力を変数に格納し、最後に出力することができます。 –

+1

@ gopinaraあなたに適した解決策を見つけたら、その答えの横にあるチェックマークをクリックして受け入れてください。これにより、あなたの問題を抱えている他の人たちが、あなたに適したソリューションを知ることができます – Adi219

答えて

0

あなただけの最後にそれらを二つの変数でQACheck1結果を格納する必要があり、その後print()

fail_count = 0 
pass_count = 0 

a = "A" 
b = "B" 
QACheck1Str1 = "" 

if a == "A" and b == "B": 
    QACheck1Str1 = "QA_check1 | Passed" 
    pass_count += 1 
else: 
    QACheck1Str1 = "QA_check1 | Failed" 
    fail_count += 1 


c = "C" 
d = "Z" 

QACheck1Str2 = "" 

if c == "c" and d == "D": 
    QACheck1Str2 = "QA_check1 | Passed" 
    pass_count += 1 
else: 
    QACheck1Str2 = "QA_check1 | Failed" 
    fail_count += 1 




total_qa = pass_count + fail_count 
print "Total QA Performed {}".format(total_qa) 
print "Total QA Passed {}".format(pass_count) 
print "Total QA Failed {}".format(fail_count) 
print QACheck1Str1 
print QACheck1Str2 

出力:

Total QA Performed 2 
Total QA Passed 1 
Total QA Failed 1 
QA_check1 | Passed 
QA_check1 | Failed 
0

ソリューション内のコードの重複がたくさんあります。したがって 、私は次のようにあなたがより良いオーダーメイドのテストクラスを定義すると思う:

class Test(): 
    def __init__(self, prefix = 'QA_check1 | '): 
     self.fail_count = 0 
     self.pass_count = 0 
     self.prefix = prefix 
     self.answers = [] 

    def equality_test_fails(self): 
     self.fail_count += 1 
     self.answers.append('Failed') 

    def equality_test_passes(self): 
     self.pass_count += 1 
     self.answers.append('Passed') 

    def equals_on_iterable(self, equality_iterable): 
     for ei in equality_iterable: 
      if ei[0] != ei[1]: 
       self.equality_test_fails() 
       return 
     self.equality_test_passes() 

    def print_report(self): 
     self.print_kpis() 
     self.print_details() 

    def print_kpis(self): 
     print "Total QA Performed {}".format(self.pass_count + self.fail_count) 
     print "Total QA Passed {}".format(self.pass_count) 
     print "Total QA Failed {}".format(self.fail_count) 

    def print_details(self): 
     for a in self.answers: 
      print(self.prefix + a) 

その後、主要部分がはるかに読みやすく、可変電流よりも次のとおりです。

a = "A" 
b = "B" 
c = "C" 
d = "Z" 

test = Test() 

test.equals_on_iterable([(a, "A"), (b, "B")]) 
test.equals_on_iterable([(c, "C"), (d, "D")]) 
test.print_report() 

Total QA Performed 2 
Total QA Passed 1 
Total QA Failed 1 
QA_check1 | Passed 
QA_check1 | Failed 

あなたは、我々はそれを改善することができる方法上の任意のアイデアを持っている場合は、このコードにコメントすること自由に感じてください:)

を:欲しかったよう端は、データが印刷されます
1

あなたが持っていた問題は、2つのifとelseステートメントで印刷することを告げたか

if a == "A" and b == "B": 
    print "QA_check1 | Passed" 
    pass_count += 1 
else: 
    print "QA_check1 | Failed" 
    fail_count += 1 
c = "C" 
d = "Z" 
if c == "c" and d == "D": 
    print "QA_check1 | Passed" 
    pass_count += 1 
else: 
    print "QA_check1 | Failed" 
    fail_count += 1 

予告です。これらのステートメントは、

total_qa = pass_count + fail_count 
print "Total QA Performed {}".format(total_qa) 
print "Total QA Passed {}".format(pass_count) 
print "Total QA Failed {}".format(fail_count) 

の前にあったことになります。これは、その結果が得られたことを意味します。 結果を望むなら、2つのif文の中のprintを2つの異なる変数に変更することをお勧めします。たとえば、あなたが最後にこの

if a == "A" and b == "B": 
    QA_check1_a_and_b="QA_check1 | Passed" 
    pass_count += 1 
else: 
    QA_check1_a_and_b="QA_check1 | Failed" 
    fail_count += 1 
c = "C" 
d = "Z" 
if c == "c" and d == "D": 
    QA_check1_c_and_d="QA_check1 | Passed" 
    pass_count += 1 
else: 
    QA_check1_c_and_d="QA_check1 | Failed" 
    fail_count += 1 

を行うことができますあなたが言う:

total_qa = pass_count + fail_count 
print "Total QA Performed {}".format(total_qa) 
print "Total QA Passed {}".format(pass_count) 
print "Total QA Failed {}".format(fail_count) 
print "QA_check1_a_and_b 
print "QA_check1_c_and_d 

この方法は、それはあなたがあまりにもそれを望んでいた方法をどのようにしています。

次回は、Pythonがあなたが望む順序ではないコードを実行することを覚えています。また、印刷するように指示すると実際に印刷されることを忘れないでください:)。

Good Luck!

関連する問題