2014-10-27 160 views
0

我有这个程序,我想要使用这些函数来请求高度,宽度和长度,并将它们作为单独的变量,以便我可以使用它们来绘制龟图形。此外,使用我的getColor函数,我想要返回垃圾箱,并且可以单独调色,以便我可以将它们应用于龟图形。我对参数感到困惑;他们会在这里有用吗?返回函数中的变量

def main(): 

    print ("The bin dimensions are: ",(getDim())) 
    numofcans = getCans() 
    print ("You are recycling ",numofcans,"cans.") 
    print("Your bin color is ",getColor()) 


def getDim(): 

    height = int(input("Enter the bins height (40 to 60): ")) 
    width = int(input("Enter the bins width (40 to 60): ")) 
    length = int(input("Enter the bins length (40 to 60): ")) 
    while height and width and length not in range(40,61): 
     print("You entered a wrong value") 
     height = int(input("Enter the height (40 to 60: ")) 
     width = int(input("Enter the width(40 to 60: ")) 
     length = int(input("Enter the length (40 to 60: ")) 
    if height and width and length in range(40,61): 
     return height, width, length 

def getCans(): 

    cans = int(input("Enter the amount of cans (10,1000): ")) 
    if cans in range(10,1001): 
     return cans 
    while cans not in range(10,1001): 
     cans = int(input("Invalid number, please enter the amount of cans (10,1000): ")) 
     return cans 

def getColor(): 
    bincolor = int(input("Color menu \n 1 = 'blue' \n 2 = 'red' \n 3 = 'green' \n 4 = 'magenta' \nPick the bin color: ")) 
    while bincolor not in range(1,5): 
     bincolor = int(input("Color menu \n 1 = 'blue' \n 2 = 'red' \n 3 = 'green' \n 4 = 'magenta' \nPick the bin color: ")) 
    while bincolor in range(1,5): 
     if bincolor == 1: 
      bincolor = "blue" 
     elif bincolor == 2: 
      bincolor = "red" 
     elif bincolor == 3: 
      bincolor = "green" 
     elif bincolor == 4: 
      bincolor = "magenta" 


    cancolor = int(input("Color menu \n 1 = 'blue' \n 2 = 'red' \n 3 = 'green' \n 4 = 'magenta' \nPick the can color: ")) 
    while cancolor not in range(1,5): 
     cancolor = int(input("Color menu \n 1 = 'blue' \n 2 = 'red' \n 3 = 'green' \n 4 = 'magenta' \nPick the can color: ")) 

    while cancolor in range(1,5): 
     if cancolor == 1: 
      cancolor = "blue" 
     elif cancolor == 2: 
      cancolor = "red" 
     elif cancolor == 3: 
      cancolor = "green" 
     elif cancolor == 4: 
      cancolor = "magenta" 
     return bincolor, cancolor 






main() 

回溯:

>>> 
Enter the bins height (40 to 60): 45 
Enter the bins width (40 to 60): 46 
Enter the bins length (40 to 60): 47 
The bin dimensions are: (45, 46, 47) 
Enter the amount of cans (10,1000): 101 
You are recycling 101 cans. 
Color menu 
1 = 'blue' 
2 = 'red' 
3 = 'green' 
4 = 'magenta' 
Pick the bin color: 1 
Color menu 
1 = 'blue' 
2 = 'red' 
3 = 'green' 
4 = 'magenta' 
Pick the can color: 3 
Your bin color is ('blue', 'green') 
>>> 
+0

如果你想检查范围内的高度(40,61)和范围内的宽度(40,61)和范围内的长度(40,61)',该代码是否没有这样做;你的if语句本质上是检查高度,宽度和长度是否在范围内(40,61) - 基本上你可能想要的长度,但是对于h和w,它只是检查它们的值是否是'truthy' 。 – 2014-10-27 16:50:45

回答

0

你已经返回元组,所以你可以简单的调用函数,并将其解压到新的变量,而不是将它们打印的:

def main(): 
    height, width, length = getDim() 
    numofcans = getCans() 
    bincolor, cancolor = getColor() 
    # go on to do rest of program 
    ... 
+0

这帮助了很多,有谁知道我可以如何使用turtle图形来使用getDim函数绘制带有turtle图形的bin的底部? – 2014-10-27 17:23:00

+0

@john diggle我不确定,我从来没有用过乌龟。你最好在一个新的SO问题中提出这个问题(所以问题应该只关注一个想法)。同时尽量使用这个答案来解决它,然后发布你在新问题中尝试过的东西! – flakes 2014-10-27 17:28:56