每当我运行我创建的计算器程序时,它工作正常,但文本"无"一直出现,我不知道为什么.这是代码:
def add():
print 'choose 2 numbers to add'
a=input('add this')
b=input('to this')
print a+b
return menu()
def sub():
print 'choose 2 numbers to subract'
a=input('subract this')
b=input('from this')
print b-a
return menu()
def menu():
print "hello, Welcome"
print "these are your options"
print "1. add"
print "2. sub"
print menu()
loop=2
def sys():
while loop==2:
a=input("please choose")
if a==1:
print add()
elif a==2:
print sub()
else:
return menu(),sys()
print sys()
Run Code Online (Sandbox Code Playgroud)
这是输出:
hello, Welcome
these are your options
1. add
2. sub
None <-------------------------(this is what I'm talking about)
please choose
Run Code Online (Sandbox Code Playgroud)
如果它帮助这里的任何人都是我完成的计算器的代码(当我通过它时看起来很乱,但是当你复制和粘贴它时它会起作用)
def add():
print 'choose 2 numbers to add'
a=input('add this')
b=input('to this')
print a+b
def sub():
print 'choose 2 numbers to subract'
a=input('subract this')
b=input('from this')
print b-a
def mul():
print 'choose 2 numbers to multiply'
a=input("multiply this")
b=input("by this")
print b*a
def div():
print 'choose what numbers your want to divide'
a=input('divide this')
b=input('by this')
print a/b
def exp():
print 'choose your number you want to exponentiate'
a=input('multiply this')
b=input('by the power of this')
print a**b
def menu():
print "hello, Welcome"
print "these are your options"
print "1. add"
print "2. sub"
print "3. mul"
print "4. div"
print "5. expo"
print "0. to end"
menu()
def sys():
while True:
a=input("please choose")
if a==1:
add()
menu()
elif a==2:
sub()
menu()
elif a==3:
mul()
menu()
elif a==4:
div()
menu()
elif a==5:
exp()
menu()
elif a==0:
break
else:
return menu(),sys()
sys()
Run Code Online (Sandbox Code Playgroud)
那是因为函数menu()没有返回任何东西,默认情况下python函数返回None
>>> def func():pass
>>> print func() #use `print` only if you want to print the returned value
None
Run Code Online (Sandbox Code Playgroud)
只需使用:
menu() #no need of print as you're already printing inside the function body.
Run Code Online (Sandbox Code Playgroud)
从和中sys()删除后的新版本.而不是在每个函数内部使用,只需在函数结尾处调用函数.return menu()add()sub()return menu()menu()while loop
def sys():
while True:
a = input("please choose")
if a == 1:
add() # call add(), no need of print as you're printing inside add() itself
elif a==2:
sub()
menu() # call menu() at the end of the loop
Run Code Online (Sandbox Code Playgroud)
while loop==2实际上loop==2首先评估表达式,如果是,True那么while loop继续其他的立即中断.在你的情况下,因为你没有改变loop变量的值,所以你可以简单地使用while True.
>>> loop = 2
>>> loop == 2
True
Run Code Online (Sandbox Code Playgroud)