函数第一部分:经典的永远是简单的-Python基础前传(10)

简介: (一)前言对于零基础学习Python或者转行做数据分析的朋友,跟jacky交流最多的问题就是Python网络爬虫学习问题;比如说要爬取美团,或者说爬取携程等等。在爬取的过程中,这些朋友总是会遇到这样或者那样的问题,我也看到了很多规范和不规范的代码,很多朋友都是模仿视频教学中的代码遇到了问题,之后来跟jacky探讨得;说说jacky的立场:对于零基础学习Python的朋友,jacky是反对在基础不牢的时候,学习爬虫的。

(一)前言

对于零基础学习Python或者转行做数据分析的朋友,跟jacky交流最多的问题就是Python网络爬虫学习问题;比如说要爬取美团,或者说爬取携程等等。在爬取的过程中,这些朋友总是会遇到这样或者那样的问题,我也看到了很多规范和不规范的代码,很多朋友都是模仿视频教学中的代码遇到了问题,之后来跟jacky探讨得;


说说jacky的立场:对于零基础学习Python的朋友,jacky是反对在基础不牢的时候,学习爬虫的。

因为爬虫入门容易,但能做到应用还是比较复杂的,这需要我们综合能力是很高的,如果不是计算机专业的同学,我们还是要把基础打牢,再去学习爬虫;

jacky要用十分钟教你们一个爬虫的实操也很简单,但是作为学习的我们不能自欺欺人,有些网站可以爬取,并不是因为你会了爬虫,而是这个网页根本就没有爬取的意义;

我们往往是由于一些基础性的错误导致爬取数据不能成功,比如说虽然有BeautifulSoup这个强大的库,但正则我们还是要会用的,看到太多朋友“流水账的代码”(面向过程编程),朋友们总是有些网络数据可以爬取,那稍微复杂一点的代码就爬取不了,这一切的原因都是基础不牢,强行练习爬虫,导致“走火入魔”。 

做任何事,最重要的都是基础,学习Python,学习数据分析也一样。在Python中,作为Python学习中的重中之重,函数、对象和模块是一定要熟记并且熟练应用的,本次分享,jacky将给大家Python函数的第一部分:经典的永远是简单的。

(二)为什么Python中要有函数

2.1 函数存在的用意

  • 如果Python中不创造出函数,那Python只能是面向过编程,代码中出现重复功能我们只能再次写一遍;

  • 如果有了函数,Python就可以面向函数编程,我们在函数里写相应的功能,在代码中有同样功能需求时,我们就可以直接调用函数,免去了重复劳动;

2.2 函数存在的本质

  • 函数存在的本质就是实现相应功能,封装在函数中

2.3 面向过程、面向函数、面向对象的简单解释

  • 面向对象和面向过程的简单解释:

    • 面向过程:和你谈业务。把所有的事情都谈妥了,开始做项目。一整套项目做下来了,有需求要变,还得整个改变。

    • 面向函数:一整套项目,分成了不同独立的功能组,有需求要改变,只改变相应的功能组,不用改变整个业务。

    • 面向对象:边做业务,边谈需求,这样就能够避免上面的问题。

(三)创建和调用函数

3.1 创建函数(定义函数)

  • 函数创建的组成:

    • 关键字:def

    • 函数名

    • 括号

    • 返回值

#定义函数def xx():
    print'jacky'#执行函数xx()

3.2 函数的返回值

比如我们要定义几个函数,这几个函数就是用来实现几个功能的,我们假定这个函数是发邮件的,那发完邮件我们要知道邮件发送的成功还是没成功,我们需要这样一个反馈,这是我们就需要函数的返回值

--没有返回值def email():
    print('我们要发邮件了')#调用函数email()
>>>我们要发邮件了

--设定返回值#那问题来了,我们调用的时候,怎么知道邮件发送成功没成功?是不是得给我返回一个值,告诉我们一下,否则我怎么知道这个功能是不是实现了,这时就要用到关键字returndef email():
    print('我们要发邮件了')    
return'我告诉你了,邮件发送了,给你反馈了'
ret = email()#执行函数#函数return后面是什么值,ret等于返回值

>>>我们要发邮件了 >>>我告诉你了,邮件发送了,给你反馈了

3.3 形式参数与实际参数

  • 形式参数和实际参数比较抽象,这里jacky举个栗子,来给大家说清楚这两个概念,假设让A同学帮我取快递,我们用代码和函数的形式来模拟这个过程,来帮助大家理解Python中参数这个概念:

    • 我们假设A的职业就是帮别人取快递的,那我们要委托A给我们取快递,我们就要给他一定凭证,是吧,有了这个凭证A才能取回我们的快递;

3.3.1 第一阶段的设计思路

def qukuaidi():
    站起来
    转身
    走到快递的地点
  • 我们粗略的用站起来,转身,走到快递的地点来模拟取快递这一个过程

