首页 > 编程语言 >Python 函数

Python 函数

时间:2024-03-27 23:02:29浏览次数:31  
标签:输出 函数 Python 模块 print import x1

目录

函数

自定义函数

语法

说明

匿名函数

语法

模块

标准库和扩展库中对象的导入与使用

自定义函数的导入

常用内置函数

排序 sorted()

枚举 enumerate()

映射 map()

过滤 filter()

压缩 zip()


函数

函数是可以重复使用的用于实现某种功能的代码块。在Python中,分内置函数、第三方模块函数和自定义函数。内置函数是Python自带的函数,模块函数是NumPy等库中的函数。

自定义函数

语法

def 函数名(行参列表):

        函数体

def factorial(n):
    '''阶乘函数'''
    r = 1
    while n > 1:
        r *= n
        n -= 1
    return r


print('%d!=%d' % (5, factorial(5)))# 输出:5!=120
def fib(n):
    '''输出最大项比n小的斐波那契数列函数'''
    a, b = 1, 1
    while a < n:
        print(a, end='  ')
        a, b = b, a + b


fib(260)# 输出:1  1  2  3  5  8  13  21  34  55  89  144  233

说明

  • 函数形参不需要声明其类型
  • 函数体一定要注意缩进
  • 函数体内容不可以为空,但是可以用pass来表示空语句
  • 函数的第一行语句通常使用三个单引号'''...'''来注释说明函数
  • 函数定义一定要放在调用前

匿名函数

指没有采用def语句定义的没有名称的函数,在使用时临时声明、立刻执行,特点是代码简洁、效率高。

Python使用lambda来创建匿名函数

语法

匿名函数名 = lambda [arg1 [,arg2, ......, argN]] :expression

# 求三个数的乘积
# f1()和f2()在逻辑上相同
def f1(x, y, z):
    return x * y * z


f2 = lambda x, y, z: x * y * z

print(f1(3, 4, 5))  # 输出:60
print(f2(3, 4, 5))  # 输出:60
# 对x进行幂运算,并保存在列表中
def L1(x):
    return [x ** 2, x ** 3, x ** 4]


L2 = lambda x: [x ** 2, x ** 3, x ** 4]

print(L1(2))  # 输出:[4, 8, 16]
print(L2(2))  # 输出:[4, 8, 16]

模块

为了更好的维护程序,一般会把代码进行分类,分别放在不同文件中,这些独立的文件就是模块。

标准库中有与时间相关的time、datetime模块,随机数的random模块,与操作系统交互的os模块,对Python解释器相关操作的sys模块,数学计算的math模块等。

标准库和扩展库中对象的导入与使用

  • import 模块名[as 别名]

 使用时需要以“模块名.对象名”的形式进行访问

import math  # 导入标准库math
import random  # 导入标准库math
import numpy.random as nr  # 导入numpy库中的random模块

a = math.gcd(12, 21)  # 计算最大公约数
b = random.randint(0, 2)  # 获得[0,2]区间上的随机整数
c = nr.randint(0, 2, (4, 3))  # 获得[0,2)区间上的4×3随机整数矩阵
print(a)
print(b)
print(c)
'''
输出:
3
2
[[1 1 1]
 [1 1 0]
 [0 0 1]
 [1 1 1]]
'''
  • from 模块名 import 对象名 [as 别名]

这种导入方式可以减少查询次数,提高访问速度

from random import sample
from numpy.random import randint

a = sample(range(10), 5)
'''
 在[0,9]区间上选择不重复的5个整数,
 range(10):0到9的等差数列,
 sample:在序列range(10)中随机抽取5个
'''
b = randint(0, 10, 5)  # 在[0,9]区间上生成5个随机整数
print(list(range(10)))  # 输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(a)  # 输出:[5, 3, 2, 0, 1]
  • from 模块名 import *

一次性导入模块中的所有对象,简单粗暴,不建议这么使用

自定义函数的导入

每个包含Python函数的文件都可以作为一个模块使用

# 该文件名为ex
def factorial(n):
    '''阶乘函数'''
    r = 1
    while n > 1:
        r *= n
        n -= 1
    return r
from ex import factorial

print(factorial(5)) # 输出:5!=120

常用内置函数

排序 sorted()

import numpy.random as nr

x1 = list(range(1, 8))  # 生成区间[1,8)上的列表
nr.shuffle(x1)  # shuffle()用来随机打乱顺序,常用于随机生成密码的场景里,实现各种随机化要求。
x2 = sorted(x1)  # 按照从小到大排序
x3 = sorted(x1, reverse=True)  # 按照从大到小排序
x4 = sorted(x1, key=lambda item: len(str(item)))  # 以指定的规则排序
print(x1)# 输出:[4, 2, 5, 6, 3, 1, 7]
print(x2)# 输出:[1, 2, 3, 4, 5, 6, 7]
print(x3)# 输出:[7, 6, 5, 4, 3, 2, 1]
print(x4)# 输出:[4, 2, 5, 6, 3, 1, 7]

枚举 enumerate()

