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下利用OpenCV来旋转图像的教程
Apr 16 Python
python控制台中实现进度条功能
Nov 10 Python
Python实现矩阵转置的方法分析
Nov 24 Python
Django使用httpresponse返回用户头像实例代码
Jan 26 Python
python 平衡二叉树实现代码示例
Jul 07 Python
Python实现全排列的打印
Aug 18 Python
用Python将Excel数据导入到SQL Server的例子
Aug 24 Python
Python跑循环时内存泄露的解决方法
Jan 13 Python
python爬虫实现获取下一页代码
Mar 13 Python
python中前缀运算符 *和 **的用法示例详解
May 28 Python
Python+OpenCV图像处理——图像二值化的实现
Oct 24 Python
python 邮件检测工具mmpi的使用
Jan 04 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
我的论坛源代码(八)
2006/10/09 PHP
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
PHP导出Excel实例讲解
2016/01/24 PHP
php curl操作API接口类完整示例
2019/05/21 PHP
12行javascript代码绘制一个八卦图
2015/04/02 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
AngularJS表单和输入验证实例
2016/11/02 Javascript
Angularjs 依赖压缩及自定义过滤器写法
2017/02/04 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
ionic选择多张图片上传的示例代码
2017/10/10 Javascript
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
layui点击按钮添加可编辑的一行方法
2018/08/15 Javascript
vue项目使用微信公众号支付总结及遇到的坑
2018/10/23 Javascript
nodejs 使用nodejs-websocket模块实现点对点实时通讯
2018/11/28 NodeJs
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
es6数组之扩展运算符操作实例分析
2020/04/25 Javascript
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
浅析python递归函数和河内塔问题
2017/04/18 Python
六行python代码的爱心曲线详解
2019/05/17 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
django ModelForm修改显示缩略图 imagefield类型的实例
2019/07/28 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
2020/01/02 Python
使用Python-OpenCV消除图像中孤立的小区域操作
2020/07/05 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
css3实例教程 一款纯css3实现的发光屏幕旋转特效
2014/12/07 HTML / CSS
出国导师推荐信
2014/01/16 职场文书
幼儿园新学期寄语
2014/01/18 职场文书
教学实习自我评价
2014/01/28 职场文书
12岁生日演讲稿
2014/05/14 职场文书
2014年科技工作总结
2014/11/26 职场文书
司机岗位职责
2015/02/04 职场文书
CocosCreator如何实现划过的位置显示纹理
2021/04/14 Javascript
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL