python函数变量和内置函数

2023-05-16

一、函数的作用域

1.全局变量:

函数外部定义的变量:叫做全局变量,全局变量顾名思义就指定不管是函数内部还是函数外部都能够访问

2.局部变量:

局部变量,就是在函数内部定义的变量,仅限函数内部可以使用,在函数外部无法使用

注意点:

  • 不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响
  • 局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用
  • 尽量不要在函数内部定义和全局变量同名的变量
  • 如果必须要定义一个同名的变量,建议放在函数的最前面

3.声明全局变量global

在函数内部修改全局变量的值,使用global

使用global声明某个变量之后。那么这个变量在函数内进行的操作会对全局生效【及该变量,变为了全局变量】

例子

a = 100
def func7():
    global a,b  # 使用global声明某个变量之后。那么这个变量在函数内进行的操作会对全局生效
    a = 999
    b=888
    print(a)
func7()	#注意如果未调用该函数,则b的定义未生效,及 b 不是全局变量,只有执行后 b 才会成为全局变量
print("函数外面打印a:{}".format(a))
print(b)

输出:
999
函数外面打印a:999
888

 

二、内置函数

1.常见的内置函数

  • print:输出
  • input:输入
  • type:查看数据类型
  • id:获取数据内存地址
  • range:生成数据
  • len:获取数据的长度(元素总数)
  • int,float,bool,str,list,tuple,dict,set:代表对应的数据类型

2.最大值,最小值的内置函数【数值类型】

  • min 求最小值
  • max 求最大值
  • sum 求和

3.python中高级内置函数

3.1 enumerate【面试】

enumerate利用它可以同时获得索引和值,--【元组形式】

例子:获取列表的下标和值

i1=[11,22,33,55]
res=enumerate(li1)
for i in res:
    print(i)
输出:
(0, 11)
(1, 22)
(2, 33)
(3, 55)

例子:获取字典的下标和key值

li1=[11,22,33,55]
dic={"name":"hao","sex":"女"}
res=enumerate(dic)
for i in res:
    print(i)
输出:
(0, 'name')
(1, 'sex')

3.2 eval,取出字符串内容

取出字符串中的内容

将字符串str当成有效的表达式来求指并返回计算结果【等同于把字符串的引号去掉】

# eval:识别字符串中有效的python表达式
例子
str1="{'name':'hao','sex':'女'}"
str2="[11,22,33,55]"
#将str1转换为字典,str2转换为列表
dic=eval(str1)
print(dic,type(dic))

li=eval(str2)
print(li,type(li))
输出:
{'name': 'hao', 'sex': '女'} <class 'dict'>
[11, 22, 33, 55] <class 'list'>

例子2:表达式
a=100
b=10
s="a>b"
print(eval(s))
输出:
True

例子3
s2='print("python26")'
eval(s2)
输出:
python26

 

3.3聚合打包zip

以短的为依据:短板效应

注意点:zip打包之后返回的数据,只能使用一次【两个列表之间】

例子

title = ["aa", "bb"]
value = [11, 22, 88]
ss=zip(title, value)
print(dict(ss))
print(list(ss))
输出:
{'aa': 11, 'bb': 22}
[]

 

例子1:列表-列表元组

li1=[1, 2, 3, 4,5]
li2=[11, 22, 33, 55]
li3=[111,222,333,444,555]
res=zip(li1,li2,li3)
print(res)
print(list(res))
输出:
<zip object at 0x00000205C6F62588>
[(1, 11, 111), (2, 22, 222), (3, 33, 333), (4, 55, 444)]

例子2:给予两组数据直接转换为字典

title = ["aa", "bb"]
value = [11, 22, 88]
print(dict(zip(title, value)))
输出:
{'aa': 11, 'bb': 22}

3.4 filter 过滤器,fiter(过滤规则,要过滤的数据)

过滤的原理:filter会将第二个参数中的数据,进行遍历,然后当成参数传入第一个参数(函数中),根据函数返回的结果是否为True,决定是否要将数据过滤出来

 

3.5iterable:可迭代对象

可以使用for循环进行遍历的都是可迭代对象

已学过数据类型(属于可迭代对象的):字符串,列表,元组,字典,range创建的数据

