首页 > 编程 > Python > 正文

Python易忽视知识点小结

2020-02-23 01:24:41
字体:
来源:转载
供稿:网友

这里记录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             
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表