Python 变量与函数

Task 3 变量与函数

变量

  • 变量是一个名字,他所指的是一段数据

  • 使用 = 来对这段区域进行复制

x = 5
print(x)
print(x*2)
  • 新的值会覆盖旧的值

  • 新的值的数据类型不必与旧的值的数据类型相同

y = 10
print(y - 2)
y = True
print(y)

运行结果:image-20231122175855073

变量命名规则

  • 必须以字母或者下划线(_)开头

  • 明明可有字母、数字、下划线组成

  • 大小写敏感

  • 尽量避免使用保留字命名

image-20231122180327092

更新变量

x = 7
x += 2
print(x)

运行结果:9

换成其他运算符也是如此

x = 10
x //= 5
print(x)

运行结果:0

多变量赋值

a = b = c = 2
print(f"a = {a},b = {b},c = {c}")

image-20231122180741219

a, b, c = 1, 2, 6
print(f"a = {a},b = {b},c = {c}")

image-20231122180921800

变量作用域

  • 每个变量都有属于自己的作用范围

  • 超出作用范围后,变量不可见

image-20231123133542247

函数内的变量有 局部作用域,它只存在于函数内部,与其他函数中同名的变量无关

当在函数外部定义变量时,变量具有全局作用域,在任何地方都可以使用

但是我们应该尽量避免使用全局作用域,但是在一些非常少的场合会用到它

函数

  • 函数是一个名字,代表一串代码序列(流程,过程)

  • 函数有俩个部分组成 headerbody * header用于定义函数接口(流程、过程) * body包含函数所需要执行的操作

header

header 用于定义函数的名称参数

  • 当函数被调用时,参数将会作为变量被提供给函数的 body 部分

  • 可以提供多个参数(用逗号 , 分隔),也可以不提供参数(0 个)

  • header 以冒号(:)结尾,代表后面会跟着 body 部分

函数header的写法:

def 函数名(形式参数):
#body

body

body包含函数执行的语句

  • 语句需要缩进

  • 当语句不在缩进,函数部分结束

  • 一般会使用 return 语句让函数返回一个结果,但是不是必须的

类似于用一个=来对多个变量赋值,函数的返回结果也可以不止一个(用,分隔)

def double(x):
print("我在一个 `double`的语句中")
return 2 * x
  • 我们使用函数名来调用函数

  • 函数名后紧跟一对括号

  • 括号中是我们设定的参数值,一个不多,一个不少(这很重要)

  • 函数会返回设定的 return 的返回值

print(double(2))  #会打印出4

函数也可以有任意多个参数,也可以一个都没有

def f(x, y, z):
return x+y+z
print(f(1,2,3))   #会打印出6
def g():
return 42
print(g())   #会打印出42

可是如果参数数目没有匹配的话程序就会崩溃

多返回值

def f():
return 9,3,4
a, b, c = f()
print(f"a 的值为{a},b的值为{b},c的值为{c}")

image-20231123131738940

语句与表达式

对于表达式

  • 它的本身是值

  • 他的计算结果也是值

对于语句

  • 他不是值

  • 他不能打印

  • 但他能执行一些操作

python中只能print值或者表达式,如果你能用print()输出它,那它就是表达式

image-20231123132317192

image-20231123132438987

类型转换

隐式类型转换

image-20231115150750064

上边就是一个隐式的转换

但是如果想用print计算一个int型的加上一个字符串的话,隐式转换就不再适用了

显示类型转换

int() 强制转换为整型:

image-20231115151138196

float() 强制转换为浮点型:

image-20231115151322780

str() 强制转换为字符串类型:

image-20231115192520630

注意事项:在强制类型转换这部分中,只能以上述形式写出来,不能用print打印,例如:x = str('s1')这种写法是错误的

一些基本的数学函数

#这些函数存储的math库中
print(abs(5)) #绝对值为5
print(min(2,3)) #最小值为2
print(max(2,3)) #最大值为3
print(pow(2,10)) #代表的是次方运算,即2的10次方
print(rpund(2.345,2))#类似于四舍五入,并不是完全的四舍五入,去最近的整数,二进制精度丢失

image-20231114143506427

每个变量都有作用范围,超出范围以后就不能再作用了

返回语句

一旦返回,函数会立即结束

没有返回语句时,函数会返回空值

image-20231123134406732

像在第一个函数中就是没有返回语句,那么就会返回None

在第二个函数中,返回的是一个布尔类型的,因此会返回True

return与print的区别

image-20231114150625633

像在第一个函数里边,不仅会输出想要求的内容,而且还会返回一个空值,有点奇怪

正确的应该是第一个函数中写到的


编写函数是用来解决问题的,我们也可以封装一些函数用来存储一些常用的操作

这种函数叫做Helper Functions

def onesDigit(n):
   return n%10

def largerOnesDigit(x, y):
   return max(onesDigit(x), onesDigit(y))

print(largerOnesDigit(134, 672)) # 4
print(largerOnesDigit(132, 674)) # 依然是 4

image-20231123135122141

[递归 & 分治 - OI Wiki (oi-wiki.org)]

posted @   珺璟-zxy  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示