python找出所有重复数字的三位数(如110)注意重复数字(如111除外) ​要求打印所有满足条件的三位数及个数,每行打印五个

news2024/11/27 3:37:57

一、编程题目

        python找出所有重复数字的三位数(如110)注意重复数字(如111除外) ​要求打印所有满足条件的三位数及个数,每行打印五个。


二、实现思路

        要实现判断数字是否重复,脑袋里的第一反应就是使用循环,当时数字本身是不能循环的,因此需要将数字转为字符串,然后将字符串当成字符串数组进行循环,而且需要使用到双层循环,因为需要判断数字中的每一位是否跟数字中的其他位有重复,取数字中的每一位需要一个循环,跟数字中的其他位比较时,需要一个循环。

        还有一种实现思路就是,利用列表的count方法,可以计算某位元素在列表中的数量,从而判断是数字中是否有重复数字,某位数字的数量为2说明该数字中有重复数字,注意题目要求三位相同的数字除外。

       最后一种实现思路就是使用集合set的概念,我们都知道集合中是不能存在重复元素的,因此我们可以将字符串转为集合,由于集合不允许存在重复的元素,集合会自动把重复的元素去掉。因此,如果之后集合的大小和之前的大小是一样的,说明没有重复元素,如果小于之前的大小,说明存在重复元素。这是最简答的一种方法。

   


三、代码实现

        1、基于以上分析的第一种思路,使用双层循环实现

def is_repeat(num):
    num = str(num)
    count = 1 #记录重复次数
    for i in range(len(num)):
        for j in range(i+1,len(num)):
            if num[i] == num[j]:
                count+=1

    if count==2:
        return  True
    else:
        return False

   以上定义了一个判断是否有重复数字的函数,其中定义了一个count变量,目的就是为了统计重复数字的个数,因为题目要求不能三个数字重复,所以当count的值为2也就表示有2个数字重复了。

2、基于以上分析的第二种思路,使用列表的count方法实现。   此时只需要一个循环即可

def is_repeat(num):
    num = str(num)

    for i in range(len(num)):
        if num.count(num[i])==2:
            return True
            break
    else:
        return False

  其中使用到for else语句结构。当for循环中没有执行break语句则执行else部分的代码,否则不执行else部分的代码。

3、基于第三种思路实现,利用集合去重的功能,判断去重前后字符串长度的变化来判断是否有数字重复。

def is_repeat(num):
    num = list(str(num))#转为字符串类型的列表
    numset = set(num)#由列表转set ,set遇到重复的数字会自动去重

    if len(num)-len(numset)==1: #如果去重后的字符串长度比去重前的长度少一位,表示有2个数字重复
        return True
    else:
        return False

 如果去重后的字符串长度比去重前的长度少一位,表示有2个数字重复,刚好去掉了一个重复的,所以长度相差1。
哈哈,怎么样,发现这个方法是最简单了吧。所以在写程序前一定要先思考再动手。

4、主函数,调用之前的方法,循环判断所有的三位数是否有重复数字,有的话就打印出来,5个一行

if __name__ == '__main__':
    count = 0  # 计数器,用于每行打印五个数字
    for n in range(100,1000):
        if is_repeat(n):
            print(n, end=' ')
            count += 1
            if count % 5 == 0:  # 每行打印五个数字
                print()

四、测试结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/665294.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在办公套件 ONLYOFFICE 中使用 AI 插件:自动生成文本/图片、单词释义、翻译等

想必大家多少都体验过各种人工智能应用,它们跟办公套件结合简直就是打工人和学生们的王炸。除了在Office全家桶中可以使用AI插件,在开源办公套件 ONLYOFFICE 中也能使用它。 什么是 ONLYOFFICE ONLYOFFICE 是一个开源办公套件,由总部位于总部…

OpenMMLab-AI实战营第二期-课程笔记-Class 4:深度学习预训练与MMPretrain

Class4:深度学习预训练与MMPretrain 课程链接:深度学习预训练与MMPretrain_哔哩哔哩_bilibili 相关repo:open-mmlab/mmpretrain: OpenMMLab Pre-training Toolbox and Benchmark (github.com) 文章目录 Class4:深度学习预训练与MM…

系统工程 - 记录一次调试USB设备低功耗应用的过程

系统工程 - 记录一次调试USB设备低功耗应用的过程 文章目录 系统工程 - 记录一次调试USB设备低功耗应用的过程需求功耗测量方法分析功耗来源LED功耗MCU功耗板子漏电 软件改善功耗调整tinyusb协议栈源码降低主频电脑唤醒usb设备退出低功耗进入STOP模式 总结 需求 最近在同客户做…

【Python 随练】寻找完数

题目: 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如 61+2+3.编程找出 1000 以内的所有完数。 简介: 在本篇博客中,我们将解决一个数学问题:如何找出 1000 以内的所有…

Stable diffusion WebUI txt2img使用教学

本篇文章将深入探讨如何在Stable Diffusion WebUI上进行各项参数的调整。将以txt2img为主要讨论对象,探讨诸如基本设定Sampling method以及CFG scale等参数的调整,以及这些参数之间的相互影响。 对于还未安装Stable Diffusion WebUI的小伙伴&#xff0c…

