首页 > 编程语言 >小白也能看懂的Python基础(4)

小白也能看懂的Python基础(4)

时间:2024-07-02 08:59:16浏览次数:20  
标签:函数 Python 小白 能看懂 print 返回值 全局变量 def 定义

目录

函数

1、函数定义

2、函数的说明文档

3、函数的参数 

4、函数的返回值

介绍

返回值return

5、函数的变形

1、无参无返回值的函数

2、有参无返回值

 3、有参有返回值

4、无参有返回值的函数

6、函数的嵌套

7、变量的作用域

1、局部变量 

2、全局变量

3、global关键字

8、多函数程序执行流程

1、共用全局变量:

2、把函数返回值作为参数传递 

9、扩展:字符串的函数

函数

什么是函数?

  函数:是一个被命名的、独立的、完成特定功能的代码段,其可能给调用它的程序一个返回值

  通俗的说函数就是把一段可以实现某种功能的代码封装起来, 想要使用这个功能就可以直接调用函

        被命名的:在Python中,大部分函数都是有名函数

        完成特定功能的代码段:函数的功能要专一,专门为了完成某个功能而定义

        返回值:当函数执行完毕后,其可能会返回一个值给函数的调用处

  函数的主要作用

        ① 模块化编程

        ② 代码重用

函数中的几个重要概念:

        1.函数

        2.参数

        3.返回值

  如果把函数比作一个机器, 那么参数就是源材料, 返回值就是最终产品, 同时根据参数的不同最终

产品也会有不同。

举例说明:

 问: 1,2,3操作之后都会显示选择功能页面, 那么显示“选择功能”界面需要重复输出给用户,怎么实

现呢?

答: 使用函数把“选择功能”的相关代码封装起来, 当需要使用的时候直接调用函数, 这样就可以实现

代码的复用了

1、函数定义

定义格式

def 函数名(参数):
    函数体
    ...
    return 返回值

 函数的调用:

         函数名(参数)

注意:

        ① 不同的需求,参数可有可无

        ② 函数必须先定义后使用

2、函数的说明文档

什么是函数的说明文档?

思考:定义一个函数后,程序员如何书写程序能够快速提示这个函数的作用?

答:注释

思考:如果代码多,我们是不是需要在很多代码中找到这个函数定义的位置才能看到注释?如果想

更方便的查看函数的作用怎么办?

答:函数的说明文档(函数的说明文档也叫函数的文档说明)。

作用: 说明文档是为了让函数的调用者.理解函数的作用和调用方式.方便调用者使用函数.
定义格式: 在函数内的第一行代码定义说明文档.

                格式是 """说明"""

def sum2num(x,y):

    """这是求和函数.x是第一个值,y是第二个值"""

return x+y​

3、函数的参数 

  函数的参数可以让函数使用更加灵活

  思考:一个函数完成两个数1和2的加法运算,如何书写程序?

# 定义函数 
def add_num1(): 
result = 1 + 2 
print(result) 

# 调用函数 
add_num1()

  思考:上述add_num1函数只能完成数字1和2的加法运算,如果想要这个函数变得更灵活,可以

计算任何用户指定的两个数字的和,如何书写程序? 

  分析:用户要在调用函数的时候指定具体数字,那么在定义函数的时候就需要接收用户指定的数

字函数调用时指定的数字和定义函数时候接收的数字即是函数的参数

# 定义函数时同时定义了接收用户数据的参数a和b,a和b是形参 
def add_num2(a, b): 
      result = a + b 
      print(result) 


# 调用函数时传入了真实的数据10 和 20,真实数据为实参 
add_num2(10, 20)

带有参数的函数执行流程:

总结:

定义时小括号中的参数,用来接收参数用的,称为 “形参”

调用时小括号中的参数,用来传递给函数用的,称为 “实参”

那么来练一练吧~

要求:定义一个函数,完成前2个数完成加法运算,然后对第3个数,进行减法;然后调用这个函数。

