Task 04 变量与函数 Variables and Functions

news/2024/12/5 0:57:02/文章来源:https://www.cnblogs.com/jiangli111/p/18587592

Task 04 变量与函数 Variables and Functions

变量 variables

变量的概念老生常谈,便于理解,简单说明即可

基本概念

  • 变量是一个名字,指代它所覆盖的数据
  • 变量需要赋值,使用 =
  • 在python中,没有指针的概念,但也可以说每一个变量都是一个指针
a = 8   #python在变量命名是不需要提前说明变量类型(python天下第一)
print(a)
8
print(a-2)
6
  • 新的值可以覆盖旧的值
  • 新的数据类型不必与旧的相同
a = True
print(a)
True
a = "振翅云顶之上,极目星辰大海"
print(a)
振翅云顶之上,极目星辰大海

变量命名规则

  • 必须以字母或下划线(_)开头
  • 命名可由字母、数字和下划线组成
  • 大小写敏感
  • 尽量避免使用保留字命名

保留字

import keyword
print(keyword.kwlist)
['False','None','True','__peg_parser__','and','as','assert','async','await','break','class','continue','def','del','elif','else','except','finally','for','from','global','if','import','in','is','lambda','nonlocal','not','or','pass','raise','return','try','while','with','yield']

多变量命名

python支持多变量命名,方式如下

a = b = c = 6
print(f"a={a}, b={b}, c={c}")
a=6, b=6, c=6
a, b, c = 3, 6, 9
print(f"a={a}, b={b}, c={c}")
a=3, b=6, c=9

函数 Functions

函数概念

  • 函数是一个代码块,可以被反复调用,执行功能
  • 函数由两部分组成,即 headerbody
  • 函数在项目中会大量使用,完成分段式编程,以防部分代码出错牵连整个程序

header用来定义函数的名称和参数

  • header以 结尾,并在后面跟着 body部分
  • 当函数被调用时,括号内的参数会被提供给函数进行后续运行
  • 可以提供多个参数

header具体写法

def name(x):pass         #pass表示临时组建函数并且不被调用#python对缩进十分敏感

body

  • body中包含函数的主体部分,也就是参数被传入后执行的具体操作
  • body结束后一般会用return返回值,当然并不绝对
  • 缩进很重要

在这里写一个完整的函数作为示例

def yunding(x):print("振翅云顶之上,极目星辰大海")return x
print(yunding(me))
振翅云顶之上,极目星辰大海
me
  • 函数名调用函数
  • 函数会返回一个值,但并不是直接打印一个值

函数的参数可以有很多个, 也可以没有,但是数量一定要匹配

多返回值

多返回值相当于返回了一个 list

def Multi_Return_Values():return 6,6,6
a,b,c = Multi_Return_Values()
print(f"a={a}, b={b}, c={c}")
a=6, b=6, c=6

内置函数

在python中,有一些官方内置的函数

强制类型转换

类型转换也是一种函数,比如将浮点数转换为整数

a = 5.2
print(a)
5.2
int(a)
print(a)
5        #转换为整型后没有小数点

基本数学函数(无需调用math库)

print(abs(-5))   # 绝对值
5
print(max(2,3))  # 返回最大值
3
print(min(2,3))  # 返回最小值
2
print(pow(2,10))  # 次方运算,等价于 2**10
1024
print(round(2.354, 2)) # 取最近的一个整数(并不完全是四舍五入,二进制精度丢失) ## 保留两位小数,用round(四舍五入表示的是二进制小数(或者用decimal库来避免))
2.35

变量作用域

每个变量都有自己的作用范围,超出范围后变量不存在,并且一定要尽量避免使用全局变量

  • 函数内定义的变量仅在函数内部作用
  • 函数外定义的变量是全局变量,如果想在函数内改变它的值需要声明它是全局变量
g = 100def f(x):global g          #对变量进行声明,否则python会假设它是局部变量g += 1return x + gprint(f(5))
print(f(6)) 
print(g)    
106
108
102

嵌套函数(递归)

对于嵌套函数来说,一定会先执行最内层的函数

嵌套函数运用最广的地方就是递归,而递归是一种重要的编程思想,在这里我们着重讲解

递归的概念

递归(recursion)是一种算法策略,通过函数调用自身来解决问题。他主要包含两个阶段

  • 递:程序不断地调用自身,通常是传入更小或更简化的参数,直到达到 "终止条件"
  • 归:触发"终止条件"之后,函数从最深层的递归函数逐层返回,并汇聚每一层的结果

递归函数的三个要素

  • 终止条件:在触发 终止条件后,由
  • 递归调用:参考概念中的
  • 返回结果:参考概念中的

如果实在理解不了递归,似乎也可以用这三个条件硬写

思考

事实上到此为止我对于递归的理解也极为有限,所以说一些我对于递归的思考

  • 递归是一个从上到下解决问题的过程,将原问题一直分解为更小的子问题,在遇到终止条件后逐级返回,当然这样的思想十分反人类,所以写的时候千万不能多想
  • 递归每一次调用自身时,系统都会为新开启的函数分配内存,因此递归的时间效率较低,太深可能会导致栈溢出
  • 尾递归还看不懂,先丢个链接吧

hello算法:迭代与递归

