python 空间数据分析_用Python进行数据分析-2

函数

-如果你要重复使用相同的或者非常相似的功能,就写一个函数。

-函数使用def关键字声明,用return关键字返回值

def my_function(x, y, z=1.5):

if z > 1:

return z * (x + y)

else:

return z / (x + y)

-如果到末尾都没有return,则返回None

-函数可以有位置参数和关键字参数,关键字阐述通常用于指定默认值或者可选参数,在上面的代码中x和y是位置参数,而z是关键字参数,可以用下面的两种方法调用

a = my_function(5,6,z=0.7)

c = my_function(5,6,0.7)

d = my_function(4,8)

-关键字参数必须位于位置参数之后(如果有位置参数),可以以任意顺序指定关键字参数

*笔记:也可以用关键字参数传递位置参数。前面的例子可以写成

c = my_function(x=5,y=6,z=0.7)

命名空间、作用域,和局部变量

-函数乐意访问两种不同作用域的变量:全局变量(global)和局部变量(local)。

-python叫做命名空间

-如下函数

def func():

a = []

for i in range(5):

a.append(i)

-调用func之后,首先会创建出空列表a,然后添加5个元素,a会在该函数退出的时候被销毁

-假如我们像下面那样定义a

a = []

def func():

for i in range(5):

a.append(i)

-虽然可以在函数中对全局变量进行赋值操作,但是那些变量必须用global关键字声明成全局变量才可以

global a

返回多个值

def f():

a = 5

b = 6

c = 7

return a,b,c

a,b,c = f()

print(a)

print(b)

print(c)

-上面代码返回的是一个三元元组

-也可以写下面的代码,返回一个字典

def f():

a = 5

b = 6

c = 7

return {"a":a,"b":b,"c":c}

a= f()

print(a)

错误和异常处理

-在python中,如果语句有错误,会报错,想要处理异常和错误,用try和except关键字

def a(x):

try:

return float(x)

except:

return x

-当语句没有异常的时候,执行try后面的语句

-当语句出现异常的时候,执行except后面的语句

-我们还可以指定出现何种异常的时候,执行except后面的语句

-例如,我们想要在出现ValueError异常的时候执行except后面的语句,出现其他异常的时候正常报错

def a(x):

try:

return float(x)

except ValesError:

return x

-以上代码会在语句出现ValesError的时候执行return x

-我们还可以用元组来包含多个异常:

def a(x):

try:

return float(x)

except (TypeError,ValueError):

return x

-当你想要在try部分无论是否出现异常都要执行一段代码的时候,用finall:

f = open(path,'w'):

try:

write_to_file(f)

finally:

f.close()

-这里,文件f总会被关闭,相应的,你可以用else让只在try部分成功的情况下才执行代码:

f = open(path,'w'):

try:

write_to_file(f)

wxcept:

print('Failed')

else:

print("文件已经打开")

finally:

f.close()

文件和操作系统

-打开一个文件我们可以使用open函数开打开

f = open(path)#path是一个相对或者绝对的文件路径

-默认情况下,他是以只读模式(r)打开的,然后我们就可以像处理列表那样来处理这个文件句柄f了,比如对行进行迭代:

for line in f :

pass

-从文件中取出来的行都带有完整的行结束符(EOL)因此:

lines = [x.rstrip() for x in open(path)]#得到一组没有EOL的行

-如果使用open创建文件对象,一定要用close关闭它,关闭文件可以返回操作系统资源:

f.close()

-用with语句可以更容易的清理打开的文件:

with open(path) as f:

lines = [x.rstrip() for x in f]

-这样就可以在退出代码块的时候自动关闭文件

-read会从文件返回字符串,返回的内容由文件的编码决定

-seek将文件位置更范围文件中的指定字节、

-tell可以给出当前位置

import sys

sys.getdefaultencoding()#查看当前默认编码

-向文件写入可以使用write或者writelines方法。

-常用的文件方法

read([size])#以字符串的形式返回文件数据。可选的参数size用于说明读取的字节数

readlines9[size])#将文件返回为行列表

write(str)#将字符串写入文件

close()#关闭句柄

flush()清空内部io缓存区,并将数据强行写回磁盘

seek(pos)#移动到指定的文件位置

tell()#以整数形式返回当前文件的位置

closed#如果文件已经关闭则返回true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值