3.3.2 第二阶段的设计思路

  • 小A取快递,不光是给你一个人取,不能是给你取一个就写一个程序,给别人取,在重新再写一遍这个程序是,是吧,这样就太繁琐了,所以呢,在我们创建取快递这个函数的时候,我们要给函数括号里一个参数,比如说是anyone,这个anyone可以是取快递的凭证,比如说只有用你的手机号,或是你的身份证号才能取到你的快递,那我们模拟的代码就是:

def qukuaidi(anyone):
    #站起来
    #转身
    #走到快递的地点
    print(anyone)    
   return True #返回True就是反馈给我们取成功了

3.3.3 第三阶段的设计思路

  • 下面就是A要给我特定这个人拿快递了,那上面那个参数,或者说是凭证anyone,就是特定的了,比如说是这个anyone,用我的名字jacky_zhuyuanlu作为拿快递的凭证,我们就可以调用上面我们设计的函数了

def qukuaidi(anyone):
    #站起来
    #转身
    #走到快递的地点
    print(anyone)    
   return True
   qukuaidi('jacky_zhuyuanlu')
   >>> jacky_zhuyuanlu
  • 上面的代码,我们在规范的改进一下:

def qukuaidi(anyone):
    #站起来
    #转身
    #走到快递的地点
    print(anyone)    
   return True
   ret= qukuaidi('jacky_zhuyuanlu')
   if ret:        print('成功')
   >>> jacky_zhuyuanlu
   >>> 成功
  • 以上,anyone就叫形式参数,我们实际传的值也就参数,jacky_zhuyuanlu就叫实际参数;

我们把上面的过程在引申一下:我们要设计这样一个程序,就是A取快递,只给jacky取,不给别人取,那我们的代码就要这样实现:

def qukuaidi(anyone):
    #站起来
    #转身
    #走到快递的地点
    #print(anyone)
    if p == 'jacky_zhuyuanlu':        
       return True    else:        
       return False

ret2 = qukuaidi('andy')
if ret2:    print('成功')
else:    print('失败')
>>> 失败
目录
相关文章
|
8天前
|
Python
python函数的参数学习
学习Python函数参数涉及五个方面:1) 位置参数按顺序传递,如`func(1, 2, 3)`;2) 关键字参数通过名称传值,如`func(a=1, b=2, c=3)`;3) 默认参数设定默认值,如`func(a, b, c=0)`;4) 可变参数用*和**接收任意数量的位置和关键字参数,如`func(1, 2, 3, a=4, b=5, c=6)`;5) 参数组合结合不同类型的参数,如`func(1, 2, 3, a=4, b=5, c=6)`。
13 1
|
1天前
|
Serverless 开发者 Python
《Python 简易速速上手小册》第3章:Python 的函数和模块(2024 最新版)
《Python 简易速速上手小册》第3章:Python 的函数和模块(2024 最新版)
25 1
|
1天前
|
索引 Python
Python高维变量选择:SCAD平滑剪切绝对偏差惩罚、Lasso惩罚函数比较
Python高维变量选择:SCAD平滑剪切绝对偏差惩罚、Lasso惩罚函数比较
|
3天前
|
Python
python学习-函数模块,数据结构,字符串和列表(下)
python学习-函数模块,数据结构,字符串和列表
25 0
|
3天前
05-python之函数-函数的定义/函数的参数/函数返回值/函数说明文档/函数的嵌套使用/函数变量的作用域
05-python之函数-函数的定义/函数的参数/函数返回值/函数说明文档/函数的嵌套使用/函数变量的作用域
|
4天前
|
Python
python学习10-函数
python学习10-函数
|
4天前
|
Python
python学习4-内置函数range()、循环结构、循环控制语句、else语句、嵌套循环
python学习4-内置函数range()、循环结构、循环控制语句、else语句、嵌套循环
|
7天前
|
测试技术 开发者 Python
Python中的装饰器:优雅而强大的函数修饰工具
在Python编程中,装饰器是一种强大的工具,用于修改函数或方法的行为。本文将深入探讨Python中装饰器的概念、用法和实际应用,以及如何利用装饰器实现代码的优雅和高效。
|
12天前
|
Python
Python函数学习应用案例详解
【4月更文挑战第7天】学习Python函数的应用,包括计算两数之和、判断偶数、计算阶乘、生成斐波那契数列及反转字符串。示例代码展示了函数接收参数和返回结果的功能,如`add(a, b)`求和,`is_even(num)`判断偶数,`factorial(n)`计算阶乘,`fibonacci(n)`生成斐波那契数,以及`reverse_string(s)`反转字符串。
13 1
|
13天前
|
Python
python基础篇:什么是函数?函数有什么用?
python基础篇:什么是函数?函数有什么用?
25 3