1

さて、私は6周年のガールフレンドのためにコードを作成しています。私はプログラミングに完全に精通しています。私は、ユーザー(彼女)が文字列出力を受け取るために、基本的に数値入力の入出力マシンを作成するための非常に単純なコードを書いています。

コードを実行すると、「none」が表示され続けます。なぜ?ここに行きます。

def love(n):
  if n < 0 : 
    print "Why would it be negative?!" 
  if n == 0 : 
      print "well that is just hurtful" 
  if n == 1 :
    print "I REALLY love you" 
  if n == 2 : 
    print "You make me smile at least once, each and every day"
  if n == 3 : 
    print"you wouldn't believe how annoying it was to get this program to run properly! but it was worth it"
  if n == 4 : 
      print "let's " + "shoot a little higher than that"
  else:
    print "I honestly can't see myself without you anymore" 


print love(0) 

print "Wanna try again? :D "
4

2 に答える 2

7
love(0) # is all you need.

print love()内にすでにprintステートメントがあるため、を呼び出す必要はありませんlove。あなたはすべての仕事をしているように見Noneloveいます、そしてそれは何も返しません。


また、すべての印刷操作のうち、一度に1つif-elif-elseだけを実行する必要があるため、関数でブロックを使用する必要があります。

if n < 0 : 
    print "Why would it be negative?!" 
elif n == 0 : 
      print "well that is just hurtful" 
elif n == 1 :
    print "I REALLY love you" 
elif n == 2 : 
    print "You make me smile at least once, each and every day"
elif n == 3 : 
    print"you wouldn't believe how annoying it was to get this program to run properly! but it was worth it"
elif n == 4 : 
      print "let's " + "shoot a little higher than that"
else:
    print "I honestly can't see myself without you anymore" 

ただし、それを超えて2、すべてを印刷しても問題はありません;)

SOに関する私の100番目の答え!わーい !

于 2013-03-17T03:05:35.407 に答える
1

関数のデフォルトの戻り値はNoneであるため、関数をprint出力すると、が出力されますNone

printステートメントなしで関数を呼び出すだけです。

printまたは、関数内のすべてのステートメントを。に置き換えreturnて、ブロックに変換することif-elif-elseもできます。これらはすべて相互に排他的な操作であるためです。次に、印刷love(0)は実際に戻り値を出力します。

于 2013-03-17T03:05:26.133 に答える