python趣题大全_5道趣味Python热身题【新手必学】

01.将数组中的奇数进行排序

将一个数组里面的奇数的数进行重新排列,0不是奇数

例子:sort_array([5,3,2,8,1,4])==[1,3,2,8,5,4]

1).小白解法:

51b081508c953f313151d82386ca3fe3.png

2).熟手解法:

2c6f9cddec8b1da060f5368f2d575aba.png

3).大神解法

巧妙的利用推导列表和列表里面的pop,一箭双雕,另外注意“不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果你缺新项目练习或者没有python精讲教程,可以去小编的Python交流.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,里面很多新教程项目,还可以跟老司机交流讨教!”

594e5306d7c8d95a744ec99f206f6775.png

02.判断密码PIN code

ATM机允许4或者6位数字,但是这4位或者6位只能是纯数字

比如:

validate_pin('1234')==True

validate_pin('12345')==False

validate_pin('a234')==False

validate_pin('-1.234')==False

1).小白解法

b9d344a99056e045b77cbb4da396410f.png

2).高手解法

defvalidate_pin(pin):

returnlen(pin) in(4,6) andpin.isdigit()

validate_pin('-1.234')

为啥高手的解法总是这么飘逸,简洁,感觉像是高手对战,一招制敌!

03.玩一玩字符串

给你几个字符串,按照下面的规则编写一个函数输出,指定格式的字符串:

accm("abcd") #A-Bb-Ccc-Dddd

accm("RqaEzty") #R-Qq-Aaa-Eeee-Zzzzz-Tttttt-Yyyyyyy

accm("cwAt") # C-Ww-Aaa-Tttt

1).小白解法

5ab25899e7aed5d6f4ed8b4c94ffdbed.png

2).大牛解法

defaccm(chars):

return'-'.join(c.upper+c.lower()*i fori inenumerate(chars))

(代码可以左右滑动)

04.推导一个数组

给你数组的前三个数字后一个数字是前3个数字之和,要求返回前n个数字

1).小白解法:

b64b1dcd88a54ae308710da074c250ea.png

2).熟手解法,用闭包+生成器来搞定

ff93ac423b321cc55ed39688db34fcec.png

3).大牛解法

巧妙的利用了列表的切片和负数index

def tri2(nums_list,n):

res=nums_list[:n]

fori in range(n-3):

res.append(sum(res[-3:]))

returnres

tri2([0,0,1],10)

05.字符天平秤

每个问号(?)的权重是3,每个感叹号(!)的权重是2,把两个字符放左边,把两个字符放右边,看看它们是否平衡?

Example:

balance("!!","??")=="Right"

balance("!??","?!!")=="Left"

balance("!?!!","?!?")=="Left"

balance("!!???!????","??!!?!!!!!!!")=="Balance"

1).小白的解法:

97084e853f9bf73af94a587a9cfab03d.png

2).大神解法

这个三目运算,让我一个大写的佩字

  • 11
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值