python函数的定义与调用

news2024/11/19 19:45:55

python定义函数和函数的使用

函数

函数是对程序逻辑进行结构化或过程化的一种编程方法,将整块代码巧妙地隔离成易于管理的小块。把重复代码放到函数中而不是进行大量的拷贝,这样既能节省空间,也有助于保持一致性;通常函数都是用于实现某一种功能。

函数的定义

使用关键字def来定义函数

def test(): #定义函数
    a=10   #函数体内部
    return a #a函数返回值

函数的调用

想要调用函数必须先定义

def test(): #定义函数
    a=10   
    return a

test()  # 调用函数

函数的返回值

定义函数默认是没有返回值的

想要让函数返回特定的值使用return关键字

形参和实参

形式参数

函数定义时,紧跟在函数名后圆括号内的参数被称为形式参数,简称形参。由于它不是实际存在变量,所以又称虚拟变量。

实际参数

​ 函数调用时,函数名后面括号中的参数(可以是一个表达式)称为“实际参数”,简称实参。

def test(x,y):  #定义一个test函数并定义两个形参来接收实参
    return x+y
test(10,5) 调用函数将实参105传入

默认参数

默认参数,不向该参数传入值也是允许的

# 05 - 默认参数.py

def add(x = 0, y = 0):
    sum = x + y
    return sum

print(add())

位置传参

根据参数的位置顺序进行传参最常用的一种位置必须一致

关键字传参

通过“键=值”形式传递参数,可以不限参数顺序可以和位置参数混用,位置参数需在前

掌握缺省

参数不传递参数值时会使用默认的参数默认值的参数必须定义在最后

函数变量作用域

全局和局部的问题。

局部变量

局部变量是在函数内部定义的变量,随着函数的调用而被创建,函数调用完毕之后,即销毁。局部变量在函数调用后,才被创建,其作用范围,仅限于函数内部。

def test():
    x = 10
    print(x)
test()
print(x)        #NameError: name 'x' is not defined

全局变量

在函数外部定义的变量。

x = 10
def test():
    # x = 3
    print(x)
test()

python自带的字符模块

string 模块是python自带的字符模块

在这里插入图片描述
在这里插入图片描述

随机密码生成器

导入模块

import string,random
char_all=string.printable.strip()  	#将可打印的字符串除了换行和空格全部取出来
password="" # 定义空字符串装每次生成的字符
for i in range(8)
	c=random.choice(char_all) #每次随机在该列表里去一个字符
	password+=c 每生成一个就添加进字符串
print(password)
   

案例

完成一个密码生成器

import string,random

char_all=string.printable.strip()
count=int(input("请输入要生成几个密码: "))
num=int(input("请输入要生产的密码长度: "))

for x in range(count):
    b = ""
    for x in range(num):
        char=random.choice(char_all)
        b+=char
    print(b)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1155078.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构】数组和字符串(十三):链式字符串的基本操作(串长统计、查找、复制、插入、删除、串拼接)

文章目录 4.3 字符串4.3.1 字符串的定义与存储4.3.2 字符串的基本操作(链式存储)1. 结构体2. 初始化3. 判空4. 串尾添加5. 打印6. 串长统计7. 查找8. 复制9. 插入10. 删除11. 串拼接12. 销毁13. 主函数14. 代码整合 4.3 字符串 字符串(String)是由零个或…

CodeGeeX:对标GitHub Copilot,国产免费可用的代码补全助手

大家好,我是豆小匠。 本期介绍的插件CodeGeeX,是一款免费的智能编程助手。 主要功能是代码生成和补全,但不止于此! CodeGeeX介绍 CodeGeeX是清华大学和智谱AI联合打造的多语言代码生成模型。 第一代是完全在华为昇腾芯片平台训练…

华为OD机考算法题:生日礼物

题目部分 题目生日礼物难度易题目说明小牛的孩子生日快要到了,他打算给孩子买蛋糕和小礼物,蛋糕和小礼物各买一个,他的预算不超过x元。蛋糕 cake 和小礼物 gift 都有多种价位的可供选择。输入描述第一行表示cake的单价,以逗号分隔…

③ 软件工程CMM、CMMI模型【软考中级-软件设计师 考点】

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ ③ 软件工程CMM、CMMI模型【软考中级-软件设计…

SpringCloud Alibaba Demo(Nacos,OpenFeign,Gatway,Sentinel)

开源地址: ma/springcloud-alibaba-demo 简介 参考:https://www.cnblogs.com/zys2019/p/12682628.html SpringBoot、SpringCloud 、SpringCloud Alibaba 以及各种组件存在版本对应关系。可参考下面 版本对应 项目前期准备 启动nacos. ./startup.c…

营收净利双降、股价下跌四成,敷尔佳带伤闯关“双11”

