python求某个数字出现的次数


n,x=input().split()
n=int(n)
counter=0;
for i in range(n+1):
    b=i+1
    b=list(str(b))
    if x in b:
        counter+=1
print(counter)

img


上面为代码和题目要求,试了几个数据明明能输出正确结果却wrong

你的代码错的原因是,b = i+1这里你多计一次,另外,如果有重复的数,你只计一次,比如22中2有两个,你只计一次

n, x = input().split()
n = int(n)

print((''.join(map(str, range(1, n + 1)))).count(x))

list=[int(s)for s in input().split()]
list.sort()  # 将列表进行排序
sum=[]#定义一个用来记录每个数出现次数的列表
for i in range(101):
    sum.append(0)#对sum列表进行初始化
for i in range(len(list)):#对列表list进行遍历
    sum[list[i]]+=1#对于出现的数字i,他的计数数组sum[i]+1
t=list[-1]#对列表list进行去重
for i in range(len(list)-2,-1,-1):
    if t==list[i]:
        list .remove(list[i])
    else :
        t=list[i]
for i in range(101):#从0到100遍历
    if sum[i] >= 2:#当数字i出现的次数大于等于2时
        print(i,"occurs",sum[i],"times")
    elif sum[i]==1:#当数字i只出现一次时
        print(i,"occurs 1 time")
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7687099
  • 这篇博客也不错, 你可以看下Python语音基础操作--2.4语音信号生成
  • 你还可以看下python参考手册中的 python- 定义扩展类型:已分类主题- 终结和内存释放
  • 除此之外, 这篇博客: python搜索指定类型文件&批量移动文件程序中的 2.代码示例 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    分别定义一个搜索函数和一个批量移动函数。
    搜索函数需要传入的参数为root:要搜索的目录;target为目标文件类型(即扩展名)。
    搜索函数输出 由目标文件path+文件名构成的列表。

    批量移动函数传入的file_list参数是一个列表,形如搜索函数的输出结果,元素为带有path的文件名。dest为需要移动到的目录。

    import os, shutil
    
    file_list = []
    
    # 搜索函数
    def search_file(root, target):
        for file in os.listdir(root):
            path = root
            try:
                path = path + os.sep + file
                if os.path.isdir(path):
                    search_file(path, target)
                else:
                    if file.split('.')[-1] == target:
                        file_list.append(path)
            except PermissionError as e:
                print(e)
        return file_list
    
    
    # 批量移动函数
    def move_file(file_list, dest):
        for file in file_list:
            try:
                shutil.move(file, dest)
            except shutil.Error as e:
                print(e)
    
    
    # 写入目标参数root,
    def main():
        root = "D:\\pic1"
        target = "png"
        dest_dir = "D:\\ABC\\pic2"
        result = search_file(root, target)
        print(result)
        move_file(result, dest_dir)
    
    
    if __name__ == '__main__':
        main()
    

    在这里插入图片描述

    如图,目标文件被成功搜索出并转移:
    在这里插入图片描述

    • 其中搜索函数需要用到递归的写法,对文件夹中的不定数的文件夹进行遍历。
    • 且在其中使用到了异常处理的写法,是为了避免遇到不可访问的系统文件夹,导致程序运行中断。(除C盘外,这样的文件夹通常不会在二级中,比如在D盘的根目录下可能会有。这里的异常处理写法可以有效解决该问题。)
  • 您还可以看一下 机工社华章IT老师的Python重构课程中的 2.12识别代码中的坏味道小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    以上代码没有明显的问题,可以运行正常。针对输入数据的格式和要求,程序并没有特殊限制,可以适应各种类型的数字列表。如果要进一步优化,可以使用Python内置的count()函数来实现,代码如下:

    def count_occurrences(num_list, num_to_count):
        return num_list.count(num_to_count)
    
    list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 5, 5, 5]
    print("数字5的出现次数为:", count_occurrences(list1, 5))
    

    这样做的好处在于,使用内置函数可以提高代码的执行效率,并且减少出错的可能性。同时,更加简洁明了,易于阅读和理解。

    参考资料:

    • Python官方文档:https://docs.python.org/zh-cn/3/tutorial/datastructures.html#more-on-lists
    • 菜鸟教程:https://www.runoob.com/python/att-list-count.html

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^