码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习笔记(四)

时间:2016-06-04 23:42:12      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:

一、内置函数

数学运算

abs(-5)                          # 取绝对值,也就是5

round(2.6)                       # 四舍五入取整,也就是3.0

pow(2, 3)                        # 相当于2**3,如果是pow(2, 3, 5),相当于2**3 % 5

cmp(2.3, 3.2)                    # 比较两个数的大小

divmod(9,2)                      # 返回除法结果和余数

max([1,5,2,9])                   # 求最大值

min([9,2,-4,2])                  # 求最小值

sum([2,-1,9,12])                 # 求和

 

类型转换

int("5")                         # 转换为整数 integer

float(2)                         # 转换为浮点数 float

long("23")                       # 转换为长整数 long integer

str(2.3)                         # 转换为字符串 string

complex(3, 9)                    # 返回复数 3 + 9i

 

ord("A")                         # "A"字符对应的数值

chr(65)                          # 数值65对应的字符

unichr(65)                       # 数值65对应的unicode字符

 

bool(0)                          # 转换为相应的真假值,在Python中,0相当于False

在Python中,下列对象都相当于False: [], (), {}, 0, None, 0.0, ‘‘

 

bin(56)                          # 返回一个字符串,表示56的二进制数

hex(56)                          # 返回一个字符串,表示56的十六进制数

oct(56)                          # 返回一个字符串,表示56的八进制数

 

list((1,2,3))                    # 转换为表 list

tuple([2,3,4])                   # 转换为定值表 tuple

slice(5,2,-1)                    # 构建下标对象 slice

dict(a=1,b="hello",c=[1,2,3])    # 构建词典 dictionary

 

序列操作

all([True, 1, "hello!"])         # 是否所有的元素都相当于True值

any(["", 0, False, [], None])    # 是否有任意一个元素相当于True值

sorted([1,5,3])                  # 返回正序的序列,也就是[1,3,5]

reversed([1,5,3])                # 返回反序的序列,也就是[3,5,1]

技术分享

# 匿名函数
f=lambda a,b:a+b
print(f(2,3))                                          # 5
 
# abs() 取绝对值
print(abs(-111))                                        # 111
 
# all() 循环可迭代对象的每个元素,都为真则返回True,否则返回假
# 0,None ,"",[],(),{} 是假的
print(all([11,22]))                                    # True
 
# any 有一个为真,全部都为真
print(any([0,0,None]))                                   #False
 
# ascii 在对象类中找 __repr__,获取返回值
class D():
    def __repr__(self):
        return ‘hello‘
d=D()
print(ascii(d))                                        #hello
 
# bin 将十进制转换成2进制
# oct() hex()
print(bin(11))                                          #0b1011
 
#各种进制转换成十进制可以用int()
print(int(‘11‘,base=2))                                    #将二进制‘11‘转换成十进制数 3
 
# bytearry   字节列表
 
# chr() 找到数字对于的ascii码
# ord() ascii码对应的数字
# chr ord 只适用于ascii码
print(chr(65))                                       # A
print(ord(‘A‘))                                      # 65
 
# callable 后面加个括号是看否能执行
#complie() 接受一个字符串,将其转换成函数代码
 
# divmod 返回除法的(值,余数)
print(divmod(10,3))                                   #(3,1)
 
# eval 计算器的功能 返回结果
print(eval(‘a+60‘,{‘a‘:90}))                               # 150
print(eval(‘3+4*6/7+((1+2)-5)‘))                           # 4.428571428571429
 
#exec,执行python代码,没有返回值
exec("for i in range(5):print(i)")                         # 直接循环输出0,1,2,3,4
 
# filter(函数,可迭代的对象)
# 循环可以迭代的对象,传入函数中执行,如果不符合就过滤
def fun(s):                                            #定义判断一个数是否是偶数的函数
    if s%2==0:
        return True
    else:
        return False
ret=filter(fun,[1,2,3,4,5,6,7,8])
for i in ret:
    print(i)                                          # 打印出2,4,6,8
 
#用匿名函数改写一下
ret1=filter(lambda x:x%2==0,[1,2,3,4,5,6,7,8])
for i in ret1:
    print(i)                                                    # 2,4,6,8
 
