Python易忽视知识点小结


Posted in Python onMay 25, 2015

这里记录Python中容易被忽视的小问题

一、input(...)和raw_input(...)

#简单的差看帮助文档input(...)和raw_input(...)有如下区别 
>>> help(input) 
Help on built-in function input in module __builtin__: 
input(...) 
  input([prompt]) -> value 
  Equivalent to eval(raw_input(prompt)). 
>>> help(raw_input) 
Help on built-in function raw_input in module __builtin__: 
raw_input(...) 
  raw_input([prompt]) -> string 
    
  Read a string from standard input. The trailing newline is stripped. 
  If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError. 
  On Unix, GNU readline is used if enabled. The prompt string, if given, 
  is printed without a trailing newline before reading. 
  
#可见 input会根据输入的内容eval结果来返回值,即输入纯数字,则得到的就是纯数字 
#     raw_input返回的才是字符串 
#test: 
>>> a = input("输入数字") 
输入数字1 
>>> type(a) 
<type 'int'> 
>>> b=raw_input("输入数字") 
输入数字1 
>>> type(b) 
<type 'str'>

ps:在python3.0以后的版本中,raw_input和input合体了,取消raw_input,并用input代替,所以现在的版本input接收的是字符串

二、python三目运算符

虽然Python没有C++的三目运算符(?:),但也有类似的替代方案,

那就是
1、 true_part if condition else false_part

>>> 1 if True else 0 
1 
>>> 1 if False else 0 
0 
>>> "True" if True else "False" 
'True' 
>>> "True" if True else "False" 
'Falser'

2、 (condition and   [true_part]   or   [false_part] )[0]

>>> (True and ["True"] or ["False"])[0] 
'True' 
>>> (False and ["True"] or ["False"])[0] 
'False' 
>>>

三、获得指定字符串在整个字符串中出现第N次的索引

# -*- coding: cp936 -*- 
def findStr(string, subStr, findCnt): 
  listStr = a.split(subStr,findCnt) 
  if len(listStr) <= findCnt: 
    return -1 
  return len(string)-len(listStr[-1])-len(subStr) 
#test 
a = "12345(1)254354(1)3534(1)14" 
sub = "(1)" 
N = 2   #查找第2次出现的位置 
print findStr(a,sub,N) 
N = 10   #查找第10次出现的位置 
print findStr(a,sub,N) 
#结果 
#>>>  
#14 
#-1

四、enumerate用法:

遍历序列的时候,可能同时需要用到序列的索引和对应的值,这时候可以采用enumerate方法进行遍历

enumerate的说明如下:

>>> help(enumerate) 
Help on class enumerate in module __builtin__: 
 
class enumerate(object) 
 | enumerate(iterable[, start]) -> iterator for index, value of iterable 
 |  
 | Return an enumerate object. iterable must be another object that supports 
 | iteration. The enumerate object yields pairs containing a count (from 
 | start, which defaults to zero) and a value yielded by the iterable argument. 
 | enumerate is useful for obtaining an indexed list: 
 |   (0, seq[0]), (1, seq[1]), (2, seq[2]), ... 
 |  
 | Methods defined here: 
 |  
 | __getattribute__(...) 
 |   x.__getattribute__('name') <==> x.name 
 |  
 | __iter__(...) 
 |   x.__iter__() <==> iter(x) 
 |  
 | next(...) 
 |   x.next() -> the next value, or raise StopIteration 
 |  
 | ----------------------------------------------------------------------
 | Data and other attributes defined here: 
 |  
 | __new__ = <built-in method __new__ of type object> 
 |   T.__new__(S, ...) -> a new object with type S, a subtype of T

五、遍历序列的方法

>>> List = ['a','b','c'] 
>>> for index, value in enumerate(List): 
  print index, value 
0 a 
1 b 
2 c 
>>>

六、使用python random模块的sample函数从列表中随机选择一组元素

import 
List = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]  
slice = random.sample(List, 5)
#从List中随机获取5个元素,作为一个片断返回  
print slice  
print List #原有序列并没有改变。

七、用json打印包含中文的列表字典等

