我有一个程序可以检查社会保障数量是否有效。现在,程序是一个很大的功能,它逐步检查我为几个异常输入的数字。
我想将这个大功能分成几个不同的功能,但我不知道怎么也不知道如何连续调用所有函数,他们将依赖于之前的函数结果。我要试着说明它是怎么样的:
#i want to make this into a separate function
def numberchecker(number):
if number > 15:
print('bad')
#i want to make this into a separate function
number1 = number.replace('-', '')
number2 = number1.replace(' ', '')
#i want to make this into a separate function
month= int(number1[2:][:2])
if month > 13:
print('very bad')
当一些函数依赖于彼此的变量时,我该怎么做:/
答案 0 :(得分:1)
你的第一部分已经是一个功能,但会混淆数字和字符串:
def check_num(num):
return num <= 15
你的第二部分是一个字符串处理函数:
def process_num(num):
return str(num).replace("-", "").replace(" ", "")
和第三个进入布尔函数
def correct_month(str_num):
return 1 <= str_num[2:4] <= 12
现在将它们串在一起:
if check_num(num):
str_num = process_num(num)
if not correct_month(str_num):
print('very bad')
else:
print('bad')
您尝试做的关键部分是在函数末尾return
一个值(在这些情况下,两个布尔值和一个字符串),因此其他函数可以继续使用它。
答案 1 :(得分:0)
如果你所做的只是验证,那么所有函数都返回True或False,例如:
def numberchecker (number):
return number > 15
然后你可以这样做:
all([numberchecker, current_month, ....])