从屌丝到高手,三道Python编程题,九种解题算法,看看你属于哪一类

python编程:从入门到精通,python入门编程100例 Python它是一种直译式,面向对象,解释式的脚本语言。它和Java,C/C++,Go语言一样都是高级语言,但由于它是解释式语言,所以运行速度会比Java,C/C++等语言慢(虽说隔壁Go也是解释式语言,但比它快很多)python画雪人。不过任何事物有利也有弊,Python因为自身携带了许多库(如:OS、TCP、Urllib、Trutle),语法简单,第三库也有很多(如飞机大战所需的pygame),所以被称为胶水语言,同时也深受开发者青眯。Python之父:Guido van Rossum,荷兰人。 阅读详情

大家在平时刷题的过程中,不仅仅要注意理解问题的本质,而且要在解决问题的基础上,优化自己的解题思路和程序。

今天,小编就带领大家来进行三道简单问题的解决,从屌丝解法到进阶解法再到高手解法,一步步的带领大家来提升自己的解题技巧和编程思路。

第一题 二进制中的1的个数

1).题目描述:

给定一个非负数,请编写一个函数,该函数以整数作为输入,并返回该数字的二进制表示形式中等于1的位数。例如,对于整数14来说,它的二进制形式为01110,所以它的二进制表示形式中等于1的位数就是3。

2).屌丝解法

对于这道题来说,屌丝解法该如何解决呢?

  • 首先设置结果result=0,然后判断输入num是否大于0;

  • 如果大于0,就让输入的整数num取余2,如果取余2等于1,则result加1;

  • num不断的除以2;

  • 输出最终的结果result。

3).进阶解法

进阶的解法中,可以利用python内置的bin函数,将十进制转化为2进制;

然后将二进制数值转化为字符串的形式

然后不断循环,判断字符串的每一位是不是1。

4).高手解法

高手解法中,不仅可以利用bin函数,而且在特定字符统计上也可以利用count函数。充分利用python的内置函数,可以帮助我们在解题过程中大大的节省时间和程序。

第二题  矩形转成正方形

题目描述:将一个二维的矩形切割成为标准的正方形,用户将获得两个维度信息(lng和wdth)请返回每个正方形大小的集合。如下图所示。

上图中的一个3x5(lng=3,wdth=5)维的二维矩阵,可以分割为一个3x3的矩阵,一个2x2的矩阵和两个1x1的矩阵。所以对于输入的参数3,5。返回的结果为[3,2,1,1]。

1).屌丝解法

初级的解法应该如何来对待这个问题呢?

  • 首先是判断lng和wdth哪个比较短,较短的边可以直接构成一个正方形;

  • 然后较长的边减去较短的边;

  • 不断的重复循环上述的操作,直到某一个边长小于等于1。

2).进阶解法

对于进阶解法,可以采用递归算法来解决该题,例如对于sqInRect(3,5)可以分解为下面的解题思路。

可以看到,程序可以通过不断的递归循环来解决,通过递归循环,可以减少程序量。

3).高手解法

对于高手解法,直接采用lambda匿名函数,一行代码就可以解决问题,大大减少了程序的编程量,让程序具有了简洁的python语言特色。

第三题  你的名字有多性感?

1).题目描述

编写一个程序sexy_name,根据以下条件计算一个人的名字的性感程度。

有一个预装的字母分数字典,称为SCORES。将名称中的字母(不区分大小写)加起来以获得性感的分数。忽略其他字符。其中SCORES为:

程序必须根据“性感分数排名”图表返回姓名的性感程度,其中,score为名字的得分,例如:

示例:sexy_name('SAMANTHA') = 'THE ULTIMATE SEXIEST'、sexy_name('you') = 'VERY SEXY'。

2).屌丝解法

这道题非常容易理解,只需要按部就班就可以写出来最简单的代码。

  • 首先将name全部大写,设置总得分score=0;

  • 然后循环计算总的得分情况;

  • 最后根据总得分来返回姓名的性感程度。

3).进阶解法

对于屌丝解法中,可以看到通过for循环来计算总得分让程序看起来非常的low,所以我们来优化这个问题,通过sum函数来一行代码求取综合得分。

4).高手解法

在高手解法中,有两个点值得我们学习:

利用SCORES.get(x, 0)来获取字典中的数值,如果字典中不存在键值x,则返回默认值0。从而有效的规避了name中无效的字符。

利用sum([score >= 61,score >= 301,score >= 600])求和来作为索引。例如我们的socre为320分,则[score >= 61,score >= 301,score >= 600] = [1,1,0],则sum([score >= 61,score >= 301,score >= 600])=2,对应返回的姓名性感程度为“VERY SEXY”。巧妙的利用求和来作为索引,非常值得大家学习。


总结

通过以上三道题目的讲解,可以看到,虽然都是解决一道问题,但是程序所体现出来的个人编程能力却有着巨大的差别!

所以只有不断的优化,打磨自己的编程技巧,才能让自己不断向着高手迈进!

欢迎大家在留言区吱一声,如何才能提高自己的Python技巧!