今年双11预售已经开启,敷尔佳在天猫、抖音等电商平台火热营销;营销热业绩冷,敷尔佳的三季报不及预期。 10月23日,哈尔滨敷尔佳科技发展有限公司(下称“敷尔佳”,301371SZ)公布2023年三季报,其三季度营收净…

【C++ 系列文章 -- 程序员考试 下午场 C++ 专题 201805 】

文章目录 1.1 C 题目六1.1.1 填空(1)详解1.1.1.1 C 纯虚函数介绍 1.1.2 填空(2)详解1.1.2.1 父类声明了带参构造函数1.1.2.2 子类中构造函数的构造原则 1.1.3 填空(3)详解1.1.4 填空(4&#xff…

Python小试牛刀:GUI(图形界面)实现计算器界面

Python GUI 是指 Python 图形用户界面库,它们可以帮助开发者创建在计算机上运行的图形用户界面(GUI)。下面是一些常用的 Python GUI 库: Tkinter: Tkinter 是 Python 的标准 GUI 库,它是一个开源的、跨平台…

LeetCode刷题之 存在重复元素(题目分析➕源代码)

题目链接🔗力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 1. 题目分析 本题是要找到数组中的重复元素,所以我们分析出一下几点: 1. bool是一种数据类型,true是非0值,false是0.。 2. 数组…

绘制教材P68页产品的层次方框图。

层次方框图: 用树形结构的一系列多层次的矩形框绘制数据的层次结构,树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素&…

verilog语言学习

1. 时延 2. 一位全加器设计:三种建模方式 实际的设计中往往是这三种设计模式的混合 3. 4. 5. 6. 7. 建立模型时信号的连接(重点) 8. initial语句 9. always语句 在always中不能同时判断同一个信号的上升沿(posedge&#xff0…

网工内推 | IDC网工、运维,上市公司,主流厂商认证优先,六险一金

01 软通动力 招聘岗位:ICD机房运维工程师 职责描述: 1.维护及管理数据中心内各类服务器及网络设备。 2.处理数据中心各类服务器和网络相关故障和告警。 3.负责数据中心内项目交付管理,包括LLD评审、硬装工艺验收、ASP施工管理等。 4.负责数据…

什么是互动广告

随着数字技术的迅速发展和消费者行为的转变,互动广告已成为现代广告行业的重要组成部分。互动广告以其独特的优势和形式,不断刷新人们对广告的认知,为广告行业带来新的机遇和挑战,那么就来一起了解互动广告吧。 一、互动广告的定义…

笔记49:53语言模型--课程笔记

本地笔记地址:D:\work_file\DeepLearning_Learning\03_个人笔记\3.循环神经网络\语言模型 PS:沐神别怪我,实在是截屏避不开啊,我就留个备忘,在我博客里先委屈一下哈,对不住了 a a a a a a a a a a…

二十一、Arcpy批量镶嵌——结合Landsat数据提取城市建成区

一、前言 前文介绍Pycharm软件安装和激活,以及运行环境的设置,本文就详细介绍一下几何Landsat数据有哪些步骤可以通过Arcpy代码来实现批量操作,其实主要集中在Landsat数据预处理过程中,包括数据镶嵌、裁剪、去背景、重采样以及波段组合计算、NDVI、NDBI计算,在一定程度上…

JetBrains TeamCity远程命令执行漏洞

一、免责声明: 本次文章仅限个人学习使用,如有非法用途均与作者无关,且行且珍惜;由于传播、利用本公众号所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号望雪阁及作者不为此承…

EPLAN连接编号的问题

连接编号的问题 1.连接编号的目的 连接编号也就是常说的编线号.编线号的目的是为了在现场装配,调试,检修的时候,方便查线.使真实的接线与原理图能够方便地对应. 2.标准对连接编号的规定 标准中规定了导线应该编线号,但是没有说一定要使用什么样的规则.我觉得保证正常使用的前提…

YOLOv8改进: AIFI (尺度内特征交互)助力YOLO | YOLO终结者?RT-DETR一探究竟

💡💡💡本文全网首发独家改进: AIFI (尺度内特征交互)助力YOLO ,提升尺度内和尺度间特征交互能力,同时降低多个尺度的特征之间进行注意力运算,计算消耗较大等问题 推荐指数:五星 AIFI | 亲测在多个数据集能够实现涨点 💡💡💡Yolov8魔术师,独家首发创新(…

unordered系列关联式容器--哈希结构详细讲解及使用示例

目录 unordered系列关联式容器unordered_map 哈希哈希概念哈希函数直接定址法:除留余数法: 哈希冲突解决哈希冲突闭散列:开散列: unordered系列关联式容器 之前讲解在C98中STL提供了底层为红黑树结构的一系列关联式容器&#xff…