#map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回
ret=map(lambda x:x+100,[1,2,3])
for i in ret:
    print(i)                                                  # 101,102,103
 
# globals() 获取当前文件的所有全局变量
# locals()  获取当前文件的所有局部变量
# hash()    获取哈希值
# isinstance 看某个对象是不是某个类创建的
 
#iter() 创建一个可以被迭代的对象 next()取下一个值
k=iter([1,2,3,4])
print(next(k))                                           # 1
 
# pow() 求指数
print(pow(2,10))                                     #1024
 
# round() 四舍五入
# #zip
l1=[1,2,3,4]
l2=[‘a‘,‘b‘,‘c‘,‘d‘]
k=zip(l1,l2)
for i in k: 
    print(i)                                            #打印出(1,a),(2,b)....

  

二、文件操作

打开文件——open(‘file‘[,‘mode‘]) 

  • r ,只读模式【默认】
  • w,只写模式【不可读:不存在则创建;存在则清空内容;】
  • x, 只写模式【不可读:不存在则创建,存在则报错】
  • a, 追加模式【不可读;不存在则创建;存在则只追加内容;】

  "+" 表示可以同时读写某个文件,比如r+,w+,x+ 和 a+ 。"b"表示以字节的方式操作rb或r+b,wb 或 w+b,xb 或 x+b、ab 或 a+b,以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,这些都需要程序员自己来做转换,下面从代码来操作一遍。

常见文件操作方法:

方法

描述

f.close()

关闭文件,记住用open()打开文件后一定要记得关闭它,否则会占用系统的可打开文件句柄数。

f.name()

获取文件名称

f.next()

返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的。

f.fileno()

获得文件描述符,是一个数字。返回一个长整型的”文件标签“

f.flush()

刷新输出缓存,把缓冲区的内容写入硬盘

f.isatty()

如果文件是一个终端设备文件(Linux系统中),则返回True,否则返回False。

f.read([size])

读出文件,size为读取的长度,以byte为单位

f.readline([size])

读出一行信息,若定义了size,则读出 一行的一部分

f.readlines([size])

读出所有行,也就是读出整个文件的信息。(把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分)

f.seek(offset[,where])

把文件指针移动到相对于where的offset位置。where为0表示文件开始处,这是默认值 ;1表示当前位置;2表示文件结尾。(注意:如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾)

f.tell()

获得文件指针位置,标记当前位置,以文件开头为原点

f.truncate([size])

把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。

f.write(string)

把string字符串写入文件,write()不会在str后加上一个换行符。

f.writelines(list)

把list中的字符串一行一行地写入文件,是连续写入文件,没有换行。

>>> file=open(‘test.txt‘)
>>> file.read (4)  #读取前4个字节
‘hell‘
>>> file.read(6)  #注意这里是在刚才读过的基础上再向后读的
‘o\nworl‘
>>> file.read ()  #不指定size,则读到文件结尾
‘d\nhello\npython‘
>>> file.read()  #再读时已是文件结尾
‘‘
>>> file.seek(0)  #将文件位置定位到第一个字节
>>> file.readline ()  #一次读一行
‘hello\n‘
>>> file.readline ()
‘world\n‘
>>> file.seek(0)   #将文件定位到开始
>>> file.readlines ()   #读取整个文件的内容
[‘hello\n‘, ‘world\n‘, ‘hello\n‘, ‘python‘]
>>> file .tell() #读完之后显示seek位置,即文件的最后了
27L   #以长整型表示
>>> file.name   #查看文件的名称
‘test.txt‘
>>> file.close() #关闭文件

  

三、递归 

在函数内部,可以调用其他函数;
如果一个函数在内部调用自身本身,这个函数就是递归函数。

利用函数编写如下数列:

斐波那契数列指的是这样一个数列 
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,
610,987,1597,2584,4181,6765,10946,17711,28657,46368 ...

实现代码如下:

def func1(arg1,arg2):
    if arg1 == 0:
    #print arg1,arg2
        pass
    arg3 = arg1 + arg2
    if arg3 > 1000:
        return arg3
    return func1(arg2,arg3)   #这里return ,所有有值

  

 

Python学习笔记(四)

标签:

原文地址:http://www.cnblogs.com/suliuer/p/5559813.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!