Python函数

2023-05-16

默认参数

def print_info(name,age=20):
    print("Name",name)
    print("Age",age)
print_info(name="ki")
print_info(name='ken',age=21)
Name ki
Age 20
Name ken
Age 21

不定长参数

def test(a,b,*arg): #arg为不定长参数
    print(a)
    print(b)
    print(arg)
test(11,12)         #没有给arg赋值就会输出空元组
11
12
()

def test(a,b,*arg): 
    print(a)
    print(b)
    print(arg)
test(11,12,33,44,55,66)
11
12
(33, 44, 55, 66)

末尾使用kwargs参数
def test(a,b,*arg,**kwargs):
    print(a)
    print(b)
    print(arg)
    print(kwargs)
test(11,12,33,44,55,66)
11
12
(33, 44, 55, 66)
{}

def test(a,b,*arg,**kwargs):
    print(a)
    print(b)
    print(arg)
    print(kwargs)
test(11,12,33,44,55,66,77,x=11,y=12,z=12)
11
12
(33, 44, 55, 66, 77)
{'x': 11, 'y': 12, 'z': 12}

函数的四种类型

1.无参数,无返回值的函数

def print_menu():
    print('------------------')
    print('   涮涮锅 点菜系统   ')
    print('  1.  羊肉涮涮锅    ')
    print('  2.  牛肉涮涮锅    ')
    print('  3.  猪肉涮涮锅    ')
    print('------------------')
print_menu()
------------------
   涮涮锅 点菜系统   
  1.  羊肉涮涮锅    
  2.  牛肉涮涮锅    
  3.  猪肉涮涮锅    
------------------

无参数,有返回值的函数

def get_temperature():
    #这里是获取温度的一些处理数据
    #为了简单,先模拟返回一个数据
    return 26
temperature = get_temperature()
print("当前的温度为:",temperature)
print("现在的温度为:",get_temperature())
当前的温度为: 26
现在的温度为: 26

有参数,无返回值

def number_result(number_one,number_tow):
    result = number_one + number_tow
    print('计算结果为:%d'%result)

有参数,有返回值

def calculate(number):
    result = 0
    i = 1
    while i <= number:
        result = result + i
        i += 1
    return result
result =calculate(100)
print('1~100的累积和为:',result)
1~100的累积和为: 5050

函数案例——名片管理器

输出名片管理器的菜单

def display_menu():
    print("-"*3)
    print("  名片管理器   v8.8")
    print("1. 添加名片")
    print("2. 删除名片")
    print("3. 修改名片")
    print("4. 查询名片")
    print("5. 获取所有名片信息")
    print("6. 退出系统")
    print("-"*3)
i = 0
while i < 1:
    #打印菜单
    display_menu()  #ctrl+f2停止循环
    
获取用户输入信息
def get_choice():
    selected_key = input("请选择序号: ")
    return int(selected_key)
key=get_choice()

通过获取序号执行不同的功能
if key == 1:
    pass
elif key == 2:
    pass
elif key == 3:
    pass
elif key == 4:
    pass
elif key == 5:
    pass
elif key == 6:
    pass
else:
    print("输入有误,请重新输入...")

函数的嵌套调用

def func_one():
    print('------ func_one start ------')
    print('这里是func_one函数执行的代码')
    print('------ func_one end --------')
def func_tow():
    print('---- func_tow start ----')
    func_one()
    print('----- func_tow end -----')
func_tow()
---- func_tow start ----
------ func_one start ------
这里是func_one函数执行的代码
------ func_one end --------
----- func_tow end -----

递归函数和匿名函数

递归函数

def func(count):
    if count == 1:
        result = 1
    else:
        result = func(count-1) * count
    return result
number =int(input("请输入一个正整数:"))
print("%d!="%number,func(number) )
请输入一个正整数:3
3!= 6

匿名函数

add = lambda a,b:a+b
#调用add函数
print("运行结果: ",add(10,20))
print("运行结果: ",add(20,20))
运行结果:  30
运行结果:  40

def func(a,b,operation):
    print("a=%d"%a)
    print("b=%d"%b)
    print("result=", operation(a,b))
func(11,22, lambda  x,y:x+y)
print("-------------------")
func(11,22, lambda  x,y:x-y)
a=11
b=22
result= 33
-------------------
a=11
b=22
result= -11

students = [
    {"name":"zhangsan","age":18},
    {"name":"lisi","age":21},
    {"name":"wangwu","age":19}
]
#按name排序
students.sort(key=lambda x:x['name'])
print("按name排序后的结果为: ",students)
#按age排序
students.sort(key=lambda x:x['age'])
print("按age排序后的结果: ",students)
按name排序后的结果为:  [{'name': 'lisi', 'age': 21}, {'name': 'wangwu', 'age': 19}, {'name': 'zhangsan', 'age': 18}]
按age排序后的结果:  [{'name': 'zhangsan', 'age': 18}, {'name': 'wangwu', 'age': 19}, {'name': 'lisi', 'age': 21}]

日期时间函数

时间戳

import time #引入time模块
ticks = time.time()
print("当前时间戳为:", ticks)
当前时间戳为: 1653967259.4192438

时间元组

import time #引入time模块
struct_time_obj = time.localtime()
print(struct_time_obj)
time.struct_time(tm_year=2022, tm_mon=5, tm_mday=31, tm_hour=11, tm_min=26, tm_sec=16, tm_wday=1, tm_yday=151, tm_isdst=0)

日历函数

import calendar
calendar_march=calendar.month(2022,6)
print("以下输出2022年6月份的日历")
print(calendar_march)
以下输出2022年6月份的日历
     June 2022
Mo Tu We Th Fr Sa Su
       1  2  3  4  5
 6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

随机函数