菜鸟编程大本营,已经正式上线

专注于分享趣味的编程技巧,不限于Java, Python ,Go, Javascript等语言,让菜鸟爱上编程,进阶成为高手,欢迎关注。

菜鸟编程本营,从菜鸟进阶高手

爆款文案

点这里,获取新手福利!!
WblockCloneObjects克隆一个图纸内的实体包括块参照,同名块参照的处理 public static void HeBingTu2(double lieJu, List<string> filePaths) { Document doc = Application.DocumentManager.MdiActiveDocument; Database db = doc.Database; using (DocumentLock docLock = doc.Lock... 阅读详情

相关推荐

【PADS-开发指南】

馒头破戒大师

sinat_23896491的博客 3224

PAT基础编程题刷题笔记:从7-1到7-38,我的C++解题思路与避坑总结

本文分享了从7-1到7-38的PAT基础编程题C++解题思路与避坑总结,涵盖了语法陷阱、算法优化、调试技巧和代码重构等实战经验。通过具体案例和测试方法,帮助读者高效刷题并提升编程能力,特别适合准备PAT考试的编程爱好者。

weixin_33725239的博客 374

算法面试八股文『 基础知识篇 』

个人整理的算法面试基础知识八股文,内容较详细。

SG_teresa's blog 4338

编程解题技巧总结

1.判断奇偶数 奇数:a%2==1 偶数:a%2==0 奇数:a&1==1 偶数:a&1==0 2.链表中倒数第k个节点 双指针法 3.反转链表 三指针滑动pPrev -> pNode -> pNext; pNext=pNode->next; pNode->next=pPre...

bestrivern的博客 965

android usb读写,安卓(Android)下如何开发USB NFC读写器app

对安卓工程师来说,在安卓下使用USB设备需要了解很多硬件的内容,这可能会导致工程周期的延长或者app的不稳定。为了将这种风险降到最低,友我科技发布了NFC读写器在安卓下的sdk,使用NFC读写器的类接口,安卓工程师就可以直接调用NFC读写器了,简单可靠。NFC读写器的安卓库文件为:yoworfidreader.jar在ADT工程中导入yoworfidreader.jar库文件,即可在工程中引用NF...

weixin_36433781的博客 823

手把手教你用VL822-QFN88设计一个支持PD快充的Type-C四口HUB(附原理图要点)

本文详细介绍了基于VL822-QFN88芯片设计支持PD快充的Type-C四口HUB的完整流程,包括芯片选型、系统架构设计、原理图要点、PCB布局及固件配置。特别适合硬件工程师和电子设计爱好者,帮助实现高速数据传输与快速充电的多端口扩展方案。

weixin_30832405的博客 516

while循环第二阶段作业

sum++;cout

2301_76584740的博客 1834

颠覆性创新的测量框架与跨领域实证分析

颠覆性创新作为科技发展的重要驱动力,其核心在于实现知识体系的范式转换。从技术原理看,这类创新通常具备知识替代、网络重构和跨领域渗透三大特征,通过引用网络分析和文本挖掘等方法可量化评估其影响力。在工程实践中,CD指数、DI指数等测量工具帮助研究者识别具有突破潜力的成果,而深度学习等新兴技术进一步提升了评估精度。当前AI、半导体等领域的热门技术发展表明,模块化架构和产业协同能有效促进颠覆性创新。面对全球范围内创新颠覆性下降的趋势,优化科研评价体系、构建跨学科协作网络成为关键应对策略。

weixin_29735807的博客 322

python程序编程代码大全,python编程代码详解

大家好,本文将围绕python程序编程代码大全展开说明,python编程游戏代码是一个很多人都想弄明白的事情,想搞清楚python代码大全简单需要先了解以下几个事情。

chatgpt001的博客 5万+

2025年“区块链技术”职业院校技能大赛赛后复盘与总结(必看)

记录一次2025年“区块链技术”职业院校技能大赛的参加经验总结与赛后复盘

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 1992

Python入门实战:Python生物信息学编程基础

本文旨在为生物学背景的研究人员和对生物信息学感兴趣的程序员提供一个全面的Python生物信息学编程入门指南。我们将从Python基础知识开始,逐步深入到生物信息学特定的工具和技术,最终达到能够独立开发生物信息学分析程序的水平。Python编程基础生物信息学常用数据结构和算法DNA和蛋白质序列分析基因组数据处理生物信息学数据可视化Biopython库的使用实际项目案例背景介绍:概述文章目的、范围和预期读者核心概念与联系:介绍Python和生物信息学的基本概念。

AI架构师小马 1514

python安装方法_Python入门基础教程(非常详细)

Python 是一门开源免费、通用型的脚本编程语言,它上手简单,功能强大,坚持「极简主义」。Python 类库(模块)极其丰富,这使得 Python 几乎无所不能,不管是传统的 Web 开发、PC 软件开发、Linux 运维,还是当下火热的机器学习、大数据分析、网络爬虫,Python 都能胜任。这套 Python 基础教程不是教科书,不会玩弄概念,而是力求口语化和通俗化,让读者尽快入门。如果有小朋...

weixin_39813200的博客 2611

反爬虫:对抗最新反爬技术 Cloudflare详解

本文针对Cloudflare最新反爬机制提供完整解决方案,覆盖TLS指纹、行为轨迹、设备指纹等检测场景。文章首先分析Cloudflare的三重检测体系(TLS指纹、行为指纹、设备指纹)及其拦截表现,随后提出四种绕过方案:1)使用curl_cffi模拟浏览器TLS指纹;2)通过undetected-chromedriver移除自动化特征;3)Playwright结合stealth插件模拟人类行为;4)动态请求调度策略。重点推荐轻量级Python方案curl_cffi和浏览器自动化方案Playwright-st