注意:

使用def定义函数,要注意有3个参数。

调用的时候,这个函数定义时有几个参数,那么就需要传递几个参数。

4、函数的返回值

介绍

  1.生活中的返回值:

        我给儿子10块钱,让他给我买包烟. 这个例子中,10块钱是我给儿子的,就相当于调用函数时传递到参数,那么不管这个买烟的过程是什么样的, 最终的目标就是得到这包烟, 那么这包烟就是返回值。

  2.开发中的返回值:

        定义一个函数去计算数字计算, 那么不管数字的计算过程是什么样的, 最终这个函数的目的是把计算的结果返回给函数的调用者, 计算的结果就是返回值。

  综上所述:      

        所谓“返回值”,就是程序中函数完成一件事情后,最后给调用者的结果。

返回值return

想要在函数中把结果返回给调用者,需要在函数中使用return

def add2num(a, b): 
      c = a+b 
      return c

保存函数的返回值

  在“买烟”的例子中,最后儿子给你烟时,你一定是要从儿子手中接过来的. 程序也是如此,如果一个函数返回了一个数据,那么想要用这个数据,那么就需要保存

#定义函数 
def add2num(a, b): 
      return a+b 

#调用函数,顺便保存函数的返回值 
result = add2num(100,98) 
#因为result已经保存了add2num的返回值,所以接下来就可以使用了 
print(result)

5、函数的变形

1、无参无返回值的函数

def print_hello():
    print("hello")
#调用函数: 无参无返回值直接调用就行.
print_hello()

2、有参无返回值

def print_hello(count):
    for i in range(count):
        print("hello")
​
#调用函数: 有参的函数调用需要传递参数.
print_hello(5)

 3、有参有返回值

def sum2num(x,y):
    return x+y
#调用函数: 有参传递参数.有返回值要接收返回值.
result = sum2num(10,20)
result += 20 #接收返回值后可以继续使用.
print(result)

4、无参有返回值的函数

def get_name():
    num = random.randint(1,10)
    return "name"+ str(num)
#调用函数: 又返回值.需要接收返回值.
name = get_name()
print(name)
​

6、函数的嵌套

  所谓函数嵌套调用指的是一个函数里面又调用了另外一个函数

def testB():
    print('---- testB start----')
    print('这里是testB函数执行的代码...(省略)...')
    print('---- testB end----')

def testA():
    print('---- testA start----')
    testB()
    print('---- testA end----')

testA()

 运行结果为:

执行过程:

  如果函数A中,调用了另外一个函数B,那么先把函数B中的任务都执行完毕之后才会回到上次 函数A执行的位置 。

7、变量的作用域

 变量作用域指的是变量的作用范围(变量在哪里可用,在哪里不可用)

主要分为两类:局部变量和全局变量

 作用范围划分:
        1.局部变量: 只能在函数内部生效.函数运行结束后.局部位置的值都会消失.
            定义在函数内
        2.全局变量: 在该模块内的所有函数中都可以使用的变量.它会随着解释器的停止而消失.
            定义在函数外
        3.局部位置要想修改全局变量.需要使用global关键词声明之后才能修改.

1、局部变量 

def testA(): 
      a = 100 
      print(a) 

testA()    # 100 
print(a)    # 报错:name 'a' is not defined

变量a是定义在`testA`函数内部的变量,在函数外部访问则立即报错,

局部变量的作用:在函数体内部,临时保存数据,即当函数调用完成后,则销毁局部变量

2、全局变量

所谓全局变量,指的是在函数体内、外都能生效的变量。

思考:如果有一个数据,在函数A和函数B中都要使用,该怎么办?

答:将这个数据存储在一个全局变量里面

# 定义全局变量a 
a = 100 

def testA(): 
      print(a)    # 访问全局变量a,并打印变量a存储的数据 


def testB(): 
      print(a)    # 访问全局变量a,并打印变量a存储的数据 


