检查字符串是否为九位数,然后退出python中的函数

检查字符串是否为九位数,然后退出python中的函数,python,Python,我在python中有一个函数,它返回字符串(文本)的不同输出。我有不同的部分,我应该检查字符串,如果字符串是9位数字或包含9位数字,那么我需要在函数中执行,以在该点退出函数 我是python的新手,如果达到标准,我不知道如何在特定点退出函数。 比如说 s = 'oodf 191876320x sd' print(any(char.isdigit() for char in s)) 这将检查字符串是否有数字。我需要添加另一个标准,以确保有相邻的9个数字。如果True,则在该点退出该函数 我正在处

我在python中有一个函数,它返回字符串(文本)的不同输出。我有不同的部分,我应该检查字符串,如果字符串是9位数字或包含9位数字,那么我需要在函数中执行,以在该点退出函数 我是python的新手,如果达到标准,我不知道如何在特定点退出函数。 比如说

s = 'oodf 191876320x sd'
print(any(char.isdigit() for char in s))
这将检查字符串是否有数字。我需要添加另一个标准,以确保有相邻的9个数字。如果
True
,则在该点退出该函数

我正在处理的代码是从图像中读取数字(有三种不同的操作情况) 这是我的尝试,我欢迎任何想法

import pytesseract, cv2, re

def readNumber(img):
    img = cv2.imread(img)
    gry = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    txt = pytesseract.image_to_string(gry)
    if bool(re.search(r'\d{9}', txt)):
        return re.findall('(\d{9})\D', txt)[0]
    blur = cv2.GaussianBlur(img, (3,3), 0)
    txt = pytesseract.image_to_string(blur)
    if bool(re.search(r'\d{9}', txt)):
        return re.findall('(\d{9})\D', txt)[0]
    thr = cv2.adaptiveThreshold(gry, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 51, 4)
    txt = pytesseract.image_to_string(thr, config="digits")
    if bool(re.search(r'\d{9}', txt)):
        return re.findall('(\d{9})\D', txt)[0]
    '''
    
    try:
        txt = pytesseract.image_to_string(gry)
        #txt  = re.findall('(\d{9})\D', txt)[0]
    except:
        thr = cv2.adaptiveThreshold(gry, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 51, 4)
        txt = pytesseract.image_to_string(thr, config="digits")
        #txt  = re.findall('(\d{9})\D', txt)[0]

    return txt
'''
    
# M5Pr5         191876320
# RWgrP         202131290
# 6pVH4         193832560
print(readNumber('M5Pr5.png'))
print(readNumber('RWgrP.png'))
print(readNumber('6pVH4.png'))

相关问题在该链接上

要退出函数,您的意思是从调用函数的位置返回吗

如果是,则使用

if len(stringVarible)==9:
   return

使用正则表达式。如果字符串包含9个相邻数字,则下面的正则表达式将匹配


\d{9,}

当条件满足时,您可以简单地从函数返回:

# Suppose the string is stored in text variable

if len(text) == 9:
    return

如果你的代表级别相当高,你应该知道这里不太欢迎只提出需求的问题。请在问题中使用一些标点符号,并共享一个最小的可复制代码。当前代码很复杂,如果存在,我只需要一点。python中是否有Exit函数?您想要什么,如何计算字符串中的数字,或者如何退出函数?我已经更新了这个问题。很抱歉给你带来了困惑。我已经添加了代码到现在,我欢迎任何想法来提高我的学习技能。非常感谢。我使用了这个
import re s='oodf 191876320x sd'打印(bool(re.search(r'\d{9}',s))
。请注意,前面的逗号说明您是否允许匹配“至少”9个相邻数字,或者如果您不使用它,则只允许匹配“精确”9个相邻数字。我已更新了问题。请你看一下密码,告诉我我走的路对不对?