-1

ユーザーが任意の数字を入力し、それらの数字の合計を推測するプログラムを作成する必要があります。

数字を合計して、彼の推測と比較するにはどうすればよいですか?

私はこれを試しました:

userNum = raw_input("Please enter a number:\n")

userGuess = raw_input("The digits sum is:\n")

if sum(userNum, userGuess):
    print"Your answer is True"
else:
    print "Your answer is False"

そしてそれはうまくいきませんでした

4

5 に答える 5

2

ここに 2 つの問題があります。

  • raw_input()整数を返すのではなく、文字列を返します。文字列を追加して int を取得することはできません。文字列を整数に変換する方法を見つけてから、それらを追加する必要があります。
  • あなたは十分な人を使いsum()ながら使っています。+

もう一度やり直して、結果を返してください。エラーメッセージと何が起こったと思うかを忘れずに含めてください。

于 2013-11-05T09:35:08.767 に答える
2

あなたが Python を初めて使用し、基本を読んだと仮定すると、制御フロー ステートメントを使用して合計と推測を比較します。

これが 100% 正しいかどうかはわかりませんが、自由に編集してください。彼の(仮定の)初心者レベルに従ってそれをコーディングしました。これは、メソッド、while ループ、raw_input、および制御フロー ステートメントを学習したことを前提としています。はい、コメントに記載されているようにもっと簡単な方法がありますが、彼が勉強したとは思えませんmapコードは次のとおりです。

def sum_digits(n):
    s = 0
    while n:
        s += n % 10
        n /= 10
    return s
sum_digits(mynumber)
mynumber = int(raw_input("Enter a number, ")) 

userguess = int(raw_input("Guess the digit sum: "))
if sum_digits(mynumber) == userguess:
    print "Correct"
else:
    print "Wrong"

メソッドのこの回答の功績。

Python での数字の合計方法

于 2013-11-05T09:22:03.907 に答える
1

基本的に、これにはジェネレーター関数を使用します

取得した文字列を反復処理しraw_input('...')、単一の整数のリストを作成します

このリストは、次を使用して要約できます。sum

ジェネレーターは次のようになります。

sum([ int(num) for num in str(raw_input('Please enter a number:\n')) ])

ジェネレーターは for ステートメントの前に要素のリスト (したがってリスト ブラケット) を作成するため、次のように double を使用することもできます。

[ 2 * int(num) for num in str(raw_input('Please enter a number:\n')) ]

[ int(num) for num in str(123) ]結果として[1,2,3]

しかし、

[ 2 * int(num) for num in str(123) ]結果として[2,4,6]

于 2013-11-05T09:53:59.507 に答える
1
  1. まずint(raw_input("Please enter a number:\n"))、入力が整数を返すようなものを使用する必要があります。
  2. sum を使用する代わりに、+ を使用して 2 つの整数の合計を取得できます。入力が整数であるため、これは機能します。
于 2013-11-05T09:49:13.137 に答える