Python 的基本运用 大一

用python 请统计在某个给定范围[m,n]的所有整数中,数字3出现的次数


def count_digit_3(m, n):
    # 初始化数字3出现的总次数为0
    count = 0
    
    for i in range(m, n + 1):
        # 将整数转换为字符串
        str_num = str(i)
        
        # 统计数字3出现的次数
        count += str_num.count('3')
    
    return count

上述代码定义了一个名为count_digit_3 的函数,接受两个参数 m和n。它遍历从m到n的所有整数,并将每个整数转换为一个字符串。对于每个字符串,我们使用Python内置的字符串方法count 来计算其中数字 3出现的次数,最后将这些计数相加并返回结果。

c=0
m=1
n=100
for i in range(m,n+1):
    c+=str(i).count('3')
print(c)
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7423373
  • 这篇博客你也可以参考下:Python实现有n个整数,使其前面各数向后移m个位置
  • 除此之外, 这篇博客: python期末习题整理中的 6-1 python函数:求m到n之和 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 本题要求实现一个计算m~n(m<n)之间所有整数的和的简单函数。

    函数接口定义:
    函数接口:
    sum(m,n)
    m<n,m和n可以是负数

    裁判测试程序样例:

    /* 请在这里填写答案 */
    在这里给出函数被调用进行测试的例子。例如:
    m=int(input())
    n=int(input())
    print(sum(m,n))
    输入样例:
    在这里给出一组输入。例如:

    -1
    5
    输出样例:
    在这里给出相应的输出。例如:

    14

    def sum(m,n):
        result=0
        if m<n:
            for i in range(m,n+1):
                result+=i
            return result
        else:
            return "输入有误!"
    
  • 以下回答由chatgpt基于相关博客总结生成:

    我可以解决该问题。

    解决方案如下:

    1. 根据指定的范围 [m, n] 使用 range() 函数生成一个整数列表,遍历该列表,对于其中每一个整数,将其转换为字符串,再使用字符串 count() 方法,统计其中数字 3 的出现次数,并将这些次数累加起来。

    代码实现如下:

    def count_digit_3(m, n):
        count = 0    # 统计数字 3 出现的总次数
        for num in range(m, n + 1):
            for digit in str(num):
                if digit == '3':
                    count += 1
        return count
    
    1. 可以使用 Python 的 list comprehension 来生成一个包含 m 到 n 范围内所有整数的列表,对该列表进行遍历,并使用类似于 1 中的方法统计数字 3 出现的次数。

    代码实现如下:

    def count_digit_3(m, n):
        nums = [num for num in range(m, n + 1)]
        count = 0
        for num in nums:
            for digit in str(num):
                if digit == '3':
                    count += 1
        return count
    

    建议使用方法 2,因为使用了 list comprehension,代码更加简洁,而且运行速度更快。