import random
#随机一个0~1的浮点数
print(random.random())
print(random.random())
0.5259084512727711
0.6034228296268306

import random
print(random.randint(10,20))
print(random.randint(1,100))
13
28

random.shuffle函数(洗牌-打乱元素顺序)

import random
demo_list = ["python","java","c","c+"]
random.shuffle(demo_list)
print(demo_list)
['java', 'python', 'c', 'c+']

random.sample(随机取元素)

import random
list_num = [1,2,3,4,5,6,7,8,9,10]
slice = random.sample(list_num,6)
print(slice)
print(list_num)
[9, 8, 6, 7, 2, 1]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
8```

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python函数 的相关文章

随机推荐

  • Linux 系统目录结构

    树状目录结构 bin xff1a bin 是 Binaries 二进制文件 的缩写 这个目录存放着最经常使用的命令 boot xff1a 这里存放的是启动 Linux 时使用的一些核心文件 xff0c 包括一些连接文件以及镜像文件 dev
  • MySql8.x版本my.cnf文件配置详解

    my cnf for 8 0版本 注意 xff1a 个别建议可能需要根据实际情况作调整 xff0c 请自行判断或联系我 xff0c 本人不对这些建议结果负相应责任 本配置文件主要适用于MySQL 8 0版本 client port 61 3
  • YouTube推荐系统

    The YouTube Video Recommendation System RecSys2010 实际的YouTube推荐系统在不断的改进 我们这里看到的是2010年RecSys会议上YouTube的一篇关于推荐的文章 xff0c 事实
  • Mysql配置文件/etc/my.cnf解析

    Mysql配置文件 etc my cnf解析 客户端设置 client port 61 3306 默认情况下 xff0c socket文件应为 usr local mysql mysql socket 所以可以ln s xx tmp mys
  • 数据结构:使用链栈实现回文判断

    题目 xff1a 回文判断 试写一个算法 xff0c 判断依次读入的一个以 64 为结束符的字母序列 xff0c 是否为形如 序列1 amp 序列2 模式的字符序列 其中序列1和序列2中都不含字符 amp xff0c 且序列2是序列1的逆序
  • Python 读取pdf

    好久没有更新 xff0c 主要是工作比较忙 抽空记录一个最近用到的东西 用python 读取pdf 话不多少 还是先上代码 span class token keyword import span pdfplumber span class
  • Python中的字符串相似度

    文章目录 一 Python字符串相似度二 Python相似度评估1 在计算图片的相似度时 xff0c 我自己用到过余弦距离2 欧式距离3 曼哈顿距离4 切比雪夫距离5 闵可夫斯基距离6 标准化欧氏距离7 马氏距离8 编辑距离 一 Pytho
  • 浅谈linux开发板用户登录之getty/login/passwd

    最近在排查一个关于用户登录的问题 xff0c 需要了解开发板启动以及远程登录进行用户名和密码验证背后的原理 经过查询学习 xff0c 简单总结如下 文章目录 前言一 Linux开发板登录机制二 getty login passwd1 get
  • 【实用技巧】rpm包下载,安装。获取rpm资源

    1 rpm包下载 我们使用yum install命令的时候一般下载下来会直接安装 xff0c 但是如果我们只想下载rpm包而不安装该怎么做呢 xff1f 安装 yum utils yum span class token function
  • 新手折腾wsl

    新手折腾wsl图形界面 本文记录一些本人 xff08 未学习Linux相关知识 xff09 折腾wsl踩过的坑 xff0c 以及参考的有效的解决方案 换源 这个搞过的都懂 xff0c 不翻墙的话 xff0c 用本身的那个源 xff0c 更新
  • Windows server

    显示win server信息 xff1a 进入cmd下输入systeminfo 启动控制台 没有功能可以添加 xff1a mmc 启动服务器管理器 xff1a services msc 进入防火墙的配置 xff1a wf msc 添加Win
  • 配置与管理DNS服务器

    实训目的 项目环境及要求 win2012 1 xff08 已经安装了long com域 xff09 xff08 并且是long com的域控 xff09 win2012 4 xff08 在这台服务器上部署DNS服务 xff09 win7 x
  • 配置与管理Web和FTP服务器

    实训目的 项目环境要求 win2012 1 xff1a 已经安装long com的域并且已经安装DNS win2012 4 xff1a 部署服务 win7 安装服务 添加功能 勾选 安装完成 进入IIS管理器 在此完成网站的创建和FTP的创
  • 公式推导

    公式推导 事件为相互独立的情况 xff1a n 个相互独立且服从相同分布的事件 X 1 X 2 X n xff0c 其标准差为 期望为 则总的的事件的期望和方差分别为 xff1a E X 1 43 X 2 43 X n
  • Windows 10 docker 容器添加新端口映射的方法与步骤

    在Docker容器已经创建后 xff0c 需要添加新的端口映射 xff0c 即对已经存在的Docker容器添加新的端口映射 xff0c 可以通过以下步骤来添加 xff0c 即通过修改配置文件的方法 1 Windows 10 下 Docker
  • 配置yum源挂载mount /dev/sr0 /iso报错mount: 在 /dev/sr0 上找不到媒体

    span class token punctuation span root 64 localhost span class token punctuation span span class token comment umount de
  • Debian之CA认证

    安装服务 root 64 debian etc chrony span class token comment apt install y openssl span 配置文件 root 64 debian etc chrony span c
  • 字符串内建函数

    find函数查找 strint example span class token operator 61 span span class token string 34 hello world good night 34 span inde
  • 列表·元组·字典

    使用索引访问列表元素 list explam span class token operator 61 span span class token punctuation span span class token string 39 xi
  • Python函数

    默认参数 def print info span class token punctuation span name age span class token operator 61 span span class token number