前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python基础二

python基础二

作者头像
不断折腾
发布2019-09-23 10:22:01
3250
发布2019-09-23 10:22:01
举报
文章被收录于专栏:折腾折腾再折腾

一、文件的处理

在学习爬虫的时候对数据的储存和文件的处理有一定的了解,

这里就不多说了,链接:数据的存储(一)数据的存储(二)

掌握好文件处理的步骤很好理解,对于其他文件的处理不懂的(数据库)之类的,可以先了解open()即可。

二、函数

函数概述:

将一个功能写好,我们给它起一个名字,方便我们下次使用,减少代码的重复。

1、创建一个函数并计算1+2并且输出

def add():

x = 1+2

print(x)

add()

def 声明一个函数

add 你声明一个函数起的名字

add()调用该函数

2、返回值

按照1中的例子,我们如果不想打印x的值,我们下面需要用到这个x,我只想得到这个x的值。就会用到函数的返回值。我们可以将1中的函数修改成有返回值的函数。

def add():

x = 1+2

return x

print(add())

return:返回值,即x。值得注意的是:return代表一个函数的结束。后面的代码不再执行。

add():此时我们调用add()就不会输出x的值,而add()就代表x的值,我们想要输出的话,输出add()即可。

有更多疑问?

如果1中我们没有返回值,我们输出add()返回的内容是什么?

可不可以返回多个值?

可以自己试试!

3、参数

想一个问题,我们add这个函数只是固定的计算了1+2,如果我们想要计算用户输入的值怎么办?这里就用到了参数。

3.1位置参数(必须传入值,一一对应,多了,少了都会报错。)

a =int(input("输入a:"))

b =int(input("输入b:"))

def add(x,y):

return x+y

c = add(a,b)

print(c)

add(a,b):将a,b传递到add()函数中,a对应的是x,b对应的是y。x,y是形式参数,a,d是实际参数。a,b和x,y是一一对应的关系。

另:我们也可以这样传参add(1,2)位置传参,也可以add(x=1,y=b)关键字传参,也可以混合使用,但是位置传参在前,关键字传参在后。add(x=1,b)不可以。

3.2默认参数(可传,可不传)

默认参数:当传入的有值时我们就是用传入的值,当没有传入值时,我们可以使用默认值。

注意:默认参数必须在位置参数的后面。

a =int(input("输入a:"))

b =int(input("输入b:"))

def add(x,y=10):

return x+y

c = add(a)

print(c)

d = add(a,b)

print(d)

add(x,y=10):中的y=10就是默认参数,当传入2个参数时,就不使用默认值,当只传入一个参数的时候,那么第二个参数就会传入默认值,即10。

3.3动态参数

动态参数:当我们不确定函数需要传递的参数数量时,比如计算多个数的和,我们就可以用到动态参数。

def add(*args):

sum = 0

for i in args:

sum +=i

return sum

add(1,2,3)

add(1,1,1,1,1,1)

*args:在参数名之前加一个*号之后,就可以传递任意数量的参数,args这个名字可以换,没有问题,但是相当于大家都统一这样写,这样大家一看就知道,动态参数的位置需要放在默认参数的前面,这句话不是说一定要有默认参数,如果有需要放在默认参数前。

def add(**kwargs):

print(kwargs)

add(a=1,b=2,c=3)

add(a=1)

**kwargs:加上两个*以关键字的形式传递,和我们的字典一样a:1,b:2,c:3,输出的是一个字典。

注意:如果两者都需要,*args需要放在**kwargs的前面

总结:传递参数的顺序:位置参数,*args,默认参数,**kwargs,没有其中任意一个参数,也还是这个顺序。当有动态参数时,默认参数必须以关键字的形式传递。

3.4动态传递列表和字典。

list = [1,2,3]

def add(*args):

print(args)

如果我们直接add(list),那么我们输出的也是一个列表,即没有分开

我们想达到add(1,2,3)这样的效果,只需要这样:add(*list)

同理:有这样一个字典dict={"name":"wmm","sex":"nan"}

只需要add(**dict)即可。

另:通常还有人将函数叫为方法,函数和方法是一个东西,不过我们通常将内置函数叫函数,自定义的叫方法,这个无所谓。

误区:

这个误区曾经在廖雪峰老师的博客中看到,觉得很有意思,在这里分享给大家。

def add(list=[])

list.append(1)

print(list)

add()#结果:[1]

add()#结果:[1,1]

add()#结果:[1,1,1]

我们发现,每次调用的时候都会在原来的list中添加,而我们想要的效果是只添加成[1]

我们可以这样写:

def add(list=[])

if list !=None:

list =[]

list.append(1)

print(list)

即可。

三、全局变量和局部变量

x = 1

def fun():

print(x)

这里的x为全局变量,在函数中可以引用到

def fun():

x=1

print(x)

报错:这里x为局部变量,在全局中引用不到,所以报错。

x = 1

def fun():

x+=10

print(x)

报错:我们想要在函数中改变改变全局变量的值,需要用global声明他是一个全局变量。

即修改成:

x = 1

def fun():

global x

x+=10

print(x)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-09-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python入门到放弃 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档