儿童学习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中的左斜杠、右斜杠(正斜杠和反斜杠)
Aug 30 Python
浅谈机器学习需要的了解的十大算法
Dec 15 Python
微信跳一跳python代码实现
Jan 05 Python
Python实现的旋转数组功能算法示例
Feb 23 Python
python登录WeChat 实现自动回复实例详解
May 28 Python
python使用opencv对图像mask处理的方法
Jul 05 Python
python是否适合网页编程详解
Oct 04 Python
python图形用户接口实例详解
Dec 16 Python
python opencv 图像边框(填充)添加及图像混合的实现方法(末尾实现类似幻灯片渐变的效果)
Mar 09 Python
Python求解排列中的逆序数个数实例
May 03 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
Jul 14 Python
Python离线安装各种库及pip的方法
Nov 28 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
咖啡语言
2021/03/03 咖啡文化
强烈推荐:php.ini中文版(1)
2006/10/09 PHP
php多功能图片处理类分享(php图片缩放类)
2014/03/14 PHP
PHP扩展模块Pecl、Pear以及Perl的区别
2014/04/09 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
jQuery 动态酷效果实现总结
2009/12/27 Javascript
基于Jquery的标签智能验证实现代码
2010/12/27 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
JS动态加载当前时间的方法
2015/02/09 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
2015/06/18 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
js点击文本框弹出可选择的checkbox复选框
2016/02/03 Javascript
基于Bootstrap的Metronic框架实现页面链接收藏夹功能
2016/08/29 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
如何解决vue2.0下IE浏览器白屏问题
2018/09/13 Javascript
小程序实现多选框功能
2018/10/30 Javascript
vxe-table vue table 表格组件功能
2019/05/26 Javascript
详解如何提升JSON.stringify()的性能
2019/06/12 Javascript
微信小程序实现上传图片裁剪图片过程解析
2019/08/22 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
python使用paramiko模块实现ssh远程登陆上传文件并执行
2014/01/27 Python
Python格式化css文件的方法
2015/03/10 Python
介绍Python中内置的itertools模块
2015/04/29 Python
Python完成毫秒级抢淘宝大单功能
2019/06/06 Python
Python网络爬虫四大选择器用法原理总结
2020/06/01 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
2020/07/03 Python
CSS3 Notes: -webkit-box-reflect实现倒影的实例
2016/12/08 HTML / CSS
三爱活动实施方案
2014/03/19 职场文书
保险内勤岗位职责
2014/04/05 职场文书
走进敬老院活动总结
2014/07/10 职场文书
公司副总经理岗位职责
2014/10/01 职场文书
学生个人评语大全
2015/01/04 职场文书
小学教师个人总结
2015/02/05 职场文书
小学语文教学反思范文
2016/03/03 职场文书