① 100行python代码,轻松完成贪吃蛇小游戏
你是想让我们向你提问题?你这个放错地方了,应该发布到自己的博客或论坛上面才对
② 求简洁优美的python代码例子、片段、参考资料
楼主贴的那段代码好像是我写的那段吧,我来告诉你如何写出来的吧
首先我不是高手,我也没有人教,我的编程都是自学的,我只是一个业余爱好者.
写出这样的代码很简单,就是要多练,我只是把python的基本语法学会,然后就不停地练习,我没有看过楼上的那些资料,我只是不停地码代码,或许有捷径,但是我没有发现.
我从07年开始写python的脚本,我一开始的代码风格也很差,特别是我先学c++,然后再转python的,当写的代码越来越多,对python的了解就会加深,代码风格也会自动改变的,不需要着急,其实这就是对一门语言的了解程度,你可以看看我回答的问题,我的回答就是我对python的理解,如果你能坚持下来,相信7年后你写的代码会比我写得更好.
楼上的题目有点意思,我也写一下,不知道对否
s='''
TheZenofPython,byTimPeters
Beautifulisbetterthanugly.
Explicitisbetterthanimplicit.
Simpleisbetterthancomplex.
.
Flatisbetterthannested.
Sparseisbetterthandense.
Readabilitycounts.
Specialcasesaren'tspecialenoughtobreaktherules.
.
Errorsshouldneverpasssilently.
Unlessexplicitlysilenced.
Inthefaceofambiguity,refusethetemptationtoguess.
Thereshouldbeone--andpreferablyonlyone--obviouswaytodoit.
'reDutch.
Nowisbetterthannever.
*right*now.
,it'sabadidea.
,itmaybeagoodidea.
--let'sdomoreofthose!
'''
importre,collections
tail_map={"'s":'is',"'re":'are',"n't":'not'}
data=collections.Counter(re.findall('w+',re.sub("('s|'re|n't)",lambdamatchobj:tail_map[matchobj.group()],s.lower())))
max_len=max(data.values())
print('Totalwordcount:%d',sum(data.values()))
forwordinsorted(data):
print('%*s=>%d'%(max_len,word,data[word]))
③ Python中的9个代码小实例!
1、串联比较
2、串联函数调用
3、复制列表
4、字典获取元素值
5、 按值排序字典
6、 For Else
7、列表转换为逗号分隔的字符串
8、合并字典
9、寻找列表中最大和最小元素的索引
若有不明白的地方,请移步Python视频教程继续学习!!
④ Python 有哪些优雅的代码实现
列表切割
list[start:end:step]
如果从列表开头开始切割,那么忽略 start 位的 0,例如list[:4]
如果一直切到列表尾部,则忽略 end 位的 0,例如list[3:]
切割列表时,即便 start 或者 end 索引跨界也不会有问题
列表切片不会改变原列表。索引都留空时,会生成一份原列表的拷贝
b= a[:]
assertb== aandbisnota# true
列表推导式
使用列表推导式来取代map和filter
a= [1,2,3,4,5,6,7,8,9,10]
# use map
squares= map(lambdax: x ** 2,a)
# use list comprehension
squares= [x ** 2forxina]
# 一个很大的好处是,列表推导式可以对值进行判断,比如
squares= [x ** 2forxinaifx% 2== 0]
# 而如果这种情况要用 map 或者 filter 方法实现的话,则要多写一些函数
不要使用含有两个以上表达式的列表推导式
# 有一个嵌套的列表,现在要把它里面的所有元素扁平化输出
list= [[
[1,2,3],
[4,5,6]
]]
# 使用列表推导式
flat_list= [xforlist0 inlist forlist1 inlist0 forxinlist1]
# [1, 2, 3, 4, 5, 6]
# 可读性太差,易出错。这种时候更建议使用普通的循环
flat_list= []
forlist0 inlist:
forlist1 inlist0:
flat_list.extend(list1)
数据多时,列表推导式可能会消耗大量内存,此时建议使用生成器表达式
# 在列表推导式的推导过程中,对于输入序列的每个值来说,都可能要创建仅含一项元素的全新列表。因此数据量大时很耗性能。
# 使用生成器表达式
list= (x ** 2forxinrange(0,1000000000))
# 生成器表达式返回的迭代器,只有在每次调用时才生成值,从而避免了内存占用