2016-04-05 10 views
-1

私はこのコードを持っている:私はそれが出力になりたいこの機能が動作しないのはなぜですか?

p1 = "Hey" 
p2 = "Hey2" 
p3 = "Hey3" 
p4 = "Hey4" 
p5 = "Hey5" 

def ifdisplaygrid(x1,x2,x3): 
    x1 += "Y" 
    x2 += "N" 
    x3 += "K" 
    if x1 == p3 and x2 == p4 and x3 == p5: 
     print p1 + p2 + x1 + x2 + x3 
    else: 
     print "Function Is Not Working!!!" 
ifdisplaygrid(p3,p4,p5) 

HeyHey2Hey3YHey4NHey5K 

しかし、それが起こることはありません、私はここで間違って何をやっていますか?ありがとうございました!

+0

をその連結のロジックを追加するifdisplaygrid方法の3つの第1行削除 - 編集:あなたの特定のケースのためにあなたがif文の下にそれらを移動する必要がありますが、しかし、次のことができるようにすべきですどのような問題が – hansn

答えて

3

関数のパラメータは値型でコピーされるため、x1-x3を変更すると元の変数は変更されません。したがって、if文はfalseです。

+0

であるかを見て、私はそれらを変更するのですか? – TCG

1

if条件チェックの前に、x1、x2、x3の値を既に変更しているため、p3、p4、p5と決して等しくなりません。条件はあなたのコードの作業を行います場合

def ifdisplaygrid(x1,x2,x3): 
if x1 == p3 and x2 == p4 and x3 == p5: 
x1 += "Y" 
x2 += "N" 
x3 += "K" 
    print p1 + p2 + x1 + x2 + x3 
else: 
    print "Function Is Not Working!!!" 
+0

p1がx1のスペースにある場合、私がしようとしていたのはchcekでした。 – TCG

+0

しかし、コードスニペットでは、p1とx1の間に条件を持つコードはありません。それがp3の場合、x1 == p3の代わりに、x1がp3などを含むようなものを試す必要があるでしょう –

関連する問題