python代码:编写一个可接受任意n个参数(参数为任意数据类型),判断并输出其中包含数字的参数

直接上代码

import re
def text(*acc):
    for i in acc:
        if type(i) == int or type(i) == float:
            print(i)
        elif type(i) == str:
            if re.sub("\D", "", i) != "":
                # 在个字符串中找到非数字的字符(正则表达式中'\D'表示非数字),
                # 并用""(空)替换,然后返回的就是只剩下数字的字符串,若此时只剩空,那么就没有数字。
                print(i)
        elif type(i)==list or type(i)==dict or type(i)==set or type(i)==tuple:
            for a in i:
                if hit(a)==1:
                    print(i)
                    break#避免多次打印列表

def hit(n):
    if type(n) == int or type(n) == float:
        return 1
    elif type(n) == str:
        if re.sub("\D", "", n) != "":
            # 在个字符串中找到非数字的字符(正则表达式中'\D'表示非数字),
            # 并用""(空)替换,然后返回的就是只剩下数字的字符串,若此时只剩空,那么就没有数字。
            return 1
    else:
        return 0
text(1,"huh","fjiis21",[1,2,"赵四"],{1,2,"dhu"},("w","dhui"),{"dhuh","d"},("d","di3"))
  • 上例运行结果如下:
  • 在这里插入图片描述