Python中函数总结

1、详细记录python的range()函数用法

>>> range ( 1 , 5 ) #代表从1到5(不包含5)
[ 1 , 2 , 3 , 4 ]
>>> range ( 1 , 5 , 2 ) #代表从1到5,间隔2(不包含5)
[ 1 , 3 ]
>>> range ( 5 ) #代表从0到5(不包含5)
[ 0 , 1 , 2 , 3 , 4 ]

再看看list的操作:

array =  [ 1 , 2 , 5 , 3 , 6 , 8 , 4 ]
#其实这里的顺序标识是
[ 1 , 2 , 5 , 3 , 6 , 8 , 4 ]
( 0 1 2 3 4 5 6 )
( - 7 , - 6 , - 5 , - 4 , - 3 , - 2 , - 1 )
 
>>> array[ 0 :] #列出0以后的
[ 1 , 2 , 5 , 3 , 6 , 8 , 4 ]
>>> array[ 1 :] #列出1以后的
[ 2 , 5 , 3 , 6 , 8 , 4 ]
>>> array[: - 1 ] #列出-1之前的
[ 1 , 2 , 5 , 3 , 6 , 8 ]
>>> array[ 3 : - 3 ] #列出3到-3之间的
[ 3 ]

 

2、python中input()和raw_input()的区别

raw_input() 与 input() __ Python

使用input和raw_input都可以读取控制台的输入

input()只能接受int,float或由它们组成的表达式

>>> input("input something: ")  
input something: 123  
123  

>>> input("input something: ")  
input something: abc  
Traceback (most recent call last):  
  File "<stdin>", line 1, in <module>  
  File "<string>", line 1, in <module>  
NameError: name 'abc' is not defined  

 input和raw_input在处理数字时是有区别的:

1).输入为纯数字时

input返回的是数值类型,如int,float

raw_inpout返回的是字符串类型,string类型

 

2).输入字符串为表达式

input会计算在字符串中的数字表达式,而raw_input不会。

 ============================================================================================

Python 3.3 中 input() 返回值类型是什么?

>>> xx=input("请输入x的值:")
请输入x的值:999
>>> yy=input("请输入yy的值:")
请输入yy的值:111
>>> xx+yy
'999111'


这个在python2.7里面相加是1100,为什么到3.32里面就成这个了?

 python3里面input默认接收到的事str类型,所以你输入的就是字符串999 和字符串111

而字符串+字符串的结果就是999111了

而python2里面却认为是int类型,所以相加才会是1100

你可以用type()看下是什么类型的就知道了

PS:如果你想得到int的话、可以用xx=int(input())这样就行了

例子:

xx=input("请输入x的值:")
yy=input("请输入yy的值:")
print(xx+yy)
aa = xx+yy
print(type(aa))

xx=int(input("请输入x的值:"))
yy=int(input("请输入yy的值:"))
print(xx+yy)
aa = xx+yy
print(type(aa))

 

 

3、Python中用format函数格式化字符串的用法

str.format()

 

通过位置

'{0},{1}'.format('kzc',18) 
'kzc,18'

'{},{}'.format('kzc',18) 
'kzc,18'

'{1},{0},{1}'.format('kzc',18) 
'18,kzc,18'

 字符串的format函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次

通过关键字参数

'{name},{age}'.format(age=18,name='kzc') 
'kzc,18'

通过对象属性

class Person: 
  def __init__(self,name,age): 
    self.name,self.age = name,age 
    def __str__(self): 
      return 'This guy is {self.name},is {self.age} old'.format(self=self) 

str(Person('kzc',18)) 
'This guy is kzc,is 18 old'

通过下标

p=['kzc',18]
'{0[0]},{0[1]}'.format(p)
'kzc,18'

4、join() 

用于将序列中的元素以指定的字符连接生成一个新的字符串

 

str = "-";

seq = ("a", "b", "c"); # 字符串序列

print str.join( seq );

结果如下:

a-b-c

5、strip()

声明:s为字符串,rm为要删除的字符序列

s.strip(rm)       删除s字符串中开头、结尾处,位于 rm删除序列的字符

s.lstrip(rm)      删除s字符串中开头处,位于 rm删除序列的字符

s.rstrip(rm)      删除s字符串中结尾处,位于 rm删除序列的字符

 

1. 当rm为空时,默认删除空白符(包括'\n', '\r',  '\t',  ' ')

 

>>> a = '     123'

>>> a.strip()

'123'

>>> a='\t\tabc'

'abc'

>>> a = 'sdff\r\n'

>>> a.strip()

'sdff'

 

2.这里的rm删除序列是只要边(开头或结尾)上的字符在删除序列内,就删除掉。

>>> a = '123abc'

>>> a.strip('21')

'3abc'   结果是一样的

>>> a.strip('12')

'3abc'

6、readline()和readlines()

.readlines() 一次读取整个文件,象read()一样。readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for ... in ... 结构进行处理。

.readline() 每次只读取一行,通常比 .readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用readline()

file = open(filename,'r')
done = 0
while not  done:
	aLine = file.readline()
	if(aLine != ''):
		print aLine,
	else:
		done = 1
file.close()


fh = open('c:\autoexec.bat')
for  line in  fh.readlines(): 
	print  line

 readlines时删除每行后面的换行:

line = line.strip('\n')  

 

 

 

 

 

 

猜你喜欢

转载自uule.iteye.com/blog/2353681