def func8(a):
    print("这个是函数func")
    print("这个是传入的参数a:",a)
li=[11,22,33,44]
res=filter(func8,li)
print(list(res))
输出:
这个是函数func
这个是传入的参数a: 11
这个是函数func
这个是传入的参数a: 22
这个是函数func
这个是传入的参数a: 33
这个是函数func
这个是传入的参数a: 44
[]

应该案例:请过滤列表li=[1,2,3,4,5,6,7,8,9]中大于5的数值
def func8(a):
    return  a>30
li=[11,22,33,44]
res=filter(func8,li)
print(list(res))
输出:
[33, 44]

三、函数和内置函数练习题

1.第一题:现有数据如下

users_title = ["name", "age", "gender"]

users_info = [['小明', 18, '男'], ["小李", 19, '男'], ["小美", 17, '女']]

要求:将上述数据转换为以下格式

users = [{'name': '小明', 'age': 18, 'gender': '男'},

{'name': '小李', 'age': 19, 'gender': '男'},

{'name': '小美', 'age': 17, 'gender': '女'}]

users_title = ["name", "age", "gender"]
users_info = [['小明', 18, '男'], ["小李", 19, '男'], ["小美", 17, '女']]
a = users_info[0]
b = users_info[1]
c = users_info[2]
print(a)
s1 = dict(zip(users_title, a))
s2 = dict(zip(users_title, b))
s3 = dict(zip(users_title, c))
print(s1)
users = []
users.append(s1)
users.append(s2)
users.append(s3)
print(users)

# 老师方法:
print("老师方法")
users_title = ["name", "age", "gender"]
users_info = [['小明', 18, '男'], ["小李", 19, '男'], ["小美", 17, '女']]
# 定义一个列表来存放转换之后的数据
users=[]
# 遍历user_info中的数据
for info in users_info:
#     把users_title和users_info进行聚合打包
    data=zip(users_title,info)
# 转换为字典,添加到列表中
    users.append(dict(data))
print(users)

#新的思路
users_title = ["name", "age", "gender"]
users_info = [['xiaoMing', 18, 'men'], ['xiaoLi', 19, 'men'], ['xiaoMei', 17, 'women']]

users = []
for index in range(len(users_info)):
    print(index)
    users.append(dict(zip(users_title,users_info[index])))
print(users)

 

2.第二题:请封装一个函数,按要求实现数据的格式转换

传入参数: data = ["{'a':11,'b':2}", "[11,22,33,44]"]

返回结果:res = [{'a': 11, 'b': 2}, [11, 22, 33, 44]]

通过代码将传入参数转换为返回结果所需数据,然后返回

data = ["{'a':11,'b':2}", "[11,22,33,44]"]


def func(m, n):
    res = []
    for i in data:
        res.append(eval(i))
    return res


s = func(*data)
print(s)

# 老师方法
print("老师方法")
li= ["{'a':11,'b':2}", "[11,22,33,44]"]
def work2(data):
    # 创建一个新列表
    new_data=[]
#    遍历列表中的数据
    for i in data:
#         将数据用eval进行转换
        res=eval(i)
#         将转换后的数据放入新列表
        new_data.append(res)
    return new_data

res=work2(li)
print(res)

 

3.第三题:简单题

3.1、什么是全局变量?

函数外部定义的变量:叫做全局变量,全局变量顾名思义就指定不管是函数内部还是函数外部都能够访问

3.2、什么是局部变量?

局部变量,就是在函数内部定义的变量,仅限函数内部可以使用,在函数外部无法使用

3.3、函数内部如何修改全局变量(声明全局变量 )?

在函数内部修改全局变量的值,使用global

使用global声明某个变量之后。那么这个变量在函数内进行的操作会对全局生效【及该变量,变为了全局变量】

3.4、写出已经学过的所有python关键字20个,分别写出用途?

关键字:

False :bool类型

True :bool类型

None :表示数据为空

and:逻辑运算符:与

or:逻辑运算符:或

not:逻辑运算符:非

is:身份运算符

in:成员运算符

del:删除数据

pass:表示通过(一般用来占位的)

if:条件判断

elif:条件判断

