尽管满足条件(即,字符串值符合预期),但未调用函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尽管满足条件(即,字符串值符合预期),但未调用函数相关的知识,希望对你有一定的参考价值。

Python的新手,只是自学并试图建立一个有用的函数库和调用它们的方法。

我将其用作一种“ if x =” n“ goto:y”替换形式,以便不断循环问题,直到输入了可用的答案为止。

由于某种原因,它只会循环一次,如果仍然得到一个无法使用的答案,尽管“ error_c”字符串等于“ y”,它也会报告错误并退出。

下面的相关代码块;请在明信片上回答

#defies strings for error checking
error_c=""
x=""
y=""
z=""

def ages():
    age_str = input("How old are you and your two siblings?: ")
    error_c="n"             #Establishing/re-establishing the error check string
    tokens = age_str.split() 
    try:
        x = int(tokens[0])   
        y = int(tokens[1])
        z = int(tokens[2])
    except IndexError:       #various error checks
        error_c="y"             
        x, y, z = "", "", ""
        print("You must enter 3 values")
    except NameError:
        error_c="y"
        x, y, z = "", "", ""
        print("You must enter 3 values")
    except ValueError:      
        error_c="y"
        x, y, z = "", "", ""
        print("Invalid integer format")
    return (x, y, z, error_c)

x, y, z, error_c = ages()

if error_c == "n":      #only printing if error checks haven't retunred a positive
    print (" ")
    print ("x = "+str(x))
    print (" ")
    print ("y = "+str(y))
    print (" ")
    print ("z = "+str(z))
elif error_c =="y":
    x, y, z, error_c = ages()
elif error_c =="":
    print ("String values not returned from ages function")
else:
    print ("unknown error")

print (error_c)     #Checking that the correct value for looping is in play

python的新手,只是自学并试图建立一个有用的函数库和调用它们的方法。我将其用作一种“ if x =“ n” goto:y“替换形式,以保持...

答案

您那里没有任何循环结构。您调用一次ages(),如果失败,则再次调用它,然后您就没代码了。

另一答案

如果要连续执行ages()直到获得可接受的输入,则可以将代码包装在while循环中,并且仅在满足适当条件时终止。例如:

以上是关于尽管满足条件(即,字符串值符合预期),但未调用函数的主要内容,如果未能解决你的问题,请参考以下文章

Sails js findOne()返回结果,尽管不满足所有条件

Python调用C的SDK出现返回值不符合预期以及Segmentation fault

SQL查询满足两个条件的重复记录只显示2条记录的方法

js过滤数组中都为空的对象几种方式

继续调用函数,直到满足条件 Python

尽管 Firebase 深层链接成功打开应用程序,但未调用“继续 userActivity”方法