Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.6在导入和;无”;出现_Python_Python 3.x - Fatal编程技术网

Python 3.6在导入和;无”;出现

Python 3.6在导入和;无”;出现,python,python-3.x,Python,Python 3.x,我对编程相当陌生,我很难理解到底发生了什么。我试图导入random并稍后在函数中使用它,但它只是返回0,我假设它只是我设置的原始变量,并且我想要使用的函数没有被正确使用或调用 当我在shell中运行它时,会出现一个none,从我读到的内容来看,这意味着我没有从某个东西返回任何(或无)值。或者类似的东西 当程序运行时,“What is number1+number2”显示为0+0。现在,我已经检查了我的文件,random.py就在那里。我尝试在几个不同的点导入random,看看这是否是问题所在。我

我对编程相当陌生,我很难理解到底发生了什么。我试图导入random并稍后在函数中使用它,但它只是返回0,我假设它只是我设置的原始变量,并且我想要使用的函数没有被正确使用或调用

当我在shell中运行它时,会出现一个none,从我读到的内容来看,这意味着我没有从某个东西返回任何(或无)值。或者类似的东西

当程序运行时,“What is number1+number2”显示为0+0。现在,我已经检查了我的文件,random.py就在那里。我尝试在几个不同的点导入random,看看这是否是问题所在。我尝试了random、random.randomint和当前存在的一个

我对这一切都还很陌生,我觉得这是我现在应该知道的基本知识,但我现在很难理解

代码如下:

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)

将本地名称分配为代码> >编号和No.2>代码>,不是在<代码>主< /COD>方法中的全局变量或局部变量(Python参数在引用调用的C++意义上不被引用,当您指派一个名称时,它将本地重新绑定,不改变调用方)。使其返回以下值:

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()