第7课 初识函数

一、函数

1、函数的概念:封装一段代码,实现特定功能的代码块。

2、函数的定义:def func():

  1)代码不重复

  2)修改方便

def func():
    print('step1...')
    print('step2...')

func() #函数的调用

# 输出结果
step1...
step2...

3、函数的效果类似---变量

  1)变量:一个对象的名字

  2)函数:一段代码的名字

4、函数在调用的时候才能执行函数体里面的代码

>>> def func():
      print('函数')

    
>>> func()  # 调用函数
函数
>>> type(func)  # 查看类型
<class 'function'>

5、函数的定义一定在函数的调用之前

6、type(func)----<class 'function'>

7、None:函数无返回值---没有return

def func():
    print('step1...')
    print('step2...')

func()
print(func())

# 输出结果

step1...
step2...
step1...
step2...
None  # 无返回值

  加上return

def func():
    print('step1...')
    print('step2...')
    return '我是返回值'
func()
print(func())

# 结果显示
step1...
step2...
step1...
step2...
我是返回值

8、def func(a, b): ----a,b为必填形参

  1)形参:形式主义,在函数定义的时候

  2)实参:实际运行,在函数调用的时候

9、在pycharm中,如果形参被使用,则显示为亮色,否则是灰色的。如下,a被调用,显示为橙色,b未被调用,显示为灰色。

  函数中参数的赋值

>>> def func(a, b):
      a = 100       # 函数内部,a被赋值为100
      print(a)

    
>>> func(1, 2)   #函数调用时,a的初始值为1
100   # 所以,输出结果为100

10、func(a = 1, 2),函数的错误调用。前面是  变量 = 值  的形式,后面一定也用这样的形式。

>>> func(1, 2)
100
>>> def func(a, b):
      print(a + b)

    
>>> func(a = 1, 2)   # 这样写是错误的
SyntaxError: positional argument follows keyword argument
>>> func(a=1, b=2)   # 如果是 变量 = 值,后面要保持队形
3

 

11、return a + b----返回值,使用return返回值

>>> def func(a, b):
      return a + b

>>> sumData = func(1, 2)
>>> print(sumData)
3

 

  或者直接写成下面的形式。print(func(1, 2))等价于:

  1)func(1, 2)函数的调用

  2)print(3)

>>> def func(a, b):
      return a + b

>>> print(func(1, 2))
3

 

12、全局变量:在函数外部定义的变量

>>> name = 'Tom'  # 全局变量
>>> def func():
      print(name)

    
>>> func()
Tom
>>> print(name)
Tom

 

13、局部变量:在函数内部定义的变量,它的生存空间只在函数内部。在函数外部不能被引用。

>>> def fun1():
      name = 'Lily'  # 局部变量
      print(name)

    
>>> fun1()
Lily
>>> print(name)  # 在函数外部不能被引用
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    print(name)
NameError: name 'name' is not defined

 

 14、return可以返回任意类型

>>> def fun():
      return [1, 2, 3, 4, 5, 6, 7, 8, 9]  # 返回列表

>>> fun()
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> def fun1():
      return (1, 2, 3)  # 返回元组

>>> fun1()
(1, 2, 3)

 

   1)函数一旦执行return,该函数就调用完成;函数内部的return后面的语句就没有任何意义

>>> def fun():
      print('调用return前')
      return '调用return'
      print('本句不执行!')

    
>>> fun()
调用return前
'调用return'

 

 15、类型转换:str()、int()、float()

  1)int(a):a一定是整数值,否则会报错

>>> a = 'xxyy'
>>> int(a)
Traceback (most recent call last):
  File "<pyshell#21>", line 1, in <module>
    int(a)
ValueError: invalid literal for int() with base 10: 'xxyy'

 

  2)类型转换的使用举例

>>> data = input('请输入一个数值:')
请输入一个数值:3
>>> type(data)
<class 'str'>
>>> print(data + 68)
Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    print(data + 68)
TypeError: must be str, not int
>>> print(int(data) + 68)
71
# 或者用下面的方法,直接在输入时转换成int型
>>> data = int(input('请输入一个数值:'))
请输入一个数值:6
>>> type(data)
<class 'int'>
>>> print(data + 89)
95

 

posted @ 2018-11-25 13:06  风吹麦浪听涛声  阅读(180)  评论(0编辑  收藏  举报