IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python函数基础1 -> 正文阅读

[Python知识库]python函数基础1

1.返回值

python函数可以有多个返回值:


```python代码如下:
# 返回多个值
def student_name_and_age():
    name=input("请输入姓名\n")
    age=int(input("请输入年龄\n"))
    return name,age
res=student_name_and_age()
print(type(res))
print(res)

结果如下:

请输入姓名
zhangsan
请输入年龄
18
<class 'tuple'> //若函数返回多个值会打包为元组
('zhangsan', 18)

2.参数传递

1.位置参数

位置参数是最简单的一种函数调用的方式。位置参数须以正确的顺序传入参数、数量和生命时一样。

def show(name,age):
    print(name,age)
show("张三","18")

2.缺省参数

调用函数时,缺省参数的值如果没有传入,则被认为是默认值。

def show(name,age="18"):
    print('姓名:%s 年龄 %s' %(name,age))
show("张三")

结果:

姓名:张三 年龄 18
#也可以为默认参数赋值
show("张三",20)

结果:

姓名:张三 年龄 20

3.可变参数

传入的参数个数是可变的
可变参数允许你传入0个或任意个参数,这些参数在函数调用时自动组装为一个tuple

def all_names(*args):
    print(type(args))
    for name in args:
        print('姓名:',name)
all_names('张三','李四','王五')

结果:

<class 'tuple'>
姓名: 张三
姓名: 李四
姓名: 王五

4.关键字参数

关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

def info(name,age,**kw):
    print(type(kw))
    print("名字:",name)
    print("年龄:",age)
    print(kw)
    
    
info("张三",18,heignt=180,hobby='ball')

结果:

<class 'dict'>
名字: 张三
年龄: 18
{'heignt': 180, 'hobby': 'ball'}

关于python中的解引用(序列解包)的简单说明

将元组(*)解包成位置参数,将字典(**)解包成关键字参数

例(*):

def show(a,b,c):
    print(a,b,c)
t=(1,2,3)
show(*t)

结果:

1 2 3

例(**):

def show(a,b,c):
    print(a,b,c)
show(b=3,a=2,c=3)
d={'a':1,'b':2,'c':3}
show(**d)

结果:

2 3 3
1 2 3

注意:

注意:若解包字典时只用了一个 * ,则相当于使用了字典中的键而不是值
当然也不限于元组和字典,也可以用于字符串,数组等序列
例:

import random
score = [random.randrange(1,101) for i in range(10)]
score.sort()
print('评委打分:',score)
a,*b,c=score
print('去掉最高最低分后:',b)
# 评委打分: [11, 46, 54, 60, 65, 68, 73, 77, 92, 100]
# 去掉最高最低分后: [46, 54, 60, 65, 68, 73, 77, 92]

5.命名关键字参数

如果要限制关键字参数的名字,就可以用命名关键字参数

标准写法如下:
def info(name,age,*,height,weight):
    print('我的名字叫: ',name,'年龄: ',age,'身高',height,'体重',weight)
info("张三",18,height=180,weight=75)

结果:

我的名字叫:  张三 年龄:  18 身高 180 体重 75

6.参数的组合

在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。

例1

def student_info(name, age=18, *books, **kw):
    print('我的名字叫:', name, '年龄:', age,'其它信息:',kw)
    if 'city' in kw:
        print('来自:', kw['city'])
    for book in books:
        print('我有',book,'书')

student_info('张三', 18, '语文','数学','计算机', city='北京', height=180, weight=75)

例2

def student_info(name, age=18, *books, city, **kw):
    # 如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了:
    print('我的名字叫:', name, '年龄:', age,'其它信息:',kw)
    print('来自:', city)
    for book in books:
        print('我有',book,'书')
student_info('张三', 18, '语文','数学','计算机', city='北京', height=180, weight=75)

3.变量的作用域和global变量

1.局部变量 作用域:在函数内

2.全局变量 作用域:在函数外

函数优先使用局部变量 在没有局部变量的情况下, 使用全局变量

易错代码如下:
name="张三"
def change_my_name():
   print('我的名字曾经是', name)
   name = '李四'
   print('我的名字现在是', name)
change_my_name()

结果:

UnboundLocalError: local variable 'name' referenced before assignment

上述代码解析:
在change_my_name函数中第二行重新定义name,则此函数认为在函数中name是局部变量,所以出现在name变量在定义前被引用的错误(即使有全局变量name)

解决方案:global关键字

name="张三"
def change_name():
    global name
    print("改变前的姓名:",name)
    name="李四"
    print("改变后的姓名:",name)
change_name()
name

输出:

改变前的姓名: 张三
改变后的姓名: 李四
'李四'

结束

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-26 12:02:42  更:2021-07-26 12:03:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 8:50:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码