儿童学习python的一些小技巧


Posted in Python onMay 27, 2018

以下是一些Python实用技巧和工具,希望能对大家有所帮助。

交换变量

x = 6
y = 5
x, y = y, x
print x
>>> 5
print y
>>> 6

if 语句在行内

print "Hello" if True else "World"
>>> Hello

连接

下面的最后一种方式在绑定两个不同类型的对象时显得很cool。

nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots"]
print nfc + afc
>>> ['Packers', '49ers', 'Ravens', 'Patriots']
print str(1) + " world"
>>> 1 world
print `1` + " world"
>>> 1 world
print 1, "world"
>>> 1 world
print nfc, 1
>>> ['Packers', '49ers'] 1

数字技巧

#除后向下取整

print 5.0//2
>>> 2
# 2的5次方
print 2**5
>> 32

注意浮点数的除法

print .3/.1
>>> 2.9999999999999996
print .3//.1
>>> 2.0

数值比较

这是我见过诸多语言中很少有的如此棒的简便法

x = 2
if 3 > x > 1:
print x
>>> 2
if 1 < x > 0:
print x
>>> 2

同时迭代两个列表

nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots"]
for teama, teamb in zip(nfc, afc):
print teama + " vs. " + teamb
>>> Packers vs. Ravens
>>> 49ers vs. Patriots

带索引的列表迭代

teams = ["Packers", "49ers", "Ravens", "Patriots"]
for index, team in enumerate(teams):
print index, team
>>> 0 Packers
>>> 1 49ers
>>> 2 Ravens
>>> 3 Patriots

列表推导式

已知一个列表,我们可以刷选出偶数列表方法:

numbers = [1,2,3,4,5,6]
even = []
for number in numbers:
if number%2 == 0:
even.append(number)

转变成如下:

numbers = [1,2,3,4,5,6]
even = [number for number in numbers if number%2 == 0]

是不是很牛呢,哈哈。

字典推导

和列表推导类似,字典可以做同样的工作:

teams = ["Packers", "49ers", "Ravens", "Patriots"]
print {key: value for value, key in enumerate(teams)}
>>> {'49ers': 1, 'Ravens': 2, 'Patriots': 3, 'Packers': 0}

初始化列表的值

items = [0]*3
print items
>>> [0,0,0]

列表转换为字符串

teams = ["Packers", "49ers", "Ravens", "Patriots"]
print ", ".join(teams)
>>> 'Packers, 49ers, Ravens, Patriots'

从字典中获取元素

我承认try/except代码并不雅致,不过这里有一种简单方法,尝试在字典中查找key,如果没有找到对应的alue将用第二个参数设为其变量值。

data = {'user': 1, 'name': 'Max', 'three': 4}
try:
is_admin = data['admin']
except KeyError:
is_admin = False
data = {'user': 1, 'name': 'Max', 'three': 4}
is_admin = data.get('admin', False)

获取列表的子集

有时,你只需要列表中的部分元素,这里是一些获取列表子集的方法。

x = [1,2,3,4,5,6]
#前3个
print x[:3]
>>> [1,2,3]
#中间4个
print x[1:5]
>>> [2,3,4,5]
#最后3个
print x[-3:]
>>> [4,5,6]
#奇数项
print x[::2]
>>> [1,3,5]
#偶数项
print x[1::2]
>>> [2,4,6]

60个字符解决FizzBuzz

前段时间Jeff Atwood 推广了一个简单的编程练习叫FizzBuzz,问题引用如下:

写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”。

这里就是一个简短的,有意思的方法解决这个问题:

集合

除了python内置的数据类型外,在collection模块同样还包括一些特别的用例,在有些场合Counter非常实用。如果你参加过在这一年的Facebook HackerCup,你甚至也能找到他的实用之处。

from collections import Counter
print Counter("hello")
>>> Counter({'l': 2, 'h': 1, 'e': 1, 'o': 1})

迭代工具

和collections库一样,还有一个库叫itertools,对某些问题真能高效地解决。其中一个用例是查找所有组合,他能告诉你在一个组中元素的所有不能的组合方式

from itertools import combinations
teams = ["Packers", "49ers", "Ravens", "Patriots"]
for game in combinations(teams, 2):
print game
>>> ('Packers', '49ers')
>>> ('Packers', 'Ravens')
>>> ('Packers', 'Patriots')
>>> ('49ers', 'Ravens')
>>> ('49ers', 'Patriots')
>>> ('Ravens', 'Patriots')
False == True

比起实用技术来说这是一个很有趣的事,在python中,True和False是全局变量,因此:

False = True
if False:
print "Hello"
else:
print "World"
>>> Hello

如果你还有任何很酷的奇技淫巧欢迎留言分享

Python 相关文章推荐
python调用cmd复制文件代码分享
Dec 27 Python
书单|人生苦短,你还不用python!
Dec 29 Python
Python中elasticsearch插入和更新数据的实现方法
Apr 01 Python
Python DataFrame.groupby()聚合函数,分组级运算
Sep 18 Python
python http基本验证方法
Dec 26 Python
如何利用Python分析出微信朋友男女统计图
Jan 25 Python
python3 map函数和filter函数详解
Aug 26 Python
使用Python刷淘宝喵币(低阶入门版)
Oct 30 Python
Python如何使用Gitlab API实现批量的合并分支
Nov 27 Python
Anaconda详细安装步骤图文教程
Nov 12 Python
python调用百度AI接口实现人流量统计
Feb 03 Python
利用Matlab绘制各类特殊图形的实例代码
Jul 16 Python
django初始化数据库的实例
May 27 #Python
django 删除数据库表后重新同步的方法
May 27 #Python
Django 根据数据模型models创建数据表的实例
May 27 #Python
Django使用Mysql数据库已经存在的数据表方法
May 27 #Python
django中模板的html自动转意方法
May 27 #Python
Django读取Mysql数据并显示在前端的实例
May 27 #Python
django加载本地html的方法
May 27 #Python
You might like
PHP 字符串长度判断效率更高的方法
2014/03/02 PHP
php使用json_encode对变量json编码
2014/04/07 PHP
常见php数据文件缓存类汇总
2014/12/05 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
2016/05/31 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
关于恒等于(===)和非恒等于(!==)
2007/08/20 Javascript
jQuery Ajax 全解析
2009/02/08 Javascript
js过滤数组重复元素的方法
2010/09/05 Javascript
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
node.js中的fs.readFileSync方法使用说明
2014/12/15 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
2015/10/15 Javascript
JQuery遍历元素的后代和同胞实现方法
2016/09/18 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
2016/10/26 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
详解redis在nodejs中的应用
2018/05/02 NodeJs
layui操作列按钮个数和文字颜色的判断实例
2019/09/11 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
Python常用内置函数总结
2015/02/08 Python
python创建临时文件夹的方法
2015/07/06 Python
Python设计模式之观察者模式简单示例
2018/01/10 Python
python占位符输入方式实例
2019/05/27 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
2019/06/21 Python
教你如何编写、保存与运行Python程序的方法
2019/07/12 Python
python使用itchat模块给心爱的人每天发天气预报
2019/11/25 Python
python爬虫基础知识点整理
2020/06/02 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
美国香薰蜡烛品牌:PADDYWAX
2018/10/06 全球购物
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
用友笔试题目
2016/10/25 面试题
公司年会搞笑主持词
2014/03/24 职场文书
国王的演讲观后感
2015/06/03 职场文书
辩护意见书
2015/06/04 职场文书