编程和练武功一样,拳不离口,曲不离手。不经常写,手就会生。而且Python的技巧和方法特别多,很琐碎,如果是新手很容易忘记,只有通过大量的练手才能熟悉掌握!明天就要上班了,我为大家准备了一道Python热身菜,希望大家动手敲敲,快速恢复功力!
01.将数组中的奇数进行排序
将一个数组里面的奇数的数进行重新排列,0不是奇数
例子:sort_array([5,3,2,8,1,4])==[1,3,2,8,5,4]
1).小白解法:
2).熟手解法:
3).大神解法
巧妙的利用推导列表和列表里面的pop,一箭双雕,另外注意“不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果你缺新项目练习或者没有python精讲教程,可以去小编的Python交流.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,里面很多新教程项目,还可以跟老司机交流讨教!”
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).小白解法
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).小白解法
2).大牛解法
defaccm(chars):
return’-’.join(c.upper+c.lower()*i fori inenumerate(chars))
(代码可以左右滑动)
04.推导一个数组
给你数组的前三个数字后一个数字是前3个数字python基础教程之和,要求返回前n个数字
1).小白解法:
2).熟手解法,用闭包+生成器来搞定
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).小白的解法:
2).大神解法
这个三目运算,让我一个大写的佩字