testA()    # 100 
testB()    # 100

3、global关键字

思考:`testB`函数需要修改变量a的值为200,如何修改程序? 

a = 100 

def testA(): 
      print(a) 


def testB(): 
      a = 200 
      print(a) 


testA()    # 100 
testB()    # 200 
print(f‘全局变量a = {a}‘)    # 全局变量a = 100

`testB`函数内部的 a = 200 是定义了一个局部变量

使用 global关键字 可以在函数内部声明变量为全局变量, 如下所示:

a = 100 

def testA(): 
      print(a) 

def testB(): 
      # global 关键字声明a是全局变量 
      global a 
      a = 200 
      print(a) 


testA()    # 100 
testB()    # 200 
print(f‘全局变量a = {a}‘)    # 全局变量a = 200

总结:

一、局部变量: 就是在函数内部定义的变量

        1、其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的

        2、因为其作用范围只是在自己的函数内部,所以不同的函数可以定义相同名字的局部变量(打个比方,把你、我是当做成函数,把局部变量理解为每个人手里的手机,你可有个iPhone8,我当然也可以有个iPhone8了, 互不相关)

        3、局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储

二、全局变量: 如果一个变量,既能在一个函数中使用,也能在其他的函数 中使用,这样的变量就是全局变量, 这样的变量一般在函数外部定义。

        1、在函数外边定义的变量叫做全局变量

        2、全局变量能够在所有的函数中进行访问

8、多函数程序执行流程

一般在实际开发过程中,一个程序往往由多个函数组成,并且多个函数共享某些数据,如下所示:

1、共用全局变量:
# 1. 定义全局变量 
glo_num = 0 

def test1(): 
      global glo_num    # 修改全局变量 
      glo_num = 100 


def test2(): 
      # 调用test1函数中修改后的全局变量 
      print(glo_num) 

# 2. 调用test1函数,执行函数内部代码:声明和修改全局变量 
test1() 
# 3. 调用test2函数,执行函数内部代码:打印 
test2()    # 100
2、把函数返回值作为参数传递 
def test1(): 
      return 50 


def test2(num): 
      print(num) 


# 1. 保存函数test1的返回值 
result = test1() 

# 2.将函数返回值所在变量作为参数传递到test2函数 
test2(result)    # 50

9、扩展:字符串的函数

字符串是python中最常见的容器类型. 里面存的是一个一个的字符.

我们有很多需求去使用字符串.以及对字符串进行各种操作.比如:查找.切割.替换.判断.


    # "".startswith()是否以xx开头
    # "".endswith() 是否以xx结尾
    # "".isdigit()是否是纯数字的字符
    # "".isalnum() # 判断是否是字母和数字
    # "".isalpha() 判断是否纯字母
    # "".join() 把字符串当做分隔符去分隔容器的元素.
    # "".lower()转小写
    # "".upper()转大写
    # "".strip() # 默认去掉两端的空格

# "".startswith()是否以xx开头
# "".endswith() 是否以xx结尾
print("hello".startswith("h"))#True
print("hello".startswith("a"))#False
print("hello".endswith("l"))#False
print("hello".endswith("o"))#True

# "".isdigit()是否是纯数字的字符
print("12345".isdigit())#True
print("12345a".isdigit())#False
# 使用场景,可以判断一个字符串是否是纯数字的.
# num = input("录入一个数")
# if num.isdigit():
#     print(int(num))
# else:
#     print("请录入纯数字")


# "".isalnum() # 判断是否是字母和数字
print("123".isalnum())#True
print("123abc".isalnum())#True
print("abc".isalnum())#True
print("Abc".isalnum())#True
print("A$bc".isalnum())#False

# "".isalpha() 判断是否纯字母
print("abc".isalpha())#True
print("abc1123".isalpha())#False

# "".join() 把字符串当做分隔符去分隔容器的元素.
list1 = ["1","2","3","4"]
print("#".join(list1))# "1#2#3#4"

