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实现截屏的函数
Jul 26 Python
基于Python Shell获取hostname和fqdn释疑
Jan 25 Python
浅谈python对象数据的读写权限
Sep 12 Python
Python Numpy 数组的初始化和基本操作
Mar 13 Python
详解pandas删除缺失数据(pd.dropna()方法)
Jun 25 Python
如何运行.ipynb文件的图文讲解
Jun 27 Python
python如何获取列表中每个元素的下标位置
Jul 01 Python
django中media媒体路径设置的步骤
Nov 15 Python
使用 Supervisor 监控 Python3 进程方式
Dec 05 Python
快速解决jupyter notebook启动需要密码的问题
Apr 21 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
Jun 29 Python
python多线程爬取西刺代理的示例代码
Jan 30 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
解析zend Framework如何自动加载类
2013/06/28 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
PHP针对伪静态的注入总结【附asp与Python相关代码】
2017/08/01 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
PDO::lastInsertId讲解
2019/01/29 PHP
javascript 混合的构造函数和原型方式,动态原型方式
2009/12/07 Javascript
js下用gb2312编码解码实现方法
2009/12/31 Javascript
javascript getElementsByClassName 和js取地址栏参数
2010/01/02 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
2015/10/12 Javascript
javascript事件委托的用法及其好处简析
2016/04/04 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
JS中如何实现Laravel的route函数详解
2017/02/12 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
Vue2.0用户权限控制解决方案
2017/11/29 Javascript
详解微信小程序-扫一扫 wx.scanCode() 扫码大变身
2019/04/30 Javascript
JS实现网页时钟特效
2020/03/25 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
js中实现继承的五种方法
2021/01/25 Javascript
[40:19]2018完美盛典CS.GO表演赛
2018/12/17 DOTA
python益智游戏计算汉诺塔问题示例
2014/03/05 Python
python解决Fedora解压zip时中文乱码的方法
2016/09/18 Python
对python当中不在本路径的py文件的引用详解
2018/12/15 Python
Django实现网页分页功能
2019/10/31 Python
在Python 的线程中运行协程的方法
2020/02/24 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
python3中确保枚举值代码分析
2020/12/02 Python
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
薇姿法国官网:Vichy法国
2021/01/28 全球购物
SQL面试题
2013/12/09 面试题
自我鉴定模板
2013/10/29 职场文书
西门豹教学反思
2014/02/04 职场文书
单位工程竣工验收方案
2014/03/16 职场文书
五五普法心得体会
2014/09/04 职场文书
2014年学校教学工作总结
2014/12/06 职场文书
PHP中->和=>的意思
2021/03/31 PHP