当前位置: 首页 > 科技观察

3道有趣的Python题,非常适合新手练习

时间:2023-03-18 12:58:56 科技观察

Python入门简单,但涉及的知识点很多,技巧性很强!这些技能就像一串串的珠子,需要不断的练习一些题型才能熟练的把它们串联起来,才能牢牢掌握知识点!今天挑选了3个有趣的Python话题,大家一起来练习吧!1、字符串中的字符替换字符串是Python中最基本也是最基本的。重要知识点,下面的题是关于字符串替换的。看看菜鸟和高手是怎么处理的:题目:创建一个函数,可以处理输入的字符串,并返回一个替换了部分字符的字符串。规则如下如果一个字母是大写辅音,请把这个字符替换为“Iron”。如果字母是小写辅音或非字母字符,则不对字符执行任何操作如果字母是大写元音,则将字符替换为“IronYard”。如果字母是小写元音,则将该字符替换为“Yard”。测试用例输入:“HelloWORLD!”输出:“IronYardllYardIronIronYardIronIronIron!”菜鸟解法:专家解法:deftiy_fizz_buzz(s):return"".join(("Iron"*c.isupper()+"Yard"*(c.lower()in"aeiou")).strip()orcforcins)(代码可以左右滑动)点评:高手最巧妙的解决办法不是像推入列表那样循环遍历字符串,而是使用“Iron”*True或“Iron”*False,如果前者是字符串本身,后者为空""。然后用+合成两个字符串,再用or分类!***将上面的if-elif-elif-else合并成一行代码,真是太好了!2.趣味体重排序老王在“胖健身俱乐部”,老王一到月底就很着急,因为每个月都会公布一份会员体重名单,每个月他都是名单的最后一个,这意味着他是最重的。所以他建议总统修改规则。例如,新的规则如下:新的排序规则会按照“权重”进行排序,如果权重相同,则按照权重字符串进行排序。(权重的计算规则:权重数不同位数字之和)给定某正常顺序俱乐部成员的权重字符串,如何实现按新规则排序?测试用例:输入:"991898675"输出:"758618999"新手解法:专家解法:点评:专家解法也比较简单!我们大多数人在使用forcinx时都会用到这一层。进行进一步的操作,然后再次求和。这个例子可以举一反三!一下子收集了很多sorted的高级用法,简洁有效!3.掷骰子游戏用五个六面骰子玩的骰子游戏,每次掷出一组骰子,会出现一个5个数字的数组(数字:1-6),统计每个数字出现的次数数组,将每个数的出现次数拆分为3次和1次的组合,然后按照下面的规则进行count。注意:如果出现的次数大于等于3次,那么至少有1次必须算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分1time3=>0points1Times4=>0points1times6=>0points比如5出现5次,那么应该算作3个5,1个5和1个5来计算分数;如果5出现6次,则算作3个5。用3个5来计算分数,其他数同理。测试用例:掷骰子计算分数------------------------5134150+2*100=250111311000+100=110024454400+50=450菜鸟解法:专家解法:点评:专家解法在于数据结构的设计非常巧妙,根据意思提前设计了几个容器主题,然后counter列表巧妙地将(1-6)与(1-6)的出现次数联系起来。分数和额外列表巧妙地将数字出现的次数(3次和1次)与分数关联起来,减少了误输入分数的情况,提高了代码的复用性。整个解决方案非常巧妙!