python趣味练习题_3道趣味Python题,⾮常适合菜鸟练⼿Python虽然⼊门容易,但是涉及的知识点⾮常多,⽽且技巧性很强!这些技巧就像⼀串⼀串的珠⼦,需要⼀些题⽬的不断的练⼿才能熟练掌握串联起来,把知识点掌握牢固!今天我就精选了3道趣味的Python题⽬,⼤家⼀起动动⼿,练起来!
1.字符串中的字符替换
字符串是Python中最基本也是最重要的知识点,下⾯这道题是关于字符串替换。看看菜鸟和⾼⼿是如何处理的:
题⽬:
创建⼀个函数,这个函数能把输⼊的字符串进⾏处理,并将返回替换了某些字符的字符串,规则如下如果⼀个字母是⼤写辅⾳,请将该字符替换为“Iron”。
如果字母是⼩写辅⾳或⾮字母字符,则对该字符不执⾏任何操作
如果⼀个字母是⼤写元⾳,请将该字符替换为“Iron Yard”。
如果⼀个字母是⼩写元⾳,请⽤“Yard”替换该字符。
测试⽤例
输⼊: 'Hello WORLD!'
输出: 'IronYardllYard IronIron YardIronIronIron!'
菜鸟解法:
⾼⼿解法:
点评:
⾼⼿解法最巧妙不是⽤类似推到列表这样的⽅法来循环处理字符串,⽽且⾮常巧妙的⽤'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分
python新手代码练习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次)和得分关联表⽰,减少误输得分的情况,提⾼代码复⽤性,整个解法⾮常巧妙!
上⾯这⼏道题⽬看起来好像⼤家都会做,但是解法就是没有别⼈的简洁巧妙!就好像厨艺⼤赛,看似⼀道简单的蛋炒饭其实是⾮常考验功底的!编程本⾝就是蕴含算法+数据结构的融合,⼤家有空可以多学习学习优秀的代码,对⾃⼰功⼒⼤有好处!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论