Python 3.6在导入和;无”;出现
我对编程相当陌生,我很难理解到底发生了什么。我试图导入random并稍后在函数中使用它,但它只是返回0,我假设它只是我设置的原始变量,并且我想要使用的函数没有被正确使用或调用 当我在shell中运行它时,会出现一个none,从我读到的内容来看,这意味着我没有从某个东西返回任何(或无)值。或者类似的东西 当程序运行时,“What is number1+number2”显示为0+0。现在,我已经检查了我的文件,random.py就在那里。我尝试在几个不同的点导入random,看看这是否是问题所在。我尝试了random、random.randomint和当前存在的一个 我对这一切都还很陌生,我觉得这是我现在应该知道的基本知识,但我现在很难理解 代码如下:Python 3.6在导入和;无”;出现,python,python-3.x,Python,Python 3.x,我对编程相当陌生,我很难理解到底发生了什么。我试图导入random并稍后在函数中使用它,但它只是返回0,我假设它只是我设置的原始变量,并且我想要使用的函数没有被正确使用或调用 当我在shell中运行它时,会出现一个none,从我读到的内容来看,这意味着我没有从某个东西返回任何(或无)值。或者类似的东西 当程序运行时,“What is number1+number2”显示为0+0。现在,我已经检查了我的文件,random.py就在那里。我尝试在几个不同的点导入random,看看这是否是问题所在。我
import random
def main():
counter = 0
studentName = "NO NAME"
averageRight = 0.0
right = 0.0
number1 = 0
number2 = 0
answer = 0.0
studentName = inputNames(studentName)
while counter < 10:
getNumbers(number1, number2)
answer = getAnswer(number1, number2, answer)
right = checkAnswer(number1, number2, answer, right)
counter = counter + 1
averageRight = results(right, averageRight)
displayInfo(right, averageRight, studentName)
def inputNames(studentName):
studentName = input(print("Input your name: "))
return studentName
def getNumbers(number1, number2):
number1 = random.randrange(1, 500)
number2 = random.randrange(1, 500)
def getAnswer(number1, number2, answer):
print("What is the answer to the following equation?")
print(number1)
print("+")
print(number2)
answer = eval(input("What is the sum? "))
return answer
def checkAnswer(number1, number2, answer, right):
if answer == number1 + number2:
print("Right")
right = right + 1
else:
print("Wrong")
return right
def results(right, averageRight):
averageRight = right / 10
return averageRight
def displayInfo(right, averageRight, studentName):
print("Information for the student: ", studentName)
print("The number right: ", right)
print("The average right is: ", averageRight)
main()
随机导入
def main():
计数器=0
studentName=“没有名字”
平均亮度=0.0
右=0.0
数字1=0
数字2=0
答案=0.0
studentName=输入名称(studentName)
当计数器<10时:
getNumbers(number1,number2)
答案=获取答案(数字1,数字2,答案)
右=检查答案(数字1,数字2,答案,右)
计数器=计数器+1
averageRight=结果(右,averageRight)
displayInfo(右、AveragerRight、studentName)
def输入名称(学生名称):
studentName=输入(打印(“输入您的姓名:”)
返回学生姓名
def GetNumber(编号1、编号2):
number1=random.randrange(1500)
number2=random.randrange(1500)
def getAnswer(数字1,数字2,答案):
打印(“以下等式的答案是什么?”)
打印(编号1)
打印(“+”)
打印(编号2)
答案=评估(输入(“总和是多少?”)
回覆
def检查答案(数字1,数字2,答案,右侧):
如果答案==数字1+数字2:
打印(“右”)
右=右+1
其他:
打印(“错误”)
返回权
def结果(右,AveragerRight):
平均光=右/10
返回平均权
def displayInfo(右、平均、学生姓名):
打印(“学生信息:”,学生姓名)
打印(“右边的数字:”,右边)
打印(“平均右侧为:”,平均右侧为)
main()
对于您的None
问题,这一行是原因:
studentName = input(print("Input your name: "))
print
返回None
,并且input
接受一个参数,该参数是提示用户使用的字符串。您几乎肯定想要:
studentName = input("Input your name: ")
让输入
直接做提示工作
您总是看到什么是0+0?
的原因是此函数已中断:
def getNumbers(number1, number2):
number1 = random.randrange(1, 500)
number2 = random.randrange(1, 500)
将本地名称分配为代码> >编号和
def getNumbers():
number1 = random.randrange(1, 500)
number2 = random.randrange(1, 500)
return number1, number2
并在main
中分配它们,更改:
getNumbers(number1, number2)
致:
getNumbers()
没有return
语句,即使有,main()
中的getNumbers(number1,number2)
行也不会尝试将其返回值赋给任何变量。(顺便说一句,getNumbers()
不需要任何参数…它不需要知道任何关于number1
和number2
以前的值的信息。旁注:不要在这里使用eval
。为了安全起见,请使用ast.literal\u eval
,或者如果这些值无论如何都应该是整数,只需使用int
。您可能会发现获取头部的有用信息关于变量、参数等如何在Python中工作。非常感谢你们,我很感激。这非常有用。我不敢相信我在输入(打印)上搞错了(事情。这是超基本的。我应该认为我错过了函数的返回。让我明白的是,把变量放在主函数中。所有涉及的行话也让我陷入了一个循环。谢谢你帮我解决这个问题。
number1, number2 = getNumbers()