2012-02-16 21 views
2

まず、私はあなたに警告します、私はこれで新しいですので、私と一緒にご負担ください。私は次のプログラムを作成しました(もちろん、クラスのために)、値が負であってはならない場合、引き出し計算が負の数を吐き出すという点を除いてすべてが機能します。私が間違っていることを皆さんに見せてもらえますか?私はprocess withdrawl内のあなたのif文がprocess_withdrawalpython演算結果に負の符号を付ける

if previous_balance < transaction_amount: 
+0

'コード== "W" またはコードが== "W"'と同じである場合'(" w "、" W ")でコード化した場合。意味は、コードがそのタプルにある場合です。あなたの質問に必ずしも関連しているわけではありませんが、それは知っておくと良い秘訣です –

+0

いくつかの入出力を含めてください。同様に、いくつかの特定の値を入力として入力すると、出力はどのようになりますか? – Neko

答えて

3

あなたの呼び出しはtransaction_amountとして最初の引数とprevious_balanceとして、第2が、関数の宣言を持っているべきだと思う事前

#define the main 
def main(): 
    name=input('Enter the customer\'s name: ') 
    account_id=input('Enter the account ID: ') 
    code=input('Enter the transaction code:') 
    previous_balance=float(input('Enter the previous balance: ')) 
    transaction_amount=float(input('Enter the transaction amount: ')) 

    if code == "w" or code == "W": 
     process_withdrawal (transaction_amount, previous_balance) 
    else: 
     if code == "d" or code == "D": 
      process_deposit (transaction_amount, previous_balance) 
     else: 
      process_invalid_transaction_code (previous_balance) 

#define process withdrawal 
def process_withdrawal (previous_balance, transaction_amount): 
    if previous_balance >= transaction_amount: 
     print('You have entered an invalid transaction amount') 
     balance=previous_balance 
     print_balance (balance)     

    else: 
     balance=previous_balance-transaction_amount 
     print_balance (balance)   

#define process deposit 
def process_deposit (previous_balance, transaction_amount): 
    balance=previous_balance+transaction_amount 
    print_balance (balance) 

#define invalid transaction code 
def process_invalid_transaction_code (previous_balance): 
    print('You have entered an invalid transaction code.') 
    balance=previous_balance 
    print_balance (balance) 

#define print balance 
def print_balance(balance): 
    print('Your current balance is :', format(balance, '.2f')) 

main() 
+0

うん。それが問題でした!本当にありがとう! :-) – Chris

+0

ちなみに、このような問題は、クラス(学校の種類ではなく、Pythonクラス)を使用すると、あまり頻繁ではないようにすることができます。 'deposit'メソッドと' withdraw'メソッド(それぞれが金額を取る)と 'balance'データメンバを持つ' Account'クラスを定義した場合、これは起こりそうもありません。 – Malvolio

0

感謝第1引数にprevious_balance、第2引数にtransaction_amountがあります。

はこれを試してみてください:

if code == "w" or code == "W": 
    process_withdrawal(previous_balance, transaction_amount) 
+0

私はそれを元にしようとしましたが、すべてがうんざりでした(つまり、無効なオプションが計算され、有効なオプションがエラーになりました)。私は全く理由が分からない。 – Chris

+0

他の回答をチェックしてください。あなたの議論が混ざり合っています。あなたが引数を変更したら、私はあなたが 'previous_balance moesef

+0

に変更しなければならないと信じています。 :-) – Chris

1

あなたは後方の引数を渡しています。

process_withdrawal(TRANSACTION_AMOUNT、previous_balance)

DEF process_withdrawal(previous_balance、TRANSACTION_AMOUNT):

+0

これは助けてくれてありがとう! :-) – Chris

関連する問題