数据知道的博客 4626

python哪种算法效率最高_从屌丝到高手,三道Python编程题,九种解题算法,看看你属于哪一类...

大家在平时刷题的过程中,不仅仅要注意理解问题的本质,而且要在解决问题的基础上,优化自己的解题思路和程序。今天,小编就带领大家来进行三道简单问题的解决,从屌丝解法到进阶解法再到高手解法,一步步的带领大家来提升自己的解题技巧和编程思路。第一题 二进制中的1的个数1).题目描述:给定一个非负数,请编写一个函数,该函数以整数作为输入,并返回该数字的二进制表示形式中等于1的位数。例如,对于整数14来说,它的...

weixin_35888365的博客 252

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

牛逼,我用Python实现哈哈镜捉弄女友,女友气的拉黑了我

在游乐场或者商场中,大家可能会见到过哈哈镜,哈哈镜通过凹凸不平的镜面,将人物或者是物件在镜面显示中进行扭曲,让人看起来非常的搞笑。对于哈哈镜的成像效果,有两种的方式,一个是下图中间的缩小的...

cainiao_python的博客 515

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【2024】Python入门,详细基础教程,零基础入门,详细图文

Python入门基础介绍

weixin_42399800的博客 17万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

python入门基础(完整)

python入门基础(完整) 安装及配置 使用的编程地址:编程地址 python基础相关文件安装: 链接:https://pan.baidu.com/s/1ZAhPIJ4_KAgWRHzX1lD3dQ 提取码:nxis pycharm配置环境 将原本pycharm中不可见的显示出,需要勾选以下三个:...

weixin_55154866的博客 2万+

Python入门教程(非常详细)从零基础入门到精通,看完这一篇就够了

本文罗列了了python零基础入门到精通的详细教程,内容均以知识目录的形式展开。

2301_76161259的博客 3万+

Python的基础编程

python的基础了解和认识

TYM121380的博客 1万+

神仙级Python入门教程(非常详细),从零基础入门到精通,从看这篇开始

看这篇就够了

z099164的博客 4万+

10年程序员职业生涯感悟—写给正在迷茫的你

希望能带给大家不一样的参考。或者能提前预防,少走弯路!

pythonandaiot的博客 1万+

Python编程_Lesson003_字符串

编码格式计算机是由美国人发明的,所以一开始只能显示英文字符串,是ASCII格式编码。后来由于全球各国都在使用计算机,又新出了Unicode编码格式。但是Unicode非常庞大,在本地运行还好,但是对于网络传输简直是太浪费空间了,所以又出现了utf(包括utf-8、utf-16、utf-32)编码格式。 现在一般是使用utf-8编码格式进行网络传输,然后到本机后再解析成Unicode编码,这样就完美

艺术人生的专栏 1525

Burpsuite 指纹特征绕过

需要高版本 17 + 的 burp 运行插件,可 bypass 网站流量设备的检测,正常抓包。未使用插件前,burp 指纹特征被识别,抓包被拦截。

Javachichi的博客 6642

自学Python (超详细)

综上所述,Python凭借其简洁易读的语法、免费开源的特性、强大的库支持、跨平台兼容性以及灵活的面向对象特性,成为了现代编程环境中最受欢迎的语言之一。Python内置了一个array模块,可用在Python中创建数组,虽然数组保留了Python列表的大部分特征,可以包含重复项、有序且可变,但不能存储不同数据类型的元素。Python列表是一种内置数据结构,是包含在方括号【】的元素集合,它们具有许多独特的属性,使它们与其他的数据结构不同。查看的是变量存储的数据的类型,变量是没有类型的,而存储的数据是有类型的。

m0_74824617的博客 1万+

Python入门基础知识总结(赶紧收藏)

Python入门基础知识总结(赶紧收藏)

Python84310366的博客 9万+

Python 语法及入门(超全超详细)

定义函数"""这是一个问候函数"""# 定义函数 def greet(name) : """这是一个问候函数""" return f"Hello, {name }!" # 调用函数 message = greet("Alice") print(message) # Hello, Alice!

2301_78096295的博客 5372
上一篇: 手把手教你用Pycharm连接远程Python环境
下一篇: 刚刚,微信官宣5000W个微信红包封面,速度撸!!
菜鸟学Python
博客等级 码龄9年 8061粉丝 571原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值