Datawhale Python 变量与函数

一.变量

变量是一个名字,代指一段数据,使用 = 对这段数据的区域进行赋值。

新的值会覆盖旧的值,新值的数据类型不必与旧值相同。

变量命名规则:

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

# 1. 必须以字母或下划线开头
_a = 1      # OK
9x = 10     # ❌ SyntaxError: invalid decimal literal

# 2. 可由字母、数字、下划线组成
name2 = "Tom"      # OK
first-name = 1     # ❌ SyntaxError: can't use hyphen

# 3. 大小写敏感
apple = 1
Apple = 2
print(apple, Apple)  # 输出 1 2

# 4. 避免保留字
class = 3   # ❌ SyntaxError: 'class' is a reserved keyword
klass = 3   # OK

# 5. 新值覆盖旧值,类型随意
x = 100
x = "hello"
x = [1, 2, 3]
print(x)    # 最终输出 [1, 2, 3]

保留字

Python 的保留字(keyword)是语法本身占用的名字,不能作为变量、函数、类名
如下

import keyword
print(keyword.kwlist)

更新变量

x=5
x+=2
print(x)

y=350
y//=10
print(y)

多变量赋值

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

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

二 函数

定义

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

函数有两个部分组成:header和body

header用于定义函数接口(函数名称和参数)

body包含函数所需要执行的操作。

header 用于定义函数的名称和参数
 
- 当函数被调用时,参数将会作为变量被提供给函数的 body 部分
- 可以提供多个参数(用逗号 , 分隔),也可以不提供参数 (0 个)
- header 以冒号(:)结尾,代表后面会跟着 body 部分

函数的 header 的写法:

def functionName(parameters):  #f(x,y)
    pass  # 函数的 body 部分,这里使用 pass 代替

Body
 
body 包含函数执行的语句(statement)
 
要点
- 语句需要缩进(由 Code Style Guide 决定)
- 当语句不再缩进,函数部分结束
- 一般会使用 return 语句,来让函数返回其结果,但不是必须的
 
补充说明
 
类似于用一个 = 来对多个变量赋值,函数的返回结果也可以不止一个(用逗号 , 分隔)

注意

我们使用函数名来调用函数。

函数名后面紧跟一对括号。

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

函数会返回设定的return语句的值。

例子1

def double(X):
    print("你好")
    return 2*x

print(double(2))

print(double(5))

print(double(1)+3)

例子2

#3个参数
def f(X,y,z):
    retrun x+y+z

print(f(1,2,3))


#无参数
def g():
    retrun 12

print(g())

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

例子3

如果参数的数目没有匹配,会崩溃。

print(g(2))

print(f(1,2,3))

多返回值

def Multi_Return_Values():
    return 9, 2, 8

a, b, c = Multi_Return_Values() #a,b,c=9,2,8
print(f"a={a}, b={b}, c={c}")

三.语句表达式

表达式:它本身是值,它的计算结果是值。

语句:它不是值,它不能打印,但它能执行一些操作。

例子

4

"hello world"

7+2

True or False

(2<3) and (9>0)

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

print((2<3) and (9>0) )

例子

def f(x):
    return  5*x

x=5+4

if 10>5:
   y=5+3

四.内置函数

 类型转换

print(bool(1))

print(bool(0))  #转换布尔类型

print(float(42))   #转换浮点数

print(int(2.8))   #转换整数(舍弃小数点)

一些基本数学函数(不在math库)

print(abs(-5))  #绝对值

print(max(2,3))  #返回最大值

print(min(2,3))  #返回最小值

print(pow(2,10))  #次方运算。2**10

print(round(2.35,2)) #保留两位小数

变量作用域

每个变量都有属于自己的作用范围,超出作用范围后,变量不可见。

def f(x):
    print("x",x)
    y=5 #局部变量
    print("y",y)
    return x+y

print(f(4))
print(x)
print(y)

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

def f(x):
    print("In f, x =", x)
    x += 5
    return x

def g(x):
    y = f(x*2)
    print("In g, x =", x)
    z = f(x+3)
    print("In g, x =", x)
    return y + z

print(g(2))

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

g=100

def f(x):
    retrun x+g
print(f(5))
print(f(6))
print(g)






g=100

def f(x):
             #如果我们想要改变g的值,我们必须声明它是全局变量,否则会假设它是局部变量。
    global g
    g=1
    retrun x+g
print(f(5))
print(f(6))
print(g)
   

返回语句

def isPositive(x):
    return (x>0)

print(isPositive(5))
print(isPositive(-5))
print(isPositive(0))

一旦返回,函数立即结束

def isPositive(x):
    print("Hello!")   # 会运行
    return (x > 0)
    print("Goodbye!")  # 不会运行

print(isPositive(5))   # 输出“Hello!” 然后返回 True

没有返回语句的时候,函数会返回None

def f(x):
    x+42

print(f(5))

函数组合

def f(w):
    return 10*w

def g(x, y):
    return f(3*x) + y  # 在我们返回它之前,我们必须先执行 f(3*x)

def h(z):
    return f(g(z, f(z+1)))  # 最内部的 f(z+1) 必须先执行

print(h(1))  # 你一定得"亲眼看看"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值