# -*- coding:utf-8 -*- 
import json 
#你的列表 
listA = [{'path': ['[AWS] \xe7\xbe\x8e\xe5\xb0\x91\xe5\xa5\xb3\xe6\x88\x98\xe5\xa3\xab Sailor Moon Crystal - Moon Pride MV[BIG5][BDrip 1080p x264 AAC][6E5CFE86].mp4'], 'length': 131248608L}, {'path': ['[AWS] \xe7\xbe\x8e\xe5\xb0\x91\xe5\xa5\xb3\xe6\x88\x98\xe5\xa3\xab Sailor Moon Crystal - Moon Pride MV[BIG5][BDrip 720p x264 AAC][639D304A].mp4'], 'length': 103166306L}, {'path': ['[AWS] \xe7\xbe\x8e\xe5\xb0\x91\xe5\xa5\xb3\xe6\x88\x98\xe5\xa3\xab Sailor Moon Crystal - Moon Pride MV[BIG5][BDrip 480p x264 AAC][5A81BACA].mp4'], 'length': 75198408L}]
#打印列表
print json.dumps(listA, encoding='UTF-8', ensure_ascii=False)

输出结果:

>>>  
[{"path": ["[AWS] 美少女战士 Sailor Moon Crystal - Moon Pride MV[BIG5][BDrip 1080p x264 AAC][6E5CFE86].mp4"], "length": 131248608}, {"path": ["[AWS] 美少女战士 Sailor Moon Crystal - Moon Pride MV[BIG5][BDrip 720p x264 AAC][639D304A].mp4"], "length": 103166306}, {"path": ["[AWS] 美少女战士 Sailor Moon Crystal - Moon Pride MV[BIG5][BDrip 480p x264 AAC][5A81BACA].mp4"], "length": 75198408}]

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python刷投票的脚本实现代码
Nov 08 Python
python实现井字棋游戏
Mar 30 Python
Python多线程实现同步的四种方式
May 02 Python
Python虚拟环境virtualenv的安装与使用详解
May 28 Python
Python中的TCP socket写法示例
May 11 Python
Python使用matplotlib实现基础绘图功能示例
Jul 03 Python
Python 打印中文字符的三种方法
Aug 14 Python
总结python中pass的作用
Feb 27 Python
python try 异常处理(史上最全)
Mar 07 Python
使用pandas库对csv文件进行筛选保存
May 25 Python
Python中用xlwt制作表格实例讲解
Nov 05 Python
Python性能测试工具Locust安装及使用
Dec 01 Python
Python中类型关系和继承关系实例详解
May 25 #Python
pymssql数据库操作MSSQL2005实例分析
May 25 #Python
python动态参数用法实例分析
May 25 #Python
Python文件去除注释的方法
May 25 #Python
python提取页面内url列表的方法
May 25 #Python
python实现批量改文件名称的方法
May 25 #Python
python基于右递归解决八皇后问题的方法
May 25 #Python
You might like
地摊中国 - 珍藏老照片
2020/08/18 杂记
SONY ICF-SW7600的电路分析
2021/03/02 无线电
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
2008/10/13 PHP
详解PHP中array_rand函数的使用方法
2016/09/11 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
使用prototype.js 的时候应该特别注意的几个问题.
2007/04/12 Javascript
Textarea根据内容自适应高度
2013/10/28 Javascript
javaScript中的this示例学习详解及工作原理
2014/01/13 Javascript
javascript实现的右下角弹窗实例
2015/04/24 Javascript
基于jQuery实现的美观星级评论打分组件代码
2015/10/30 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
2017/02/27 Javascript
jquery实现限制textarea输入字数的方法
2017/09/06 jQuery
JavaScript实现三级级联特效
2017/11/05 Javascript
jQuery+CSS实现的标签页效果示例【测试可用】
2018/08/14 jQuery
微信小程序tabbar底部导航
2018/11/05 Javascript
深入了解JavaScript 私有化
2019/05/30 Javascript
layui写后台表格思路和赋值用法详解
2019/11/14 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
python 生成目录树及显示文件大小的代码
2009/07/23 Python
Django rest framework实现分页的示例
2018/05/24 Python
python操作excel让工作自动化
2019/08/09 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
python 第三方库paramiko的常用方式
2021/02/20 Python
Html5 canvas实现粒子时钟的示例代码
2018/09/06 HTML / CSS
高清安全摄像头系统:Lorex Technology
2018/07/20 全球购物
制衣厂各岗位职责
2013/12/02 职场文书
优秀护士获奖感言
2014/02/20 职场文书
模具设计与制造专业自荐书
2014/07/01 职场文书
专升本学生毕业自我鉴定
2014/10/04 职场文书
小学优秀教师材料
2014/12/15 职场文书
世界气象日活动总结
2015/02/27 职场文书
走进科学观后感
2015/06/18 职场文书
教你如何使用Python实现二叉树结构及三种遍历
2021/06/18 Python