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 获取网页编码方式实现代码
Mar 11 Python
Python 网页解析HTMLParse的实例详解
Aug 10 Python
Python 内置函数memoryview(obj)的具体用法
Nov 23 Python
python的re正则表达式实例代码
Jan 24 Python
Python 中字符串拼接的多种方法
Jul 30 Python
Python中修改字符串的四种方法
Nov 02 Python
python安装numpy和pandas的方法步骤
May 27 Python
使用python动态生成波形曲线的实现
Dec 04 Python
在python中实现求输出1-3+5-7+9-......101的和
Apr 02 Python
python实现四人制扑克牌游戏
Apr 22 Python
django数据模型中null和blank的区别说明
Sep 02 Python
如何用Python绘制3D柱形图
Sep 16 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小型企业库存管理系统的设计与实现代码
2011/05/16 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
2017/07/27 PHP
jQuery1.6 使用方法二
2011/11/23 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)
2015/08/04 Javascript
学习JavaScript设计模式(接口)
2015/11/26 Javascript
jquery实现全选、反选、获得所有选中的checkbox
2020/09/13 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
2017/02/27 Javascript
Three.js实现简单3D房间布局
2018/12/30 Javascript
微信小程序实现分享朋友圈的图片功能示例
2019/01/18 Javascript
vue实现局部刷新的实现示例
2019/04/16 Javascript
vue input输入框关键字筛选检索列表数据展示
2020/10/26 Javascript
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
如何在微信小程序中使用骨架屏的步骤
2020/06/12 Javascript
Vue 3自定义指令开发的相关总结
2021/01/29 Vue.js
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Django1.3添加app提示模块不存在的解决方法
2014/08/26 Python
python opencv实现任意角度的透视变换实例代码
2018/01/12 Python
Python列表与元组的异同详解
2019/07/02 Python
python实现输入的数据在地图上生成热力图效果
2019/12/06 Python
Python random模块制作简易的四位数验证码
2020/02/01 Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
2020/02/11 Python
python爬虫使用requests发送post请求示例详解
2020/08/05 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
2021/02/03 Python
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
业务经理岗位职责
2013/11/11 职场文书
电厂厂长岗位职责
2014/01/02 职场文书
大三毕业自我鉴定
2014/01/15 职场文书
奥运会口号
2014/06/13 职场文书
六一儿童节主持开场白
2015/05/28 职场文书
2015年街道办事处团委工作总结
2015/10/14 职场文书
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
Nginx动静分离配置实现与说明
2022/04/07 Servers