Python虽然入门容易,但是涉及的知识点非常多,而且技巧性很强!这些技巧就像一串一串的珠子,需要一些题目的不断的练手才能熟练掌握串联起来,把知识点掌握牢固!

今天我就精选了3道趣味的Python题目,大家一起动动手,练起来!

打开搜狗搜索APP,查看更多精彩资讯

1.字符串中的字符替换

字符串是Python中最基本也是最重要的知识点,下面这道题是关于字符串替换。看看菜鸟和高手是如何处理的:

题目:

创建一个函数,这个函数能把输入的字符串进行处理,并将返回替换了某些字符的字符串,规则如下如果一个字母是大写辅音,请将该字符替换为"Iron”。

如果字母是小写辅音或非字母字符,则对该字符不执行任何操作

如果一个字母是大写元音,请将该字符替换为"Iron Yard”。

如果一个字母是小写元音,请用"Yard”替换该字符。

测试用例

输入: "Hello WORLD!"

输出: "IronYardllYard IronIron YardIronIronIron!"

菜鸟解法:

高手解法:

def tiy_fizz_buzz(s):

return "".join(("Iron "*c.isupper() + "Yard"*(c.lower() in "aeiou")).strip() or c for c in s)

(代码可以左右滑动)

点评:

高手解法最巧妙不是用类似推到列表这样的方法来循环处理字符串,而且非常巧妙的用"Iron"*True 或者"Iron"*False,如果是前者则为字符串本身,而后者则为空""。然后在把两个字符串用+合成,再用or分类!完美把上面的if-elif-elif-else融合到了一行代码里面,确实不错!

2.趣味体重排序

老王在一个"胖子健身俱乐部",每到月底老王就很担心,因为每个月都会公布一份成员体重列表,每个月他都是列表中的最后一个,这意味着他是最重的。于是他就建议会长修改规则,比如新的规则如下:

新的排序规则将是按照"权重”来进行排序,如果权重相同,则按照体重字符串来进行排序。(权重的计算规则:体重数字不同位数上的数字的总和)

给定某种正常顺序俱乐部的成员的体重字符串,如何实现按照新规则排序呢?测试用例:输入: "99 189 86 75"输出: "75 86 189 99"

菜鸟解法:

高手解法:

点评:

高手的解法同样是比较简洁!我们大部分人用for c in x 的时候都用到这一层就结束了,其实还可以对c再进行进一步操作然后再sum一下,这个例子可以举一反三!一下子集合了很多sorted的高级用法,简洁而有效!

3.扔骰子游戏

用五个六面骰子玩的骰子游戏,每投骰子组一次,就会出现5个数字的数组(数字:1-6),统计数组里每个数字出现的次数,将每个数字出现的次数拆分成 3次 和 1次 的组合,然后按照下面的规则进行计数。注意:如果出现次数大于或者等于3次,那么必须至少有一个按照3次来计算,不能全部按照1次来计算

3次1 = = 1000分 3次6 = = 600分 3次5 = = 500分 3次4 = = 400分 3次3 = = 300分 3次2 = = 200分 1次1 => 100分 1次5 => 50分 1次2 => 0分 1次3 => 0分 1次4 => 0分 1次6 => 0分

例如,5出现了5次,那么应当做作3个5、1个5和1个5来计算得分;5出现了6次,那么应当作3个5、3个5来计算得分,其他数字同理。

测试用例:扔骰子计算得分 --------- ------------------ 5 1 3 4 1 50 + 2 * 100 = 250 1 1 1 3 1 1000 + 100 = 1100 2 4 4 5 4 400 + 50 = 450

菜鸟解法:

高手解法:

点评:

高手的解法在于设计的数据结构非常巧,提前根据题目的意思就设计好了几个容器,然后counter列表巧妙的将(1-6)与(1-6)出现的次数关联起来。points和extra列表巧妙将数字出现的次数(3次和1次)和得分关联表示,减少误输得分的情况,提高代码复用性,整个解法非常巧妙!

上面这几道题目看起来好像大家都会做,但是解法就是没有别人的简洁巧妙!就好像厨艺大赛,看似一道简单的蛋炒饭其实是非常考验功底的!编程本身就是蕴含算法+数据结构的融合,大家有空可以多学习学习优秀的代码,对自己功力大有好处!

下面是为初学者们准备的python电子书籍资料和python入门教程!

高淇四百集第二季开始放送了!

请关注+私信回复:"资料”就可以拿到一份我为大家准备的Python学习资料!

python练手经典100例-非常适合Python菜鸟练手的趣味题(内附学习教程分享)相关推荐

  1. python练手经典100例-20个Python练手经典案例,能全做对的人确实很少!

    100个Python练手小程序,学习python的很好的资料,覆盖了python中的每一部分,可以边学习边练习,更容易掌握python. 私信小编007即可自动获取Python学习教程,包含视频教程以 ...

  2. python练手经典100例-推荐几个适合新手练手的Python项目《python入门例子》

    python 为什么实例对象可以调用类方法? 实例是什么例是类定义的实.那么,类中所定义的属方只要没有被屏蔽,在它的实体中就同样是可访问的. 至于说没有run()没有参数self,而是参数cls,为什 ...

  3. python练手经典100例-Python 的练手项目有哪些值得推荐?

    首先两点建议:最好不要写太应用的程序练手,如果你发现你写程序的大部分时间都在查库手册(或者类似的事情),那就是大家所说的"搬砖"了:要思考什么更像是知识,什么只是经验,还是那句老话 ...

  4. 新手python的100个实战项目,python练手经典100例项目

    Python 的练手项目有哪些值得推荐? 基础和爬虫.Python由荷兰数学和计算机科学研究学会的Guido van Rossum于1990 年代初设计,作为一门叫做ABC语言的替代品. Python ...

  5. python练手经典100例项目-推荐 10 个有趣的 Python 练手项目

    想成为一个优秀的Python程序员,没有捷径可走,势必要花费大量时间在键盘后. 而不断地进行各种小项目开发,可以为之后的大开发项目积攒经验,做好准备. 但不少人都在为开发什么项目而苦恼. 因此,我为大 ...

  6. python练手经典100例-python零基础练手项目100+

    文章目录 Python3 100例 实例001:数字组合 实例002:"个税计算" 实例003:完全平方数 实例004:这天第几天 实例005:三数排序 实例006:斐波那契数列 ...

  7. python练手经典100例-Python入门练手100例

    [Python练习实例001] 有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? [Python练习实例002] 企业发放的奖金根据利润提成.利润(I)低于或等于10万 ...

  8. python练手经典100例项目-Python入门练手100例

    [Python练习实例001] 有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? [Python练习实例002] 企业发放的奖金根据利润提成.利润(I)低于或等于10万 ...

  9. python练手经典100例微盘_20个Python练手经典案例,能全做对的人确实很少!

    100个Python练手小程序,学习python的很好的资料,覆盖了python中的每一部分,可以边学习边练习,更容易掌握python. 如果你感觉学不会?莫慌,小编推荐大家加入群, 前面548中间3 ...

最新文章

  1. 并发编程-13线程安全策略之两种类型的同步容器
  2. 使用GPU在caffe上进行CNN训练
  3. 解决Oracle 本地可以连接,远程不能连接问题
  4. asp.net生成缩略图、文字图片水印
  5. python药店销售数据分析_解析医院药店销售数据,看看Python数据分析结果有什么惊人的发现|python基础教程|python入门|python教程...
  6. Java面试题中高级,java简历技术栈怎么写
  7. 开源项目之MD5校验工具 md5deep
  8. 刘宇凡:罗永浩的锤子情怀只能拿去喂狗
  9. 帝国cms系统使用初级教程二(较全面)
  10. NodeJS:Express 框架实战解析视频教程
  11. 【HC-SR501人体红外传感器】
  12. 机器学习、数据挖掘、统计建模的技术担当,20款免费预测分析软件
  13. c语言 交通处罚单管理程序 typedef struct,交通罚单.doc
  14. 【公众号】如何将公众号给他人开发
  15. java实现海盗比酒量
  16. uni-app分享app和公众号遇到的坑(仅个人之见,如有错误请给指出)
  17. eureka集群高可用配置
  18. java智能家居_基于JAVA的智能家居控制系统的设计(毕业设计).doc
  19. mysql 排序后加上名次字段
  20. 直播app源码,matlab 色彩布局描述符

热门文章

  1. 剑指offer面试题16. 数值的整数次方(二分法)
  2. Python基础——类(Class)
  3. LeetCode 3.无重复字符的最长字串(滑动窗口)
  4. TensorFlow精进之路(六):CIFAR-10图像是被(下)
  5. java多线程(一)——创建与启动线程
  6. SpringBoot+Mybatis集成搭建
  7. select2插件设置选中值并显示的问题
  8. 微信开发之(四)获取关注后的图文推送信息
  9. dubbo/dubbox部署资料收集
  10. 35行的山寨版jQuery