适合Python初学者的一些编程技巧


Posted in Python onFebruary 12, 2020

这篇文章主要介绍了给Python初学者的一些编程技巧,皆是基于基础的一些编程习惯建议,需要的朋友可以参考下

交换变量

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

if 语句在行内

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

连接

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

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”。

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

for x in range(101):print"fizz"[x%3*4::]+"buzz"[x%5*4::]or x

集合

除了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 相关文章推荐
python解析json实例方法
Nov 19 Python
python pandas 组内排序、单组排序、标号的实例
Apr 12 Python
python实现音乐下载器
Apr 15 Python
利用Python将每日一句定时推送至微信的实现方法
Aug 13 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
Aug 22 Python
python自动化UI工具发送QQ消息的实例
Aug 27 Python
Python threading的使用方法解析
Aug 28 Python
Django项目中使用JWT的实现代码
Nov 04 Python
浅谈matplotlib.pyplot与axes的关系
Mar 06 Python
Numpy 多维数据数组的实现
Jun 18 Python
python 解决pycharm运行py文件只有unittest选项的问题
Sep 01 Python
利用python Pandas实现批量拆分Excel与合并Excel
May 23 Python
完美解决pycharm导入自己写的py文件爆红问题
Feb 12 #Python
python3实现raspberry pi(树莓派)4驱小车控制程序
Feb 12 #Python
python3实现网页版raspberry pi(树莓派)小车控制
Feb 12 #Python
解决Pycharm 导入其他文件夹源码的2种方法
Feb 12 #Python
Tensorflow 模型转换 .pb convert to .lite实例
Feb 12 #Python
tensorflow的ckpt及pb模型持久化方式及转化详解
Feb 12 #Python
关于Tensorflow 模型持久化详解
Feb 12 #Python
You might like
打造超酷的PHP数据饼图效果实现代码
2011/11/23 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
2013/08/16 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
javascript题目,重写函数让其无限相加
2012/02/15 Javascript
javascript获取选中的文本的方法代码
2013/10/30 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
javascript原始值和对象引用实例分析
2015/04/25 Javascript
jquery插件ajaxupload实现文件上传操作
2015/12/09 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
JavaScript兼容浏览器FF/IE技巧
2016/08/14 Javascript
Cookies 和 Session的详解及区别
2017/04/21 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
Vue实现点击后文字变色切换方法
2018/02/11 Javascript
JS中利用FileReader实现上传图片前本地预览功能
2018/03/02 Javascript
Vue 通过自定义指令回顾v-内置指令(小结)
2018/09/03 Javascript
JavaScript基础教程之如何实现一个简单的promise
2018/09/11 Javascript
nodejs环境使用Typeorm连接查询Oracle数据
2019/12/05 NodeJs
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
[01:10]DOTA2英雄背景故事第四期之混沌法则混沌骑士
2020/07/16 DOTA
[01:11:46]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第一场 2月23日
2021/03/11 DOTA
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
介绍Python的Django框架中的静态资源管理器django-pipeline
2015/04/25 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
Python 新建文件夹与复制文件夹内所有内容的方法
2018/10/27 Python
基于Python在MacOS上安装robotframework-ride
2018/12/28 Python
python实现kmp算法的实例代码
2019/04/03 Python
numpy数组广播的机制
2019/07/12 Python
关于PyTorch 自动求导机制详解
2019/08/18 Python
详解python UDP 编程
2020/08/24 Python
Python ConfigParser模块的使用示例
2020/10/12 Python
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
公安机关纪律作风整顿个人剖析材料材料
2014/10/10 职场文书
个人工作总结范文2014
2014/11/07 职场文书
人事专员岗位职责
2015/02/03 职场文书
个人更名证明
2015/06/23 职场文书