-2

整数の選択と実数 x の 2 つの値を入力するようにユーザーに要求するプログラムを作成します。選択が 1 の場合、半径 x の円の面積を計算して表示します。選択肢が 2 の場合、一辺の長さが x の正方形の面積を計算して表示します。選択が 1 でも 2 でもない場合、無効な選択というテキストが表示されます。

これは2つの部分に分かれていると思いますか?これまでに考えられるのは、choice(input) 関数を持ち、pi や面積などを定義することだけです。しかし、私はエラーが発生し続けます。私は何を間違っていますか?

choice = input ('Enter Choice:')
choice_1 = int (choice)
if (choice_1==1): radius = (int)
print('Enter x:',radius)
pi = 3.14159
area = ( radius ** 2 ) * pi
print ( 'The Area is=' , area )
choice_2= (choice)
if (choice_2==2): side= (int)
print('enter X:' side*side)
4

4 に答える 4

3

実際の計算は正しく行われていますが、入力の受け取り方には問題があります。あなたはうまく始めます:

choice = input ('Enter Choice:')

しかし、次のようにします。

choice_1 = int (choice)

それは間違っていませんが、新しい変数名は必要ありません。あなたもそうすることができますchoice = int(choice)

次に進みます。

if (choice_1==1): radius = (int)

ステートメントは問題ありませんが(ifかっこは必要ありません)、その本体は少し奇妙です。そこで何を達成しようとしているのかはわかりませんが、ほとんどの場合、あなたが望むことをしていません。おそらくやりたいことは、ifステートメントの現在の本体を削除し、次のコードの束をインデントすることです。

print('Enter x:',radius)

これはEnter x:、関数radiusに設定した.int

radius = input('Enter x: ')

そして、それを float に変換します。

radius = float(radius)

コードに戻ります。有効で正しいですが、独自のコードでpi = 3.14159割り当てる必要はありません。piからインポートするだけですmath

from math import pi

次に、次の 2 行を取得します。

area = ( radius ** 2 ) * pi
print ( 'The Area is=' , area )

問題ありません。それらは正常に動作するはずです。あなたのコードは続きます:

choice_2= (choice)

これは役に立ちません。使用するだけchoiceです。新しい変数は必要ありません。

if (choice_2==2): side= (int)

ここのif主張も正しいが、その体も無意味だ。繰り返しになりますが、おそらくユーザーに何かを入力してから float に変換するように促したいでしょう。

最後に、次のようになります。

print('enter X:' side*side)

まず、カンマがありません。第二に、 の後に面積を出力していますがenter X:、これはあまり意味がありません。そうは言っても、あなたは正しい計算をしました。

于 2012-09-15T02:56:44.647 に答える
2

コードにはいくつかの問題があります。これは、あなたが達成したいと私が信じていることの実例です。

#!/usr/bin/python
pi = 3.14159265

choice = input('Enter Choice [1 or 2]:')
choice = int (choice)

if choice == 1:
  radius = input('Enter x:')
  area = ( radius ** 2 ) * pi
  print 'The Area is=', area

if choice == 2:
  side = input('Enter x:')
  area = side ** 2
  print 'The Area is=', area

あなたが提示したコードには、インデント、変数、入力、および出力など、多くの問題があります。同様に行うことができる多くの改善があります (重複ステートメントの削除など)。上記のコードは、あなたがやりたいことを達成します。それでは、より深く理解するために、エラーを見ていきましょう。

インデント

まず、Python プログラムは適切にインデントする必要があります。これは、条件ロジック (ステートメントなど) に続く行ifにタブを付ける必要があることを意味します。インデントは「ブロック」ステートメントと呼ばれます。1指定された条件 (たとえば、ユーザーが指定した、または値として)が満たされた場合、インデントされた行のみが評価 (実行) され2ます。

変数

および変数は必要ありませんchoice_1choice_2論理的には、ソース コードの読者に、ユーザーの入力を整数に丸める必要があることを伝えたいと考えています。余分な変数は不要choiceです。変数は再利用できます。

入力

このinput関数は、ユーザーが入力した値を式の左側の変数に代入するために使用されます。例:

choice = input ('Enter choice:')
radius = input( 'Enter x:' )
side = input( 'Enter x:' )

これらのinputステートメントが画面に表示されます。ユーザーが数値を入力すると、その数値の値が対応する変数に格納されます。

出力

このprintステートメントは、画面に値を表示するために使用されます。コードでは、テキスト文字列 ( 'Enter x') をprintステートメントと組み合わせました。'Enter x'コンピュータは、ユーザーが値を入力する必要があることを「認識」できません。'Barney'それが紫色の恐竜の名前であることをコンピューターが知らないのと同じように。

于 2012-09-15T02:46:26.257 に答える
2

半径 = (整数)

これが主な問題のようです。

于 2012-09-15T02:49:16.720 に答える
0

いくつかのこと。

それがスクリプトのインデント方法である場合、それは機能しません。インデントはpythonの中核であり、実質的な作業を行う前にそれを理解する必要があります。

入力が整数の場合、 を使用して自動的に変換されinput()ます。入力を求めているのは 1 回だけなので、両方で 2 つの変数を作成しないでください。

choice = input('Enter choice: ')

if-elif-elseここでステートメントを使用する必要がある場合。制御構造を有利に使用します。

if choice == 1:
  radius = input('Enter radius: ')
  print('Area of circle is ', (radius ** 2) * 3.14159)
elif choice == 2:
  side = input('Enter side length: ')
  print('Areas of square is ', side*side)

それは単純化されており、あなたが達成しようとしていることです。

それ以外は、やるべきではありませside= (int)radius = (int)。入力から値を取得する必要があるときに、変数に intを割り当てています。の乗算をサポートする演算子がないことがすぐにわかりますtype and type

于 2012-09-15T02:53:07.187 に答える