简体   繁体   English

python 2.7.3中的函数和参数

[英]Functions and parameters in python 2.7.3

In my Computer Science class, I am just starting to learn about Functions and parameters in python.在我的计算机科学课上,我刚刚开始学习 Python 中的函数和参数。 Right now my instructor is making us learn parameter passing.现在我的老师正在让我们学习参数传递。 Instead of typing a huge summarization of my program I just retyped the assignment guide down below.我没有输入我的程序的大量摘要,而是重新输入下面的作业指南。

Description: In this program the user will have to option of entering a charge, entering a payment or displaying the balance on their credit card.说明:在此程序中,用户必须选择输入费用、输入付款或显示信用卡余额。 Allow the user to indicate their choice by entering a code at the keyboard.允许用户通过在键盘上输入代码来表明他们的选择。

Use the following function names:使用以下函数名称:

  • enterValue the user enters a value enterValue 用户输入一个值

  • addCharge the value passed to the function is added to the balance addCharge 将传递给函数的值添加到余额中

  • addPayment the value passed to the function is subtracted from the balance addPayment 从余额中减去传递给函数的值

  • showBalance the current balance on the credit card is displayed showBalance 显示信用卡上的当前余额

Have the user enter the following codes for the appropriate actions:让用户为适当的操作输入以下代码:

  • "C" for entering charges “C”表示输入费用

  • "P" for entering payments “P”用于输入付款

  • "B" for showing the balance “B”显示余额

  • Allow the entry of transactions until "Z" is entered允许输入交易,直到输入“Z”

Program程序

balance = 0
def enterValue ():
    enter = input ("Enter a value.")
    return enter

def addCharge (enter,balance):
    balance = balance + enter
    return balance

def addPayment (enter,balance):
    balance = balance - enter
    return balance
def showBalance ():
    print "Your balance is... ", balance


transaction = raw_input ("Enter C for charges, P for payments, and B to show your balance. ") 
enterValue ()
while transaction != "Z":


    if transaction == "C":
        balance = addCharge(enter,balance)
        showBalance()        
    elif transaction == "P": 
        balance = addPayment (enter,balance)
        showBalance()
    elif transaction =="B":
        balance = enterValue()
        showBalance()
    transaction = raw_input ("Enter C for charges, P for payments, and B to show your balance. ") 

Output输出

Enter C for charges, P for payments, and B to show your balance. P

Traceback (most recent call last):
  File "/Users/chrisblive/Downloads/Charge_Braverman-2.py", line 26, in <module>
    balance = addPayment (enter,balance)
NameError: name 'enter' is not defined

(My problem is that my value inside of enterValue() is not being defined.) (我的问题是我在enterValue()值没有被定义。)

The main charge of the exercise is to understand passing parameters to functions.练习的主要任务是了解将参数传递给函数。 So just pass all needed variables in the functions to it!所以只需将函数中所有需要的变量传递给它! Approximately you can say that all functions have their own namespaces an if you want to use a value of another level in it, you have to pass it as a parameter and return it if you want to reuse it in a lower level.大概你可以说所有函数都有自己的命名空间,如果你想在其中使用另一个级别的值,你必须将它作为参数传递,如果你想在较低级别重用它,则必须返回它。

For example:例如:

###   Level "enterValue"   ###
def enterValue():
    return float(raw_input("Enter a value: "))
### End Level "enterValue" ###

###   Level "addCharge"   ###
def addCharge(enter, balance):
    balance = balance + enter
    return balance
### End Level "addCharge" ###

###   Level "showBalance"   ###
def showBalance(balance):
    print "Your balance is %f" % balance
### End Level "showBalance" ###

### Level "Mainlevel" ###
# This is where your program starts.
transaction = None
balance = 0.0
while transaction != "Z":
    transaction = raw_input("Enter C for charges, P for payments, and B to show your balance.\nEnter Z to exit: ").upper()

    if transaction == "C":
        enter = enterValue()
        balance = addCharge(enter, balance)
        showBalance(balance)
    elif transaction == "P":
        balance = addPayment(enter, balance)
        showBalance(balance)
    elif transaction == "B":
        showBalance(balance)
### End Level "Mainlevel" ###

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM