儿童学习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 18 Python
使用Python设置tmpfs来加速项目的教程
Apr 17 Python
Python+tkinter使用80行代码实现一个计算器实例
Jan 16 Python
python中返回矩阵的行列方法
Apr 04 Python
python3 pandas 读取MySQL数据和插入的实例
Apr 20 Python
Python3多线程操作简单示例
May 22 Python
在python image 中安装中文字体的实现方法
Aug 22 Python
30秒学会30个超实用Python代码片段【收藏版】
Oct 15 Python
python元组的概念知识点
Nov 19 Python
python利用tkinter实现图片格式转换的示例
Sep 28 Python
matplotlib之pyplot模块之标题(title()和suptitle())
Feb 22 Python
python使用openpyxl库读写Excel表格的方法(增删改查操作)
May 02 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
PHPShop存在多个安全漏洞
2006/10/09 PHP
php自动跳转中英文页面
2008/07/29 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
div移动 输入框不能输入的问题
2009/11/19 Javascript
JavaScript中的eval()函数使用介绍
2014/12/31 Javascript
jQuery中toggleClass()方法用法实例
2015/01/05 Javascript
JavaScript AOP编程实例
2015/06/16 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
2016/05/26 Javascript
vue.js实现价格格式化的方法
2017/05/23 Javascript
微信小程序解除10个请求并发限制
2018/12/18 Javascript
vue-router beforeEach跳转路由验证用户登录状态
2018/12/26 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
vue-dplayer 视频播放器实例代码
2019/11/08 Javascript
python使用百度翻译进行中翻英示例
2014/04/14 Python
pandas 将list切分后存入DataFrame中的实例
2018/07/03 Python
python 实现对数据集的归一化的方法(0-1之间)
2018/07/17 Python
python3实现指定目录下文件sha256及文件大小统计
2019/02/25 Python
PyQt5 多窗口连接实例
2019/06/19 Python
使用python serial 获取所有的串口名称的实例
2019/07/02 Python
python中的colorlog库使用详解
2019/07/05 Python
解析python实现Lasso回归
2019/09/11 Python
Django框架创建项目的方法入门教程
2019/11/04 Python
python实现名片管理器的示例代码
2019/12/17 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
如何理解python中数字列表
2020/05/29 Python
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
html5手机端页面可以向右滑动导致样式受影响的问题
2018/06/20 HTML / CSS
雷曼兄弟的五金店:Lehman’s Hardware Store
2019/04/10 全球购物
世界各地的当地人的食物体验:Eatwith
2019/07/26 全球购物
简历中求职的个人自我评价
2013/12/03 职场文书
超市端午节活动方案
2014/01/23 职场文书
会计工作态度自我评价
2015/03/06 职场文书
承诺书范本大全
2015/05/04 职场文书
同意离婚答辩状
2015/05/22 职场文书
军训阅兵新闻稿
2015/07/17 职场文书
一文搞懂Python Sklearn库使用
2021/08/23 Python