Python易忽视知识点小结

这里记录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程序设计有所帮助。

(0)

相关推荐

  • Python编程入门的一些基本知识

    Python与Perl,C和Java语言等有许多相似之处.不过,也有语言之间有一些明确的区别.本章的目的是让你迅速学习Python的语法. 第一个Python程序: 交互模式编程: 调用解释器不经过脚本文件作为参数,显示以下提示: $ python Python 2.6.4 (#1, Nov 11 2014, 13:34:43) [GCC 4.1.2 20120704 (Red Hat 5.6.2-48)] on linux2 Type "help", "copyright&

  • Python中的列表知识点汇总

    Python list 在介绍 Python tuple 时,我使用了类比的方法,将其比做一个袋子,您可以在袋子中存放不同的东西.Python list 与此非常类似,因此,它的功能与袋子的功能也非常类似.但有一点是不同的,即您可以使用方括号创建 list,如清单 1 所示. 清单 1. 在 Python 中创建一个 list >>> l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> l [0, 1, 2, 3, 4, 5, 6, 7, 8,

  • Python中最常用的操作列表的几种方法归纳

    这里介绍几个常用的列表操作 添加元素 添加元素使用列表的内置方法append number = [1, 2, 3, 4] number.append(5) # number = [1, 2, 3, 4, 5] number.append([6,7]) # number = [1, 2, 3, 4, 5, [6, 7]] number.append({'a':'b'}) # number = [1, 2, 3, 4, [6, 7], {'a', :'b'} 可以看到强大的python列表可以嵌套任

  • Python语言的12个基础知识点小结

    python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进制转换,Python调用系统命令或者脚本,Python 读写文件. 1.正则表达式替换 目标: 将字符串line中的 overview.gif 替换成其他字符串 复制代码 代码如下: >>> line = '<IMG ALIGN="middle" SRC=\'#\'

  • Python中字典的基础知识归纳小结

    定义一个字典 >>> d = {"server":"mpilgrim", "database":"master"} 1 >>> d {'server': 'mpilgrim', 'database': 'master'} >>> d["server"] 2 'mpilgrim' >>> d["database"] 3

  • 归纳整理Python中的控制流语句的知识点

    程序流 Python 解释器在其最简单的级别,以类似的方式操作,即从程序的顶端开始,然后一行一行地顺序执行程序语句.例如,清单 1 展示了几个简单的语句.当把它们键入 Python 解释器中(或者将它们保存在一个文件中,并作为一个 Python 程序来执行)时,读取语句的顺序是从左到右. 当读到一个行结束符(比如换行符)时,Python 解释器就前进到下一行并继续,直到没有了代码行. 清单 1. 一个简单的 Python 程序 >>> i = 1 >>> type(i)

  • python常用知识梳理(必看篇)

    接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理: 1)避免'\n'等特殊字符的两种方式: a)利用转义字符'\' b)利用原始字符'r' print r'c:\now' 2)单行注释,使用一个#,如: #hello Python 多行注释,使用三个单引号(或三个双引号),如: '''hello python hello world''' 或 """hello python hello world""" 另外跨越多行

  • Python易忽视知识点小结

    这里记录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)). >>

  • Python模块相关知识点小结

    本文实例讲述了Python模块相关知识点.分享给大家供大家参考,具体如下: 1.模块: 定义:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是以.py结尾的python文件(文件名:test.py,对应的模块名:test). 包:用来从逻辑上组织模块的,本质就是文件夹(目录),必须带有一个__init__.py文件. 导入包的本质就是解释这个包下面的__init__.py文件. 在某个模块下需要导入某一个包下面的内容,需要在包下面的__init__.py文件中修改

  • Python 面向对象部分知识点小结

    本文实例讲述了Python 面向对象部分知识点.分享给大家供大家参考,具体如下: 面向对象: 世间万物,皆可分类.--------------------手机<--------------某一个分类 世间万物,皆为对象.--------------------我的手机<---------有具体指向 只要是对象,就肯定属于某种品类. 只要是对象,就肯定有属性. 类的相同点一起写,不同点分开写. 1.Python类中self的来源: 通常函数的执行方式为: 调用函数-->执行函数----&g

  • javascript 易错知识点实例小结

    本文实例总结了javascript 易错知识点.分享给大家供大家参考,具体如下: 为什么 typeof null === 'object' 原理是这样的,不同的对象在底层都表示为二进制,在JavaScript中二进制前三位都为0的话会被判断为 object 类型, null 的二进制表示是全0,自然前三位也是0,所以执行 typeof 时会返回" object ". 对象属性的存在性 如 myObject.a 的属性访问返回值可能是 undefined ,但是这个值有可能是属性中存储的

  • 10个python爬虫入门实例(小结)

    昨天带伙伴萌学习python爬虫,准备了几个简单的入门实例 涉及主要知识点: web是如何交互的 requests库的get.post函数的应用 response对象的相关函数,属性 python文件的打开,保存 代码中给出了注释,并且可以直接运行哦 如何安装requests库(安装好python的朋友可以直接参考,没有的,建议先装一哈python环境) windows用户,Linux用户几乎一样: 打开cmd输入以下命令即可,如果python的环境在C盘的目录,会提示权限不够,只需以管理员方式

  • Java正则表达式易错知识点汇总

    一.概述 正则表达式是Java处理字符串.文本的重要工具. Java对正则表达式的处理集中在以下两个类: java.util.regex.Matcher   模式类:用来表示一个编译过的正则表达式. java.util.regex.Pattern   匹配类:用模式匹配一个字符串所表达的抽象结果. (很遗憾,Java Doc并没有给出这两个类的职责概念.)  比如一个简单例子: import java.util.regex.Matcher; import java.util.regex.Patt

  • JavaScript易错知识点整理

    前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES6的知识点. JavaScript知识点 1.变量作用域 var a = 1; function test() { var a = 2; console.log(a); // 2 } test(); 上方的函数作用域中声明并赋值了a,且在console之上,所以遵循就近原则输出a等于2. va

  • Python程序退出方式小结

    对于如何结束一个Python程序或者用Python操作去结束一个进程等,Python本身给出了好几种方法,而这些方式也存在着一些区别,对相关的几种方法看了并实践了下,同时也记录下. 参考: Python 核心编程 (第二版) 中文高清 1. sys.exit() 执行该语句会直接退出程序,这也是经常使用的方法,也不需要考虑平台等因素的影响,一般是退出Python程序的首选方法. 该方法中包含一个参数status,默认为0,表示正常退出,也可以为1,表示异常退出. import sys sys.e

  • python进程与线程小结实例分析

    传统方式是调用2个方法执行1个任务,方法按顺序依次执行 # -*- coding:utf-8 -*- import threading import time def run(n): print('task',n) time.sleep(3) if __name__ == '__main__': run('t1') run('t2') 多线程例子 2个线程同时并发执行1个任务 # -*- coding:utf-8 -*- import threading import time def run(

  • python保存文件方法小结

    1>保存为二进制文件,pkl格式 import pickle pickle.dump(data,open('file_path','wb')) #后缀.pkl可加可不加 若文件过大 pickle.dump(data,open('file_path', 'wb'),protocol=4) 读取该文件: data= pickle.load(open('file_path','rb')) 2>保存为二进制文件,npz格式 import numpy as np np.savez('file_path/

随机推荐