[英]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.