1. ホーム
  2. python

[解決済み] 2つの数値の比を計算する関数を書く

2022-02-18 22:38:38

質問

私はPythonのコーディングの初心者なので、以下の問題を念頭に置いてください。関数、引数、変数の定義の使い方を学んでいるところです。

num1とnum2という2つの数字を引数に取り、2つの数字の比率を計算し、その結果を(この例ではnum1は6、num2は3):「6と3の比率は2」と表示するratioFunctionという関数を定義する。このコードを実行した後の出力は、次のようになります。

Enter the first number: 6
Enter the second number: 3
The ratio of 6 and 3 is 2.

そこで、私の限られたコーディングの知識と、関数に対する完全な混乱から、次のようなものを作ってみました。

def ratioFunction(num1, num2):
    num1 = input('Enter the first number: ')
    int(num1)
    num2 = input('Enter the second number: ')
    int(num2)
    ratio12 = int(num1/num2)
    print('The ratio of', num1, 'and', num2,'is', ratio12 + '.')
ratioFunction(num1, num2)

私は全く混乱しています、どんな助けでも感謝されます

どのように解決するのですか?

を呼び出した結果をキャプチャしていないことが問題なのです。 int .

def ratioFunction(num1, num2):
    num1 = input('Enter the first number: ')
    int(num1) # this does nothing because you don't capture it
    num2 = input('Enter the second number: ')
    int(num2) # also this
    ratio12 = int(num1/num2)
    print('The ratio of', num1, 'and', num2,'is', ratio12 + '.')
ratioFunction(num1, num2)

に変更します。

def ratioFunction(num1, num2):
    num1 = input('Enter the first number: ')
    num1 = int(num1) # Now we are good
    num2 = input('Enter the second number: ')
    num2 = int(num2) # Good, good
    ratio12 = int(num1/num2)
    print('The ratio of', num1, 'and', num2,'is', ratio12 + '.')
ratioFunction(num1, num2)

また ratioFunction(num1, num2) を使用すると、最後の行で、これは NameError がなければ num1num2 をどこかで定義しています。しかし、正直なところ、これは入力を取っているので、全く必要ないのです。この関数には引数は必要ありません。また、印刷するときに、別のバグが発生します。 + 演算子を ratio12 + '.' しかし ratio12int'.' は文字列です。手っ取り早いのは ratio12str :

In [6]: def ratioFunction():
   ...:     num1 = input('Enter the first number: ')
   ...:     num1 = int(num1) # Now we are good
   ...:     num2 = input('Enter the second number: ')
   ...:     num2 = int(num2) # Good, good
   ...:     ratio12 = int(num1/num2)
   ...:     print('The ratio of', num1, 'and', num2,'is', str(ratio12) + '.')
   ...:

In [7]: ratioFunction()
Enter the first number: 6
Enter the second number: 2
The ratio of 6 and 2 is 3.

しかし、おそらく、あなたの関数 は引数を取ることを想定しており、関数の外で入力を得て、それを関数に渡します。