终于把递归的笔记完善,或者说搞懂递归哦,已经过了ddl,代码风格的一定会在明写完的()

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

苹果im虚拟机系统,苹果imessage推信软件,苹果iMessage自动群发协议–持续更新中...

一、电脑版虚拟机苹果系统(Mac OS)上实现imessage群发: /*MacOS苹果系统,正常情况下,只能安装到苹果公司自己出品的Mac电脑,俗称白苹果,不能安装到各种组装机或者其他品牌的品牌机上,黑苹果的的原理,就是通过一些“破解补丁” 工具欺骗macOS系统,让苹果系统认为你的电脑其…

上穷碧落下黄泉

上穷碧落下黄泉,动手动脚找东西。——傅斯年 《黄泉下的美术》真好看吧,巫鸿老师我将追随你我的朋友很喜欢送给我“安安心心”这个词我也会幻想我只需要当个浸在瑰色梦中的小公主一个只需要安安心心在知识的海洋里行走的学者但幻想只是幻想啊,与现实有着无可避免的距离我很不…

高效沟通的密码:PREP 沟通表达模型 - 1、观点 2、依据 3、事例 4、重述观点

PREP 沟通模型介绍 PREP 沟通模型是一种用于有效沟通和表达观点的结构化方法。它由四个部分组成,分别是Point 观点 Reason 依据 Example 事例 Point 重述观点PREP 把表达过程分成四个步骤:先说观点,再说依据,举事例说明,最后在重述观点。1、PREP 沟通模型先提出观点,让听…

一分钟了解不同架构的优缺点

单体应用架构(Monolithic Architecture) 1968 年的软件危机产生了软件工程,并且催生了面向对象的高级语言,例如 1972 的 C 语言,同时产生了我们的单体式的技术架构。 单体应用架构是一种传统的应用架构模式,也是至今为止,一直被大规模使用的一种方式,是将应用程序作为一…

记录一个比较难找的封装端子A1257WV----来自达妙的电机驱动板

起因 想设计一个CAN总线的转接板,奈何这个端子实在是太过于抽象了,以至于连封装都很难找, 这里浅浅的记录一下下。 正文 这个在嘉立创搜叫: A1257WV-S-4P-LCP 其中里面的4P代表的意思是四个引脚这东西还有立式和卧式,买的时候注意区分在原理图里面是这个样子的:感觉这种段…

STM32F103 PWM配置

在《STM32F103定时器配置》中我们介绍了PWM的产生原理,本节介绍介绍如何编码实现PWM的输出。 一、PWM相关寄存器 TIMx如果要产生PWM,除了我们上一节提到的如下寄存器:控制寄存器(TIMx_CR1); DMA/中断使能寄存器(TIMx_DIER); 预分频寄存器(TIMx_PSC); 从模式控制寄存…

gitlab实现https及管理员密码找回

作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 目录一.gitlab实现https1.实现https概述2.gitlab实现https实战案例二.找回gitlab忘记的密码(可用于破解别人的gitlab服务器)1.官方文档2.实战案例 一.gitlab实现https 1.实现https概述 gitlab如果用于不安全的…

2024CCPC长春邀请赛VP D,EG,L

L. Recharge给你三个整数,k,x,y。。x和y分别代表x个1和y个2 问你最多能凑出几个k 我们只需要考虑是否会出现浪费2的情况比如k=3 你此时没有1就只能用两个2来凑出这个3,这样就会浪费1. 我们把k分成奇偶数来看,如果k是偶数,那么百分百不会出现浪费,只需要把(y*2+x)/k就能得到…

Bclinux离线安装PostgreSQL10.23+PostGIS2.5编译安装配置

一、安装PostgreSQL1、安装PostgreSQL解压PostgreSQL软件包tar -zxvf postgresql.tar.gz配置并安装PostgreSQL[postgres@localhost setup]$ tar -zxvf postgresql-10.23.tar.gz 进入解压后的目录,按照PostgreSQL的官方文档进行配置和安装。这通常涉及到创建数据目录、配置post…

苹果im虚拟机系统,苹果imessage推信软件,苹果iMessage自动群发协议 – 持续更新中...

一、电脑版虚拟机苹果系统(Mac OS)上实现imessage群发: /*MacOS苹果系统,正常情况下,只能安装到苹果公司自己出品的Mac电脑,俗称白苹果,不能安装到各种组装机或者其他品牌的品牌机上,黑苹果的的原理,就是通过一些“破解补丁” 工具欺骗macOS系统,让苹果系统认为你的电脑其…

Only AI Flow Can Do!

0 大纲作为骨灰级程序员,咋用 AI flow 提高编码效率 零代码基础,如何使用 AI 辅助编程工具实现自己的想法 盘点常用的 AI 辅助编程工具和使用场景 如何选择适合自己的 AI 辅助编程工具如今的 AI flow 系列软件包括:Cursor、Bolt、Windsurf、v0、通义灵码...... 1 编码咋提效…

Redis探秘Sentinel(哨兵模式)

概述 Redis的高可用机制有持久化、复制、哨兵和集群。其主要的作用和解决的问题分别是:持久化:持久化是最简单的高可用方法(有时甚至不被归为高可用的手段),主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。 复制:复制是高可用Redis的基础,哨兵和…