x1 = "abcded"
x2 = list(enumerate(x1))
# 输出:[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e'), (5, 'd')]
print(x2)
for ind, ch in enumerate(x1): print(ch)  # 输出第二个元素
'''
输出:
a
b
c
d
e
d

'''

映射 map()

过滤 filter()

a = filter(lambda x: x > 10, [1, 11, 2, 45, 7, 6, 13])
b = filter(lambda x: x.isalnum(), ['abc', 'xy12', '***'])
# isalnum()是测试是否为字母或数字的方法
print(list(a))  # 输出:[11, 45, 13]
print(list(b))  # 输出:['abc', 'xy12']
def filter_duplicate(L):
    '''过滤重复值'''
    return [item for item in L if L.count(item) == 1]
a=filter_duplicate([1, 2, 2, 3, 4, 4, 5])
print(a)# 输出:[1, 3, 5]

压缩 zip()

s1 = [str(x) + str(y) for x, y in zip(['v'] * 4, range(1, 5))]
s2 = list(zip('abcd', range(4)))
print(s1)  # 输出:['v1', 'v2', 'v3', 'v4']
print(s2)  # 输出:[('a', 0), ('b', 1), ('c', 2), ('d', 3)]

标签:输出,函数,Python,模块,print,import,x1
From: https://blog.csdn.net/weixin_73042028/article/details/137073897

相关文章

  • 06-python异常和模块
    异常语法try:可能会错误的代码except:出现了异常,异常处理else:没有出现异常,处理,通常可以不写finally:无论有无异常,都运行实例:try:f=open("e:/a.txt","r",encoding="UTF-8")#文件不存在,不可度,会有异常exceptFileNotFoundErrorase:......
  • 在Go语言中如何正确使用init函数
    1.概念        init函数是用于初始化应用程序状态的函数。既不接收参数也不返回结果,仅仅是一个func()类型的函数。当初始化包时,将对包中所有的常量和变量声明进行计算。然后执行init函数。下面是初始化main包的例子:packagemainimport"fmt"vara=func()int......
  • 5-3损失函数
    一般来说,监督学习的目标函数由损失函数和正则化项组成。(Objective=Loss+Regularization)Pytorch中的损失函数一般在训练模型时候指定。注意Pytorch中内置的损失函数的参数和tensorflow不同,是y_pred在前,y_true在后,而Tensorflow是y_true在前,y_pred在后。对于回归模型,通常使......
  • 头歌python循环结构答案
    Python中的循环结构,并提供一些常见的循环结构示例。在Python中,有两种主要的循环结构:`for`循环和`while`循环。###`for`循环`for`循环通常用于遍历序列(如列表、元组、字符串)或其他可迭代对象。**示例1:遍历列表中的元素**```pythonfruits=['apple','banana','cherry'......
  • Python循环结构程序设计 头歌python循环结构答案
    第2关:for循环与continue语句本关的编程任务是补全checkWork.py文件中的部分代码,具体要求如下:填入循环遍历studentname列表的代码;当遍历到缺席学生时,填入continue语句跳过此次循环。absencenum=int(input())studentname=[]inputlist=input()foriininputlist......
  • 深入理解 Vue 3.0 宏函数:提升组件代码的工程化与可维护性
    Vue3.0宏函数详解:defineProps、defineEmits、defineExpose、defineSlots和defineOptions在Vue3.0中,为了更好地组织和维护组件代码,引入了几个新的宏函数。这些宏函数包括defineProps、defineEmits、defineExpose、defineSlots和defineOptions。本文将详细介绍这五......
  • C++之函数的重载
    指函数名可以相同,提高复用性函数重载满足条件:1.同一个作用域下2.函数名称相同3.函数参数类型不同或者个数不同或者顺序不同注意:函数的返回值不可以作为函数重载的条件//函数重载需要函数都在同一个作用域下voidfunc(){ cout<<"func的调用!"<<endl;}vo......
  • 20231325贾罗祁 2023-2024-2《Python程序设计》实验二报告
    20231325贾罗祁2023-2024-2《Python程序设计》实验二报告课程:《Python程序设计》班级:2313姓名:贾罗祁学号:20231325实验教师:王志强实验日期:2024年3月27日必修/选修:公选课1.实验内容设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善;考核基本语法、判定......
  • 使用Python操作 xlsx 文件绘制雷达图原来这么简单!
    雷达图,听起来是不是很高大上?其实,它就是一种展示多维数据的可视化工具,形状像极了一个蜘蛛网,也被称为蜘蛛图或者星状图。最近我在做项目的时候,发现需要对多个指标进行综合评价,而雷达图正好能直观地展示出每个指标的优势和劣势。这样一来,我就可以更好地分析数据,找出问题的症结所......
  • 如何用Python操作xlsx文件并绘制折线图!
    ​大家好,数据分析在现代社会越来越重要,而Excel作为数据分析的利器,几乎人手一份。但是,Excel的操作有时候略显繁琐,更是感觉无从下手。你知道吗?Python这个神奇的工具不仅能帮你处理海量的数据,还能让你在Excel表格上大展拳脚,甚至还能画出让人眼前一亮的折线图!是的,你没有听错,今天......