# "".lower()转小写
print("ABCdef".lower())# abcdef

# "".upper()转大写
print("ABCdef".upper())#ABCDEF

# "".strip() # 默认去掉两端的空格
s1 = " he llo "
s2 = s1.strip()
print(s1)
print(s2)

print("####hello####".strip("#"))#hello

标签:函数,Python,小白,能看懂,print,返回值,全局变量,def,定义
From: https://blog.csdn.net/weixin_52854743/article/details/139812755

相关文章

  • 2024华为OD机试真题- 电脑病毒感染-(C++/Python)-C卷D卷-200分
     2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++)      题目描述一个局域网内有很多台电脑,分别标注为0~N-1的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用t表示。其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。......
  • Python毕业设计-基于Python实现的深圳链家租房可视化系统源码+文档说明+条形图+数据库
    文章目录源码下载地址项目介绍项目功能界面预览项目备注源码下载地址源码下载地址点击这里下载代码项目介绍项目历经数据采集->数据展示->数据分析->数据预测lianjia_1:scrapy爬虫项目lianjia_show:flask对采集的数据进行展示链家房价预测:采集的数据进行分析......
  • 基于Python网络爬虫的二手房数据采集及可视化分析项目源码+使用教程+爬虫+报告PPT+详
    文章目录源码下载地址项目介绍项目功能界面预览项目备注源码下载地址源码下载地址点击这里下载代码项目介绍基于Python的南京二手房数据采集及可视化分析1内容简介首先通过爬虫采集链家网上所有南京二手房的房源数据,并对采集到的数据进行清洗;然后,对清洗后的数......
  • 【秋招突围】2024届秋招笔试-科大讯飞笔试题-03-三语言题解(Java/Cpp/Python)
    ......
  • python二级DAY3:turtle
    第二章:python基本图形及海龟图体系目标:绘制简单图形一、深入理解python语言:不同编程语言的初心和适用对象:C语言:语言本质:理解计算机系统结构解决问题:性能Java:学习内容:面向对象、跨平台、运行时语言本质:理解主客体关系解决问题:跨平台适用对象:软件类专业C++语言本......
  • 计算机二级python复习日记DAY1
    试卷内容及成绩分布选择和编程题选择:选择题期间只允许鼠标左键操作,全部提交完毕后进入操作题模式,键盘才会自动解锁(注意:选择题只能进入一次,还有一定要保证选择题要有20分以上,总分超过60分才能有证书)10分的公共基础题,内容较为庞杂,只需要在做真题的时候积累一下就行30分的pyt......
  • Pip源一键切换: 开源项目PRMS实现便捷管理Python Pip源
    Slogan:每使用1次都相当于节约了2分钟时间,Enjoyit......
  • python教程---网络爬虫
    7.1urllibUrllib是Python内置的一个用于读取来自Web的数据的库。它是一个请求库,可以用来发送HTTP请求,获取网页内容,支持多种HTTP方法,如GET和POST等。使用Urllib读取网页内容的步骤如下:导入Urllib库中的request模块。importurllib.request使用urlopen()函数发送HTTP请求,......
  • Python进阶教程--科学计算基础软件包NumPy
    NumPy(NumericalPython)是一个开源的Python库,用于科学计算。它提供了一个高性能的多维数组对象和用于处理这些数组的工具。NumPy是Python科学计算的基础库,被广泛用于数据分析、机器学习、科学计算等领域。1.1NumPy概述NumPy是Python的一个扩展库,主要用于处理大型多维数组......
  • python 多版本python 共存 ,pip混乱问题
    问题:windows环境下装了两个版本的python,先装了3.11,再装了3.8想在3.8安装包,但是使用pip总是定位到3.11上去。全都配置了环境变量,他就认第一次安装的。解决办法:进入第二个安装的python3.8文件夹,python.exe改成python38.exe  (这个都明白什么意思吧,默认都是python.exe,你......