else:条件判断

while:条件循环

for:遍历循环

break:用来终止循环的

continue:中止当前本轮循环,开启下一轮循环

def定义函数

return函数的返回值

global:定义全局变量

"""

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

python函数变量和内置函数 的相关文章

  • Windows下LuaBridge2.8的环境配置及简单应用

    Windows下LuaBridge2 8的环境配置及简单应用 LuaBridge2 8下载链接 xff1a https github com vinniefalco LuaBridge tags 关于Lua的环境配置可参考以下链接 xff0
  • Lua 开发过程中常见坑

    Lua 开发过程中常见坑 Lua next span class token keyword return span G span class token punctuation span span class token function
  • 私网与公网地址转换

    私网与公网地址转换 NAT概述NAT功能静态NAT动态NATEASYIP xff08 多个内网地址对一个接口 xff09 PAT端口多路复用 NAT概述 NAT xff08 Network Address Translation xff0c
  • VWmare安装CentOS7及连接Xshell超详细过程(图文)

    VWmare安装CentOS7及连接Xshell超详细过程 xff08 图文 xff09 前言一 准备工作二 安装虚拟机过程 1 选择文件 xff0c 新建虚拟机 2 选择配置类型 3 自定义硬件配置 4 进入系统安装界面 二 连接Xshe
  • rpm与yum

    rpm与yum 前言一 应用程序与命令系统的关系二 典型应用程序的目录结构三 常见的软件封装类型四 rpm 1 概述 2 命令概述 3 查询rpm软件包信息 查询已安装的rpm软件信息 查询未安装的rpm软件包文件中的信息 安装 升级 卸载
  • Linux用户与权限管理

    Linux用户与权限管理 前言一 管理用户账号 1 用户账号概述 用户标识UID xff08 User IDentity xff0c 用户标识号 xff09 用户账号文件 2 用户账号管理 添加用户账号 xff08 useradd xff0
  • yum源仓库

    yum源仓库 前言一 yum介绍一 yum源的提供方式 1 配置本地仓库 2 配置ftp源 三 yum命令 1 yum常用的操作 2 搜索软件包命令 3 安装升级 4 软件卸载 5 yun history命令 总结 前言 yum相对与rpm
  • C++常见问题的总结

    1 C语言跟C 43 43 的关系 xff1a xff08 1 xff09 C语言跟C 43 43 的本质区别 xff1a 1 xff09 c更倾向于面向过程 xff0c c 43 43 是面向过程 43 面向对象 43 泛型编程 2 xf
  • Nginx Rewrite

    Nginx Rewrite 前言一 nginx rewrite概述 1 概述 2 跳转场景 3 跳转实现 4 rewrite实际场景 nginx跳转需要的实现方式 rewrite放在server if location 段中 对域名或参数字
  • Dockerfile概念简介

    Dockerfile概念简介 前言一 dockerfile概念二 Docker镜像的创建 1 基于现有镜像创建 2 基于本地模板创建 3 基于dockerfile创建 dockerfile结构 xff08 四部分 xff09 构建镜像命令
  • 【云原生之k8s】k8s基础详解

    云原生之k8s k8s基础详解 前言一 kubernetes介绍 1 kubernetes简介 2 应用部署方式的演变 二 kubernetes组件 1 kubernetes架构 2 master组件 apiserver controlle
  • 【云原生之k8s】kubeadm搭建k8s集群

    云原生之k8s kubeadm搭建k8s集群 前言一 集群介绍 1 集群搭建方法 2 集群架构 二 集群部署 1 环境部署 所有节点 xff0c 关闭防火墙规则 xff0c 关闭selinux xff0c 关闭swap交换 修改主机名 xf
  • 【云原生之k8s】k8s管理工具kubectl详解

    云原生之k8s k8s管理工具kubectl详解 前言一 陈述式管理 1 陈述式资源管理方法 2 k8s相关信息查看 查看版本信息 查看节点信息 查看资源对象简写 查看集群信息 配置kubectl自动补全 查看日志 基本信息查看1 查看ma
  • 关于结构体指针与STM32外设的笔记

    96 define RCC RCC TypeDef RCC BASE xff09 96 逐步分解这句代码的含义 RCC TypeDef RCC BAS 其中 RCC BAS定义为 define RCC BASE AHBPERIPH BASE
  • visual studio与visual c++ 6.0的区别

    xfeff xfeff Visual Studio支持多种语言 xff0c Visual C 43 43 6 0 只支持C和C 43 43 Visual C 43 43 6 0 是Visual Studio 6 0的一个组成部分 xff0c
  • GD32F303 移植 FreeRTOS

    文章目录 1 准备工作1 1 软件版本1 2 源码下载1 3 基础工程 3 FreeRTOS 移植3 1 复制需要的内核文件3 2 添加文件到 Keil 工程3 3 添加 FreeRTOSConfig h 内核配置文件3 4 配置任务调度相
  • FreeRTOS 之 heap_4 踩坑之路

    参考博文连接 xff1a FreeRTOS系列 heap 4 c 内存管理分析FreeRTOS Heap 1 2 3 4 5 比较 示例工程代码库地址如下 xff1a GiteeGit 1 问题描述 博主在使用 heap 4 的 pvPor
  • GD32F30x Keil 环境下在 FreeRTOS 任务中使用浮点运算报 HardFault 异常的问题(二)

    文章目录 1 问题描述1 1 环境1 2 问题 2 参考资料3 来龙去脉3 1 定位问题3 2 xPortPendSVHandler3 3 EXC RETURN3 4 寄存器3 5 探索真像3 5 1 浮点任务切换到空闲任务3 5 2 空闲
  • 辛勤劳作

    本文只有在12月27日可以学习到 我对敬业的体会是 xff1a 正在从事的工作就是自己的生命 xff0c 它意味着每周7天 xff0c 每年52周一心扑在上面 写下上面这句话 xff0c 我的泪水差一点儿就涌了出来 14年的寿险生涯 xff
  • 无人机开发资料推荐

    作者 xff1a BlueSky 链接 xff1a https www zhihu com question 30084079 answer 52762050 来源 xff1a 知乎 著作权归作者所有 商业转载请联系作者获得授权 xff0c

随机推荐

  • STM32移植使用mbedtls-2.24.0

    STM32移植使用mbedtls 2 24 0 目录 STM32移植使用mbedtls 2 24 0 xff08 1 xff09 关于PolarSSL xff08 2 xff09 mbedtls移植 xff08 3 xff09 移植测试 扫
  • C++中的 ::

    C 43 43 中的双冒号 第一种 xff0c 类作用域 xff0c 用来标明类的变量 函数 Human span class token operator span span class token function setName sp
  • 算法的类型:

    所有的算法可以大概分为以下三种类型 xff1a 1 xff0e 贪婪算法 greedy algorithm 该算法每一步所做的都是当前最紧急 最有利或者最满意的 xff0c 不会考虑所做的后果 xff0c 直到完成任务 这种算法的稳定性很差
  • 平衡三棱柱原理

    先用一个例子来解释角动量守恒 大家一定都知道直升机 xff0c 直升机除了机身上方有一个大的螺旋桨外其尾部也有一个螺旋桨 这个螺旋桨的作用就是用来保持机身不会转动的 xff0c 如果没有它 xff0c 当直升机上方的螺旋桨转动时 xff0c
  • 自抗扰控制(ADRC)

    1 ADRC控制原理和结构 xff08 1 xff09 最速跟踪微分器 TD xff08 2 xff09 扩张状态观测器 ESO xff08 3 xff09 非线性状态误差反馈 NLSEF 2 ADRC控制仿真 xff08 1 xff09
  • 深度学习算法归类

    监督式学习 xff1a 逻辑回归 xff08 Logistic Regression xff09 和反向传递神经网络 xff08 Back Propagation Neural Network xff09 非监督式学习 xff1a Apri
  • DQN代码-ROS-turtlebot3

    DQN代码解析 代码来自turtlebot3 qdn environment stage 4 py 发布话题 xff1a cmd vel 订阅话题 xff1a odom 服务话题 gazebo reset simulation gazebo
  • js 事件流(冒泡、捕获)与绑定事件方法

    一 xff1a 事件流 事件流描述的是从页面中接收事件的顺序 但 IE 的事件流是事件冒泡流 xff0c 而 Netscape Communicator 的事件流是事件捕获流 1 事件冒泡 IE 的事件流叫做事件冒泡 xff0c 即事件开始
  • python获取当前文件的目录与路径

    绝对路径与相对路径概念 从C 写起的叫绝对路径C Users Sa07 PycharmProjects pythonProject 深度学习 mnist识别手写体 path catch py 绝对路径中包含某个项目 xff0c 我们截取到这
  • 微信小程序的校园求职招聘系统uniapp 附源码

    随着现代网络通信技术越来越深入而广泛的应用 xff0c 国内的招聘网站如雨春笋 xff0c 各种各样的招聘网站映入眼帘 网络上五花八门的企业使得应聘者无从下手 企业在选择应聘者时也只能了解基本情况 针对这些情况 xff0c 本网站做出相应调
  • 机械臂雅可比矩阵导数(未验证)

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 求解方法二 代码总结 前言 GitHub上边抄的 xff0c 看了几个算法是一样的 xff0c 自己没有验证就拿来用了
  • ORB-SLAM2与OpenMVS对接实现三维重建

    详细介绍如何实现ORB SLAM2与OpenMVS的对接过程 xff0c 打通上下游实现三位重建 xff0c 二话不说先干图 对于学SLAM的同学对ORB SLAM2可能并不陌生 xff0c 系统框架清晰明了 xff0c 代码风格清新脱俗
  • 基于安卓AndroidStudio校园求职招聘app设计

    开发软件 xff1a Eclipse Idea 43 Android Studio 43 mysql 这是一个基于AndroidStudio前后端分离开发的校园大学生求职招聘app 后端使用java语言的Springboot框架开发 xff
  • 气压计MS5611

    经过几天的痛苦挣扎 终于搞定了 完成气压计的参数读写 xff0c 温度检测 xff0c 大气压计算 因为这款气压计精度高 xff0c 好多计算需要用到正负数 xff0c 整数小数 xff0c 浮点整形 xff0c 有的计算结果特别大 xff
  • Android 序列化Parcelable的使用详解

    背景 xff1a 在Java虚拟机中 xff0c 对象的传递称为数据传递不可或缺的一部分 xff0c 但如果一旦虚拟机停止工作 xff0c 该对象在内存中也就被释放 xff0c 地址空间不存在 xff0c 对象自然就不能再被重复利用 xff
  • 口袋云台拆机微型防抖云台硬件结构解析拆机硬件结构开源云台svpwm控制simple云台storm防抖原理陀螺仪多旋翼吊舱飞控无刷电机FOC

    口袋云台拆机微型防抖云台硬件结构 18大疆发布了众所周知的osmo packet xff0c 其微小的体积和卓越的性能让用户爱不释手 虽然现已是2020年 xff0c 各大厂商都争先推出相关竞品 xff0c 大疆凭借强大的技术后盾产品力自然
  • 开启Java8来启用Lambda表达式在Android Studio的一些配置

    欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来 xff0c 用它写博客 xff0c 将会带来全新的体验哦 xff1a Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传
  • IPQ4019/QCA9531/MT7628/MT7621系嵌入式无线双频AP核心模块选型探讨

    嵌入式双频无线AP核心模块 首先是核心模块 不是成品主板 也可以认为是成品的核心部分 xff0c 或者理解成只带方便延伸的接口功能 xff0c 不带外围实际接口的成品 xff0c 实际使用时 xff0c 可以根据所需要的接口灵活选择 未必要
  • nginx为什么是多进程单线程和多路IO复用模型

    Nginx现在是非常火爆的web服务器 xff0c 她使用更少的资源 xff0c 支持更多的并发连接数 xff0c 她实现了linux的epoll模型 xff0c 能够支持高达 50 000 个并发连接数的响应 Nginx采用的是多进程单线
  • python函数变量和内置函数

    一 函数的作用域 1 全局变量 xff1a 函数外部定义的变量 xff1a 叫做全局变量 xff0c 全局变量顾名思义就指定不管是函数内部还是函数外部都能够访问 2 局部变量 xff1a 局部变量 xff0c 就是在函数内部定义的变量 xf