![](/img/trans.png)
[英]How do I pass variables from one function to another and use them in conditional statements in python?
[英]How do I get my variables from one function to another?
def getInt():
while True:
width = int(input("Enter width (1 - 60):"))
if width > 1 and width < 60:
break
else:
print("Please enter a valid input")
while True:
height = int(input("Enter width (1 - 20):"))
if height > 1 and height < 20:
break
else:
print("Please enter a valid input")
return width, height
def calcPerimeter(width, height):
perimeter = (2 * (width + height))
return perimeter
def calcArea(width, height):
area = width * height
return area
def main():
print('Results: {}'.format(getInt()))
print('The perimeter is {}' .format(calcPerimeter(width, height)))
print('The area is {}' .format(calcArea(width, height)))
main()
当我跑步时,它说:
追溯(最近一次通话):
主要()
print('周长为{}'.format(calcPerimeter(width,height)))
NameError:名称“宽度”未定义
也许您可以尝试将main()更改为此
def main():
width, height = getInt()
print('Results: {}, {}'.format(width, height))
print('The perimeter is {}' .format(calcPerimeter(width, height)))
print('The area is {}' .format(calcArea(width, height)))
您需要先将getInt()返回特定的变量,然后再传递给另一个函数
其他方法是在getInt()函数中调用calculatePerimeter和calculateArea,这是示例
def getInt():
while True:
width = int(input("Enter width (1 - 60):"))
if width > 1 and width < 60:
break
else:
print("Please enter a valid input")
while True:
height = int(input("Enter width (1 - 20):"))
if height > 1 and height < 20:
break
else:
print("Please enter a valid input")
return calcPerimeter(width, height), calcArea(width, height)
def calcPerimeter(width, height):
perimeter = (2 * (width + height))
return perimeter
def calcArea(width, height):
area = width * height
return area
def main():
perimeter, area = getInt()
print('Perimeter is {}, area is {}'.format(perimeter, area))
main()
一种方法是使用全局关键字。 另一种方法是从函数返回所需的变量并将其保存在全局范围内。
您应该阅读这篇文章,并通常研究可变范围的规则。 作为程序员,这是必不可少的知识。
请参阅此(链接)[ http://python-textbok.readthedocs.io/en/1.0/Variables_and_Scope.html]以了解为什么将main
函数更改为Po的答案会导致代码正确运行。
在函数calcPerimeter
和calcArea
中定义的变量对main
函数不可见/不可访问,因为它们的作用域不同。
#I think i have resolved your problem.In your case it was returning list/tuple .you have to convert it into simple variable
def getInt():
while True:
width = int(input("Enter width (1 - 60):"))
if width > 1 and width < 60:
break
else:
print("Please enter a valid input")
while True:
height = int(input("Enter height (1 - 20):"))
if height > 1 and height < 20:
break
else:
print("Please enter a valid input")
return width,height
def calcPerimeter(width, height):
hw=width+height
perimeter = 2*hw
return perimeter
def main():
width,height= getInt()
p=calcPerimeter(width, height)
print('The perimeter is %s'%p)
a=calcArea(width, height)
print('The area is %s'%a)
main()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.