当前位置: 首页 > news >正文

python学习记录18

1 函数的定义

python中的函数指使用某个定义好的名字指代一段完整的代码,在使用名字时可以直接调用整个代码,这个名字叫做函数名。利用函数可以达到编写一次即可多次调用的操作,从而减少代码量。

函数分为内置函数与自定义函数。内置函数例如print()、input()、eval()等是编译器自带的,无需定义即可直接调用。

自定义函数的结构为:

def 函数名称(参数列表)#函数里的参数为形参

函数体#执行函数功能的代码

【return 函数返回值】#非必要,可省略

函数的调用方法为:

函数名(参数列表)#参数列表与定义函数的参数在数量与类型上要一致,调用的函数参数为实参

#编写阶乘函数
def fac(n):y=1while n>0:y *=nn -=1return y
x = int(input())
print(fac(x))
#编写判断大小函数
def cor(u,v):if u>v:return Trueelif u<v:return Falseelse:return 0
x = int(input())
y = int(input())
res = cor(x,y)
if res:print('x>y')
elif not res:print('x<y')
else:print('x=y')

函数的定义与调用的步骤为:

1)使用关键字def

2)确定函数名、参数名称、参数个数

3)编写函数体,即用于实现某功能的代码

4)使用函数名调用函数,调用函数的参数列表对变量进行一个实际的赋值

5)执行函数,使用实际参数参与函数功能的实现

6)函数返回结果(可使用关键字return返回一个具体值)

2 函数的参数传递

函数的传递参数方式有位置参数、关键字参数、默认值参数、可变参数四种。

(1)位置参数

位置参数是指调用的参数个数与顺序必须与定义的一致

def nameage (name,age):print(str(name),age)
n = '小红'
a = 18
nameage(n,a)

(2)关键字参数

在调用函数传参过程中使用形参名称+值的方式。使用关键字传参顺序可以不同。关键字参数与位置参数可以混合使用,但有一个位置参数在前,关键字参数在后的规则

def nameage (name,age):print(str(name),age)
nameage(age=18,name='小红')

(3)默认值参数

在函数定义时直接对形参进行赋值,调用时若函数不传值则使用默认值,若传了值则使用传递的值

def nameage (name='小红',age=18):print(str(name),age)
nameage()

(4)可变参数

可变参数分为个数可变的位置参数(*para)与个数可变的关键字参数(**para)。para是形参名称,可变位置参数在函数调用时可以接受任意个参数放入一个元组中,可变关键字参数接受任意个参数=值的形式,并且放入一个字典中。

可变位置传参在调用时加*是对序列的解包操作,同样的可变关键字传参加**也可以对序列进行解包

def sum(*para):i = 0for item in para:i += itemreturn i
print(sum(10,11,12,13,14))
print(sum(*[1,2,3,4,5]))
def idimfo(**para):for key,value in para.items():print(key,':',value)
idimfo(name='小红',age=18,height=166,weight=96)
ls1 =['name','age','height','weight']
ls2 =['小兰',19,165,92]
print(idimfo(**dict(zip(ls1,ls2))))

3 返回值return

如果函数需要得出某个值为之后的代码使用,可以使用return关键字,return可以出现在函数的任何一个位置,用于结束函数。return返回的值可以是一个,也可以是多个。return在函数中可带可不带,不带函数返回的默认值是None。

def upperprint(a):s = str(a).upper()return s
str1 = input()
print(upperprint(str1))

4 变量的作用域

与C语言一样,python的变量也分为全局变量和局部变量。变量有自己的作用域与生命周期,作用域是指这个变量从代码的那一段到那一段是起作用的,生命周期是指代码开始作用的代码到结束作用的代码。

全局变量定义在函数或代码段外,或者函数或代码段内使用global关键字,它的作用域在整个程序,只有程序结束了它的生命周期才结束。
局部变量定义在函数或代码段内部,只要函数或代码段结束了变量的生命周期随之结束。当局部变量和全局变量的名称重复时,局部变量的优先级高。

n =100
def fac(x,y):x *=2global ss =100return x
while n>0:print(fac(n,2))n -=1

http://www.lryc.cn/news/489540.html

相关文章:

  • 云原生之k8s服务管理
  • redis工程实战介绍(含面试题)
  • 再次讨论下孤注一掷
  • LeetCode46.全排列
  • 蓝桥杯-洛谷刷题-day4(C++)
  • c++总复习
  • 设计模式之策略模式-工作实战总结与实现
  • E - 11/22 Subsequence题解
  • PyPI 攻击:ChatGPT、Claude 模仿者通过 Python 库传播 JarkaStealer
  • 单片机学习笔记 9. 8×8LED点阵屏
  • 【大模型-智能体】AutoGen Studio测试和导出工作流程
  • 【Linux】-学习笔记04
  • 计算机网络:应用层知识点概述及习题
  • 如何构建高效的接口自动化测试框架?
  • 【C++习题】10.反转字符串中的单词 lll
  • undefined symbol: __nvJitLinkComplete_12_4, version libnvJitLink.so.12 问题解决
  • C语言——数组逐元素操作练习
  • HTML的自动定义倒计时,这个配色存一下
  • CUDA补充笔记
  • C++二级:满足条件的数的累加
  • 【山大909算法题】2014-T1
  • 【MySQL实战45讲笔记】基础篇——深入浅出索引(上)
  • 通关C语言自定义类型:联合和枚举
  • python高阶技巧一
  • Java 对象头、Mark Word、monitor与synchronized关联关系以及synchronized锁优化
  • 鸿蒙网络编程系列50-仓颉版TCP回声服务器示例
  • 软件测试基础(自动化测试、性能测试)
  • C++中的原子操作:原子性、内存顺序、性能优化与原子变量赋值
  • 游戏引擎学习第19天
  • RocketMQ: 专业术语以及相关问题解决