Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.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-函数返回值_Python_Python 3.x_Return_Boolean - Fatal编程技术网

Python-函数返回值

Python-函数返回值,python,python-3.x,return,boolean,Python,Python 3.x,Return,Boolean,这个例子只是一个基本的程序-我是一个新的程序员-学习和实验,而不是乱搞。。目前在Python3.6IDE和PyCharm上进行测试-为双间距代码道歉-但是没有它看起来很混乱 寻找从函数返回值的指导 已经尝试了几十种不同的方法/搜索了论坛,但这个外行能理解的最接近的答案是我需要使用返回值,否则它将被遗忘。。因此,在不同的位置添加了打印(年龄验证,“示例测试值…”),但在函数之外没有返回任何内容 已尝试返回布尔值/整型值/字符串值,并对每个变量进行调整-无。。在函数//或//首次在函数中引用之前添加

这个例子只是一个基本的程序-我是一个新的程序员-学习和实验,而不是乱搞。。目前在Python3.6IDE和PyCharm上进行测试-为双间距代码道歉-但是没有它看起来很混乱

寻找从函数返回值的指导

已经尝试了几十种不同的方法/搜索了论坛,但这个外行能理解的最接近的答案是我需要使用返回值,否则它将被遗忘。。因此,在不同的位置添加了打印(年龄验证,“示例测试值…”),但在函数之外没有返回任何内容

已尝试返回布尔值/整型值/字符串值,并对每个变量进行调整-无。。在函数//或//首次在函数中引用之前添加了默认的age\u verification=False变量。。不影响返回值,除非IDE未声明“未解析引用”

尝试了一行一行的python visualizer-但再次尝试-age_验证值在退出函数后立即消失:-(

==================================================================

使用1个单一功能

def age_veri(age, age_verification) :

  if age < 18 :

    age_verification = False

    print(age_verification, " is false .. Printed to test variable ..")

    return age_verification

  elif age >= 18:

    age_verification = True

    print(age_verification, " is True.. Printed to test variable ..")

    return age_verification

  return age_verification # ( -- have tested with/without this single-indent line & with/without previous double-indent return age_verification line.)

age=int(input("Enter Your Age : ")

age_verification = False # ( -- have tried with / without this default value)

age_veri(age, False)

if age_verification is False:

  print("You failed Verification - Age is Below 18 .. ")

elif age_verification is True:

  print("Enter Website - Over 18yrs")

else:

  print(" Account not Verified .. ")
def age\u veri(age,age\u验证):
如果年龄<18岁:
年龄验证=假
打印(年龄验证“为假..打印到测试变量..”)
返回年龄验证
elif年龄>=18岁:
年龄验证=真
打印(年龄验证“为真..打印到测试变量..”)
返回年龄验证
退货年龄验证(使用/不使用此单缩进行以及使用/不使用以前的双缩进退货年龄验证行进行测试)
年龄=整数(输入(“输入您的年龄:”)
age_verification=False#(-已尝试使用/不使用此默认值)
年龄验证(年龄,假)
如果年龄验证为假:
打印(“您未通过验证-年龄低于18岁…”
如果年龄验证为真:
打印(“进入网站-超过18年”)
其他:
打印(“未验证帐户…”
==================================================================

同一示例-使用两个函数

def age_variable(age):

   if age < 18:

      age_verification = False

      print (age_verification, " printing here to use value and help test function..")

      return age_verification

   elif age >= 18:

      age_verification = True

      print (age verification, " printing here to use value and help test function..")

      return age_verification

   return age_verification (tried with and without this line - single indent - same level as if / elif) 

def are_verified(age_verification):

   if age_verification is False:

      print("Age Verification Failed .. ")

   elif age_verification is True:

      print("Visit Website .. ")

   else:

      print("Verification Incomplete .. ")

age = int(input("Enter Your Age : ")

age_variable(age)

are_verified(age_verification)
def age_变量(age):
如果年龄<18岁:
年龄验证=假
打印(年龄验证,“在此处打印以使用值和帮助测试功能…”
返回年龄验证
elif年龄>=18岁:
年龄验证=真
打印(年龄验证,“在此处打印以使用值和帮助测试功能…”
返回年龄验证
退货期限检验(使用和不使用此行进行试验-单缩进-与if/elif相同级别)
def已验证(年龄验证):
如果年龄验证为假:
打印(“年龄验证失败…”
如果年龄验证为真:
打印(“访问网站”)
其他:
打印(“验证不完整…”
年龄=整数(输入(“输入您的年龄:”)
年龄变量(年龄)
是否验证(年龄验证)
==============================================================

任何建议都是值得赞赏的-浪费了今天大部分时间,我的头撞到了墙上..并提前道歉..知道这将是非常基本的-但似乎使用了与其他人相同的格式:-)


谢谢

打印
不会返回值,它只会将值显示到
标准输出
或控制台。如果您想返回带条件的值,了解范围是很有帮助的。您关于返回变量的注释将被“遗忘”正确。当函数执行时,函数定义且未返回的变量将消失:

def my_func(var1):
    var2 = var1
    var3 = 5
    return var3

print(my_func(1), var2)
print
语句将抛出一个
NameError
,因为
var2
不是在函数外部定义的,也不是返回的。例如,您可能需要这样的内容:

def age_verify(age):
    if age < 18:
        print("Failed Verification")
        return False
    else:
        print("Verification Complete")
        return True

# Call and assign to var
age = int(input("Enter Your Age : ")
age_verification = age_verify(age)
我们将返回的
var3
分配给如下变量:

myvar = my_func(5)
如前所述,实际返回的不是名称
var3
,而是值

myvar = my_func(5)
print(var3)
我会得到一个
namererror
。解决这个问题的方法是:

var3 = my_func(5)
因为现在
var3
是在全局范围内定义的。否则,我必须编辑我的函数以使
var3
全局:

def my_func(var1):
    global var3
    var2 = var1
    var3 = 5
    # The return statement is then a bit redundant

my_func(5)

print(var3)
# prints 5 in global scope

希望这比我原来的答案更清楚一点

要保留返回值,必须将其保存到名称(或变量,如果您愿意)。因此,如果您有
def add(x,y):返回x+y
,那么要使用它,您需要执行类似
z=add(1,6)
的操作。然后
7
将被“保存”到
z
。感谢您的时间..非常感谢..我添加了年龄验证=真(或)年龄验证=假-是“年龄验证”不是名称..?还是仅在计算后返回值(如加/减/除)与其从False->True重新分配一个值,我不确定我是否理解您刚才所做的第二个注释,但对于
age\u verification
:如果函数中定义了一个名称,那么一旦函数结束,它就会消失。请参阅C.Nivs的回答,这就是“范围”这是一个很好的答案,但我会稍微编辑一下,以明确说明即使您在定义了
my_func
之后编写了
print(var3)
,它仍然不会起作用可能会让新手感到困惑。返回值附带的名称不会被返回(除非您使用了
global
),非常感谢C.Nivs和@HFbronning。老实说,非常感谢您的时间和帮助。我是一名新手-通过YouTube和我的“Python傻瓜指南”学习书。有时这些来源并不能清楚地解释一切。祝你成功和好运:-)不客气:-)如果你觉得C.NIV回答了你的问题,你可以在他们的答案的上/下投票下面打勾接受它。@hfbronning我在我的答案中添加了你的建议,谢谢
def my_func(var1):
    global var3
    var2 = var1
    var3 = 5
    # The return statement is then a bit redundant

my_func(5)

print(var3)
# prints 5 in global scope