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