2017-09-11 7 views
0

私は単純な平均計算をしようとしていますが、私はCMDを実行するのが最善です。 は、これまでのところ、これは私が私の質問がある引数付きのPythonスクリプトを実行する平均計算機

import sys 

myList = [a,b,c] 

myList[0] = int(sys.argv[1]) 

myList[1] = int (sys.argv[2]) 

myList[2] = int(sys.argv[3]) 

print 'Average:' + sum(myList)/len(myList) 

を出てきたきたものです。変数をリストに設定して値を与えるにはどうすればよいですか?

EDIT:

import sys 

    myList = [a,b,c] 

    a = int(sys.argv[1]) 

    b = int (sys.argv[2]) 

    c = int(sys.argv[3]) 

    print 'Average:' + sum(myList)/len(myList) 

いただきました。このコードで間違っていますか?

EDIT:

私は、ユーザーがプログラムに三つの値を渡すことによって、三つの入力引数を指定してこのプログラムを実行できるようにしたい:a、b、cの。

編集:

これが私の最後の編集で、誰もがこの

import sys 

a = float(sys.argv[1]) 
b = float(sys.argv[2]) 
c = float(sys.argv[3]) 
if a == str or b == str or c == str: 
    print 'Your input is invalid' 
else: 
    print 'Average: %.2f ' % ((a + b + c)/3) 
+0

私はわからないんだけどなぜあなたは 'myList = [a、b、c]'行を持ち、整数除算を使いたくないでしょうが、残りはうまくいくようです。何を聞いていますか? – Carcigenicate

+0

'myList = [int(i)for sys.argv [1:4]]' – CoryKramer

+0

@Carcigenicate私は自分のコードを編集しました。 – greatestever

答えて

0

で私を助けることができるあなたのような何かを探しています:

import sys 
my_list = [float(arg) for arg in sys.argv[1:]] 
print('Average: {}'.format(sum(my_list)/len(my_list)) 

[float(arg) for arg in sys.argv[1:]](リスト内包表記でありますリストを返すワンライナーfor)。それはfloatfloat(arg))にargsを解析し、sys.argvの2番目の要素からループします(最初はあなたの名前です)。

浮動小数点型は、分子と分母の両方が除算の結果、除算の結果がintであるため、強制されます。

はところで、PEP8必要snake_case(my_list、ないmyList)と、文字列の連結はなく、formatまたはjoin()と、+で行われるべきではありません。

+0

私のコードを編集しました。 – greatestever

1

空のリストを作成し、メソッドappendを使用することができます。

3/2は、Python 2では1に等しいので、浮動小数点数を扱う必要があります。

floatと文字列を連結して%またはformatを使用することはできません。ここで

は、あなたのコードは修正後です:

my_list = [] 
my_list.append(float(sys.argv[1])) 
my_list.append(float(sys.argv[2])) 
my_list.append(float(sys.argv[3])) 
print 'Average: %s' % (sum(my_list)/len(my_list)) 

またはshorlty:

my_list = map(float, sys.argv[1:]) 
print 'Average: %s' % (sum(my_list)/len(my_list)) 

それとも、別の変数に引数を解凍したい場合:

a, b, c = map(float, sys.argv[1:]) 
print 'Average: %s' % ((a + b + c)/3) 
+0

私が与えられたタスクは変数としてa、b、cを入れる必要があります。このコードベースを編集すると心配しないでください。 – greatestever

+0

@greatestever例を追加しました –

+0

コードから入力番号が無効でエラーメッセージが表示された場合の追加方法を追加しました。再度、感謝します – greatestever