2017-04-13 11 views
0

私は数週間前にPythonを学び始めました。私の機能は複雑になってきているので、私はそれらを分離して、複数の機能に分けました。しかし、私は私のコードを正しく実行するように思えない。誰かが私にそれを動作させる方法を教えてもらえますか? 基本的な考え方は次のとおりです。私はvar "w"の仕事をどうやって作るのですか?

from random import randint 

x = randint(0,99) 

def my_fun(): 
if x = 5 
    w = 2 
    return w 
elif x > 5: 
    w = 1 
    return w 
else: 
    w = 3 
    return w 

def my_func(): 
my_fun() 
print(w) 
+0

'print(my_fun())'、 'if x == 5'では' if x = 5'ではありません –

+0

==で間違いを指摘してくれてありがとう。それは最終的に働いているように見えます。 ^^ – Werauch

+0

[関数が値を返していない可能性があります。エラー "NameError:name 'urlss' not defined"](http://stackoverflow.com/questions/18192253/function-not-returning-value-error-nameerror-name-urlss-is-not-defined) –

答えて

3

あなたが変数に戻り値を代入する必要があります。

def my_func(): 
    z = my_fun() 
    print(z) 

か、単にprint呼び出しで関数を使用する:

print(my_fun()) 
0

あなたの例実際には複雑ではありませんが、別の関数でprintを呼び出すだけの関数を定義しています。

あなたが提供したシンプルなコードは不要です。

またifステートメントの場合、if x = 5に2つの問題があります。 最初に文 の末尾に:がありません。xが5であることを示していますが、5と等しいかどうかを尋ねません。 if x == 5:を代わりに使用してください。 ==は、何か他のものと等しいかどうかを尋ねるためにPythonが使用するものです。

from random import randint 

x = randint(0,99) 

def my_fun(a): 
    w = 0 
    if a == 5: 
     w = 2 
     return w 
    elif a > 5: 
     w = 1 
     return w 
    else: 
     w = 3 
     return w 

print (my_fun(x)) 
+0

これは私の機能ではありませんでした。私の関数はこの問題を抱えていました。私はほとんど100行のコードを投稿したくありませんでした。答えてくれてありがとう。 – Werauch

+0

@Werauch意味があります。私がここで答えを見ることができるから、それはあなたが探しているものに合うはずの「バーマー」のように見えます。クイックチップの考え。あなたが質問にペーストコードを書いているのなら、それが正しくインデントされていることを確認してください。インデントが存在していないか悪いかどうか疑問に気付かないかもしれません。 –

0

ありがとうございました。 コードは、今取り組んでは以下のように見えます。

from random import randint 

x = randint(0,99) 

def my_fun(): 
if x == 5: 
    w = 2 
    return w 
elif x > 5: 
    w = 1 
    return w 
else: 
    w = 3 
    return w 

def my_func(): 
w = my_fun() 
print(w) 

ありがとうございました。

関連する問題