httpd的安装和mysql数据库的安装方法

目录 一 安装httpd 1.下载httpd包模块apr和apr-u到opt目录 2. 解包 3. 把apr和apr-u包放在http的第三方模块scrilb目录中 4.进入httpd包的安装目录并安装依赖环境和进行编译安装 5. make -j 2 && make install 编译并安装 6.优化配置文件 7. 把httpd服务放在sy…

智能文档图像处理技术:解决大数据时代文档图像处理难题

智能文档图像处理技术:解决大数据时代文档图像处理难题 0. 前言1. 智能文档处理1.1 智能文档处理简介1.2 智能文档处理应用 2. VALSE 视觉与学习青年学者研讨会2.1 VALSE 20232.2 合合信息亮相 VALSE 2023 3. 版面分析技术3.1 版面分析3.2 文档还原 4. 其他相关智能…

Gamma:强大的AI制作PPT神器,用完再也回不去了!

看过许多 AI 制作 PPT 软件,最终还是被 Gamma 惊艳到。 Gamma 是一款基于人工智能技术的 PPT 制作工具,可以帮助用户轻松制作高质量的 PPT 演示文稿。 痛点解决 相比传统制作 PPT 方式,Gamma 可以解决哪些如下 7 个痛点: 一句话…

2016年全国硕士研究生入学统一考试管理类专业学位联考写作试题

2016年1月真题: 四、写作:第56~57小题,共65 分。其中论证有效性分析30 分,论说文35分。 56、论证有效性分析: 分析下述论证中存在的缺陷和漏洞,选择若干要点,写一篇600字左右的文章&#xff0…

2013年全国硕士研究生入学统一考试管理类专业学位联考写作试题

2013年1月真题: 四、写作:第 56~57小题,共65分。其中论证有效性分析30 分,论说文35 分。 56、论证有效性分析: 分析下述论证中存在的缺陷和漏洞,选择若干要点,写一篇600 字左右的文章,对该论证的有效性进行分析和评论…

Golang每日一练(leetDay0102) 删除无效的括号、累加数

目录 301. 删除无效的括号 Remove Invalid Parentheses 🌟🌟🌟 306. 累加数 Additive Number 🌟🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专栏 Python每日一练 专栏…

使用mpi并行技术实现wordcount算法

【问题描述】 编写程序统计一个英文文本文件中每个单词的出现次数(词频统计),并将统计结果按单词字典序输出到屏幕上。 注:在此单词为仅由字母组成的字符序列。包含大写字母的单词应将大写字母转换为小写字母后统计。 【输入形…

iPhone手机用户们在用的手机桌面便签推荐哪款?

iPhone手机的性能和外观设计是非常好的,很多人在工作和生活中都少不了它的辅助。有人在工作生活中担心会忘掉一些重要的事,在这种情况下可以用便签软件来帮自己把这些重要的事情记录下来。iPhone手机用户们在用的手机桌面便签推荐哪款? 其实…

加密与解密 调试篇 静态分析技术 (一)文件类型/窗口/定位

1.文件类型分析 逆向分析的第一步就是文件类型分析 文件使用什么写的 使用什么编译器编译的 是否被加密过 然后才能进入下一步 有很多工具可以进行分析 我选择exeinfo来查看 但是并不是工具就可以直接分析完成 因为有些会存在欺骗 把入口代码改造成和Visual C 6.0类似的…

04-闭包

闭包:函数嵌套函数,内部函数就是闭包,只有函数内部的子函数才能读取内部变量。 先上一个经典的闭包: function outerFun () {let a 10;function innerFun () {console.log(a);}return innerFun; } let fun outerFun(); fun();…

GPT提示词系统学习-第三课-规范化提示让样本走在提示词前

开篇 本教程将为您提供有关不同类型提示的术语及如何描述它们。尽管提示工程中已经有一些方法来形式化术语,但这个领域仍在不断发展,我们在这篇教程中将给到大家展示一种基于QA形式的通用的、标准的提示语写法。 提示的组成部分 以下是在一个提示中经常会出现的一些组成部…

Triton教程 --- 动态批处理

Triton教程 — 动态批处理 Triton 提供了动态批处理功能,将多个请求组合在一起执行同一模型以提供更大的吞吐量。 默认情况下,只有当每个输入在请求中具有相同的形状时,请求才能被动态批处理。 为了在输入形状经常变化的情况下利用动态批处理…

【PCB专题】Allegro 生成钻孔数据方法

生成Drill Symbol 选择Manufacture->NC->Drill Customization... 在Drill Customization中选择Auto generate symbols(防止钻孔未定义图形符号,选择后会自动产生图形符号)。然后在弹出的警告框中选择是(Y)。最后点击OK。 生成Drill Legend 选择Manufacture->NC-&…

什么是OTN——光传送网?

概要 在现代通信网络中,光纤技术已经成为主流,提供了高速、高带宽的数据传输能力。光传送网(Optical Transport Network,OTN)是一种基于光纤技术的传输网络,用于实现可靠、高效的光纤通信。本文将详细介绍O…

01 React入门、虚拟DOM

总结 一、React 入门 1.1 特点 高性能、声明式、组件化、单向响应的数据流、JSX扩展、灵活 1.2 React初体验 <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewpo…