Python 谁能帮我查一下这个密码吗
这个代码是为了给人的选择,给平均值,中位数,模式或退出,但我不能让选项1-4工作正常时会发生什么,他们选择该选项Python 谁能帮我查一下这个密码吗,python,python-3.x,Python,Python 3.x,这个代码是为了给人的选择,给平均值,中位数,模式或退出,但我不能让选项1-4工作正常时会发生什么,他们选择该选项 ans1=ans1 ans2=ans2 # define functions def average(num1, num2, num3, num4, num5, num6, num7, num8, num9, num10): """This function adds two numbers""" return total== num1, + num2, + num3
ans1=ans1
ans2=ans2
# define functions
def average(num1, num2, num3, num4, num5, num6, num7, num8, num9, num10):
"""This function adds two numbers"""
return total== num1, + num2, + num3, + num4, + num5, + num6, + num7, + num8, + num9, + num10 == ans1
total/ans1
def median(num1, num2, num3, num4, num5, num6, num7, num8, num9, num10):
"""This function subtracts two numbers"""
return total == num1 - num2 - num3 - num4 - num5 - num6 - num7 - num8 - num9 - num10 == ans2
total/ans2
def mode(num1, num2, num3, num4, num5, num6, num7, num8, num9, num10):
"""This function multiplies two numbers"""
return num1 * num2, num3, num4, num5, num6, num7, num8, num9, num10
def quit():
quit()
# This gives the user the options in a menu format
print("Select operation.")
print("1.average")
print("2.median")
print("3.Mode")
print("4.quit")
#this is where the user enters the number for what the user wants done
choice = input("Enter choice 1,2,3,4: ")
#################################################################
#this then asks the user for the 10 numbers
num1 = int(input("Enter first number: "))
num2 = int(input("Enter second number: "))
num3 = int(input("enter third number: "))
num4 = int(input("enter fourth number: "))
num5 = int(input("enter fith number: "))
num6 = int(input("enter sixth number: "))
num7 = int(input("enter seventh number: "))
num8 = int(input("enter eights number: "))
num9 = int(input("enter ninth number: "))
num10 = int(input("enter tenth number: "))
print(num1)
print(num2)
print(num3)
print(num4)
print(num5)
print(num6)
print(num7)
print(num8)
print(num9)
print(num10)
if choice == '1':
print (ans1, num1, num2, num3, num4, num5, num6, num7, num8, num9, num10)
def adding (num1, num2, num3, num4, num5, num6, num7, num8, num9, num10):
s = (num1 + num2 + num3 + num4 + num5 + num6 + num7 + num8 + num9 + num10)/10
print("this is what they add up to")
print(s)
return s
elif choice == '2':
print(ans2(num1, num2, num3, num4, num5, num6, num7, num8, num9, num10))
elif choice == '3':
print(num1,"*", num2, num3, num4, num5, num6, num7, num8, num9, num10,"=", multiply(num1, num2, num3, num4, num5, num6, num7, num8, num9, num10))
elif choice == '4':
quit()
我为您修复了代码的几个部分,并在注释中解释了我所做的事情。在这段代码中有几个问题需要解决,但我并没有全部解决。我解释了我所做的,所以你应该能够通过并修复它们,但是如果你有任何问题,请留下评论,我将尽可能多地解释。正如上面很多人所说,您应该学习python教程
因为我不认为这是一个家庭作业,但只是一些试图学习Python的人,我将部分展示如何做到这一点 首先,我们将把程序分成易于理解的函数,其基础是
showMenu()
函数:
def showMenu():
while True:
print("Select operation.")
print("1.average")
print("2.median")
print("3.Mode")
print("4.quit")
userInput = input()
请注意,此循环的条件始终为True
,因此无法转义。要添加一些逻辑,我们必须解析用户输入:
def showMenu():
while True:
...
userInput = input()
if userInput == "1" or userInput == "2" or userInput == "3":
# Do something
elif userInput == "4":
exit()
else:
print("Invalid input, try again")
现在,如果用户输入4
并且输入任何其他无效值,程序可以退出循环,程序只需再次显示菜单并要求用户输入值。现在让我们填写输入为1、2或3时的情况部分。我们编辑if语句以分离这些情况,并创建一个新函数来处理它们:
if userInput == "1":
showAverageMenu()
elif userInput == "2":
showMedianMenu()
elif userInput == "3":
showModeMenu()
elif userInput == "4":
exit()
else:
print("Invalid input, try again")
好的,我们下一步将创建showAverageMenu()
函数。但是,我们首先必须讨论如何处理用户输入。您这样做的方式是手动请求十个不同的输入值,并将它们存储在十个不同的变量名下。如果我们希望用户输入15个值、30个值或100个值,该怎么办?这将需要大量的重复编码。幸运的是,有一个更好的方法:我们将把用户输入存储在一个列表中。此列表可以根据用户需要任意大。因为我们要求用户输入数字的方式在三个不同的操作中是相同的,所以我们将创建一个每次都可以调用的函数。此函数将被称为getInput()
。此函数的逻辑如下所示:
def getInput():
userInput = None
inputList = []
print("Please enter an integer")
while userInput != "done" or len(inputList) == 0:
userInput = input()
...
print("'{}' is not an integer".format(userInput))
print("Please enter an integer")
if len(inputList) > 0:
print("Or type 'done' if you are finished")
return inputList
虽然没有这样做:
intValue=int(stringValue)
。但是,如果用户输入的不是数字而是一些非数字字符,则此函数将引发ValueError
。要处理这个问题,我们必须抓住错误
话够多了,让我们展示一些代码:
def getInput():
inputList = []
print("Please enter an integer")
while some_condition:
userInput = input()
try:
intValue = int(userInput)
inputList.append(intValue)
except ValueError:
print("'{}' is not an integer".format(userInput))
在这里您可以看到,我们尝试将用户输入转换为整数,但如果失败,将捕获ValueError
,并立即提醒用户应该输入一个数字。还请注意,此函数从名为inputList
的空列表开始,如果强制转换没有失败,该列表将被整数值填充。最后,请注意while循环的条件,到目前为止,它只设置为一些未定义的变量,但是期望的行为是什么?首先,输入列表必须至少包含一个元素,其次,用户必须发出信号,表示他们已完成输入值。在代码中,可以这样做:
def getInput():
userInput = None
inputList = []
print("Please enter an integer")
while userInput != "done" or len(inputList) == 0:
userInput = input()
...
print("'{}' is not an integer".format(userInput))
print("Please enter an integer")
if len(inputList) > 0:
print("Or type 'done' if you are finished")
return inputList
现在我们首先将userInput
设置为None
,这样我们就可以在条件语句中使用变量。此外,如果输入列表为空,我们将继续循环。最后,如果输入列表中确实包含数字,我们会告诉用户可以键入“done”退出循环,这反映在循环的条件中。如果用户完成了,我们将返回列表
现在我们已经创建了一个从用户检索输入的通用解决方案,我们必须定义实现这些操作的函数。让我们看看showAverageMenu()
:
正如您所看到的,解决方案非常简单。我们所要做的就是计算平均值并打印出来。要计算平均值,我们可以使用内置方法计算列表的总和,并将其除以列表的长度
现在,其他两种方法有点难,但留给读者作为练习;) 您应该首先清理代码示例。if-elif块中有一个函数定义(缩进错误)。代码中有很多错误。
ans1=ans1
和ans2=ans2
应该做什么?那num1*num2,num3,num4,num5,num6,num7,num8,num9,num10呢。它将只乘以前两个元素并返回一个元组。。。错误还在继续,我们可以提供帮助,但这意味着我们必须从Python的基础知识开始。有一个建议。专业提示:你几乎可以肯定你的标题是-5,这是100%的乞讨和0%的问题描述(我没有投票,为了它的价值)。嗨,Jurgy,我尝试了你的代码,但是我在第15行有一个错误。如果你告诉我你的第15行是什么,那会有所帮助,因为我的答案中的代码不是一个blob。此外,知道准确的错误会很有用。谢谢你的帮助,我只是想知道为什么它只打印数字,而不给我一个平均值
def showAverageMenu():
print("***Averaging***")
inputList = getInput()
avg = sum(inputList) / len(inputList))
print("The Average of")
print(inputList)
print("is: {}\n".format(avg)