变量与函数Variables and Functions

发布时间 2023-11-23 17:27:56作者: Shun了个shun

Task04:变量与函数Variables and Functions

变量Variables

变量是一段数据,用"="对某个变量名赋值

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

x=5

print(x)

x="data"

print(x)

data

变量命名规则

  • 必须以字母或下划线(_)开头
  • 命名可由字母、数字和下划线组成
  • 大小写敏感
  • 尽量避免使用保留字命名
99problems = 0 # 会崩溃!因为变量名以数字开头

保留字

['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']

多变量赋值

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

函数 Functions

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

  • 函数由两个部分组成:

    header和body(头部和函数体)

    • header 用于定义函数接口(函数 名称参数
    • body 包含函数所需要执行的操作

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

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

函数的 header 的写法:

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

body 包含函数执行的语句(statement

  • 语句需要缩进(由 Code Style Guide 决定)
  • 当语句不再缩进,函数部分结束
  • 一般会使用 return 语句,来让函数返回其结果,但不是必须的

eg//

1,有一个参数

def double(x):
    print("我在一个名叫 “double” 函数里!")
    return 2 * x
rint(double(2)) # 会输出 4
我在一个名叫 “double” 函数里!
4

2,有多个参数

# 三个参数
def f(x, y, z):
    return x + y + z

print(f(1, 3, 2)
6

3,

# 无参数
def g():
    return 42

print(g()) # 返回 42
42

print(g(2)) # 崩溃!

print(f(1, 2)) # 也会崩溃

多返回值
def Multi_Return_Values():
    return 9, 2, 8
a, b, c = Multi_Return_Values()
print(f"a={a}, b={b}, c={c}")

a=9, b=2, c=8

语句与表达式 Statements and Expressions

对于表达式

  • 它本身是
  • 它的计算结果是值

表达式的一些例子

In [33]:

4

4

"Hello World"

'Hello World'

7 + 2

9

True or False

True

(2 < 3) and (9 > 0)

True

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

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

对于语句

  • 它不是值
  • 它不能打印
  • 但它能执行一些操作

语句的一些例子

def f(x):
    return 5*x
x = 5 + 4
if 10 > 5:
    y = 5 + 3

内置函数 Builtin Functions

就是 Python 自己带的函数啦?

类型转换

print(bool(0))   # 转换为布尔类型(True or False)
False
print(float(42)) # 转换为浮点数
42.0
print(int(2.8))  # 转换为一个整数(舍弃小数点)
2

一些基本数学函数

但是它们不在 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)) # 取最近的一个整数(并不完全是四舍五入,二进制精度丢失)
2.35

返回语句 Return Statements

def isPositive(x):
    return (x > 0)
print(isPositive(5))  # True
True
print(isPositive(-5)) # False
False
print(isPositive(0))  # False
False

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

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

def f(x):
    x + 42

print(f(5)) # None
None

对于print和return

def cubed(x):
    print(x**3)  # 这里的操作不太合适

cubed(2) # 但是似乎看起来也正常运行了

8

print(cubed(3))  # 应该也能有效(但是返回 None,太怪了)
27
None

print(2*cubed(4)) # Error!

64

正确写法:

def cubed(x):
    return (x**3) # 这样做更好
cubed(2)  #似乎输出被忽略了,为什么?
8
print(cubed(3))  # 有效了!
27
print(2*cubed(4))  # 也是有效的!
128

Helper Functions

编写函数是用来解决问题的

我们还可以编写函数来存储那些经常被用到的一系列操作

这种函数就叫做 Helper Function

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
4
4