非常简单的python函数

时间:2014-01-09 18:44:33

标签: python

def myfun(x,y):
    z=x+y
    Print("my x is", x)
    Print("my y is", y)
    Print("my z is", z)

myfun(1,2)
myfun(3,4)
myfun(5,6)
myfun(x,y)

这是我想要做的事情的想法。第一个函数的3个调用是预先确定的,而在第4个调用中,我想提示用户输入,无论如何我可以用1个函数(不改变格式)来做这个,因为最终格式需要...

my x is 1
my y is 2
my z is 3
my x is 3
my y is 4
my z is 5
my x is 5
my y is 6
my z is 7
my x is (userinput)
my y is (userinput)
my z is ...

我能用一种功能正确地做到这一点吗?

3 个答案:

答案 0 :(得分:2)

def myfun(x=0, y=0):
   z = x + y
   Print("My x is", x)
   Print("My y is", y)
   Print("My z is", z)

myfun(1,2)
myfun(3,4)
myfun(5,6)
# here you can make a input for x and y and then you type cast the string in int
x = int(raw_input('Input x: '))
y = int(raw_input('Input y: '))
myfun(x,y)

如果使用Python 3.x,请使用input()而不是raw_input()

x = int(input('Input x: '))
y = int(input('Input y: '))
myfun(x,y)

答案 1 :(得分:1)

使用普通值作为参数无法实现此目的,引用局部变量永远不会做任何额外的事情。但是,您可以接受提供值的函数。然后传递一个返回整数的函数而不是传递一个整数,而不是改变myfun做I / O,你只需传递一个执行I / O的函数。

myfun(lambda: 5, lambda: 6)
# I'm gonna assume Python 3
myfun(input, input)

您需要稍微改写函数,因为您希望输入在精确的时间点发生。像这样:

def myfun(x_fun, y_fun):
    print("my x is", end=" ")
    x = x_fun()
    print("my y is", end=" ")
    y = y_fun()
    z=x+y
    print("my z is", z)

答案 2 :(得分:0)

在一行中:

#myfun(x,y)
myfun(input("What is value of x? "),input("What is value of y? "))