1

ユーザーから指定された値を追加できる最初のPython計算機を作成しようとしています。問題は、追加する値がいくつかある場合があることです。つまりa + b、追加するだけではないため、ユーザー入力がどこにあるかa + b + d + g + h + ...までの範囲を定義しました。nn

ここで問題となるのは、ユーザーが範囲内の値を指定5した場合、その範囲内のすべての値をマップして、追加する値を入力する方法を教えてください。

コード:

 def main():
    print("how many no.s are we dealing with?");
    n=int(input(""));
    for i in range(n):
        print("addition:");

簡単に言うと、ユーザーが最初に追加する値の数を入力してから、電卓が追加するために入力するすべての値を入力する必要があります。

これは、ユーザーが3つの数値の範囲を持っている場合、ユーザーは[a + b + c]最初3のプロンプトを入力し、次にa, b, c各プロンプトに値を入力して合計を算出するようなものです。

4

1 に答える 1

0
def main():
    n=int(input("how many no.s are we dealing with?"))
    result = 0
    for i in range(n):
        value = float(input('enter next number to add'))
        result += value
    print('the result is {0}'.format(result))

の欠如に注意してください;

これがどのように機能するかは、結果が0に初期化されることです。その後、ループが繰り返されるたびに、ユーザーは数値を求められます。次に、その数値が結果に追加されます。


ただし、もっと簡単な方法があります。

sum_string = input('please enter a sum. for example: "1 + 2 + 10 ..."') #1
result = sum([float(i) for i in sum_string.split('+')])                 #2
print('the result is {0}'.format(result))                               #3

これがどのように機能するか:

1行目:ユーザーに文字列を入力して保存するように依頼します

2行目:あなたはたくさんのことをします...私はそれを少しずつ調べます:

  • sum_string.split('+')ユーザーが入力した文字列を取得してリストに変換します。例えば:1+2+ 45'.split('+') => ['1','2',' 45']
  • 上記の例から続ける:[float(i) for i in ['1','2',' 45']] => [1,2,45] これはリスト内包と呼ばれます。それは素晴らしく、完全に調べる価値があります
  • 最後sum([1,2,45に])=> 48`

3行目:結果を出力します。あなたがそれで何をしたいのかよくわかりません

注:これは、現状では負の数では機能しませんが、そうするように適合させることができます...

于 2012-11-13T09:50:05.987 に答える