官网首页     登录贴啦     注册     贴啦会员


兴风“作”浪 核心用户 黄金狮子座 绝版蛇夫座 发帖达人 回复达人 鸡年"大"吉 鸡年大"吉" 贴啦财富认证 黄金白羊座 黄金天秤座 土豪认证 豆地主 登峰造极 黄金金牛座 黄金巨蟹座 黄金处女座 笑傲江湖 “羊”名天下 黄金水瓶座 黄金双子座 黄金天蝎座 黄金双鱼座 黄金摩羯座 黄金射手座 虎头虎脑
作用域.jpg

作用域.jpg免费

53.59 KB, 下载次数: 124

下载 记录


回复 收起回复
欢迎来到有爱的作业啦

兴风“作”浪 核心用户 黄金狮子座 绝版蛇夫座 发帖达人 回复达人 鸡年"大"吉 鸡年大"吉" 贴啦财富认证 黄金白羊座 黄金天秤座 土豪认证 豆地主 登峰造极 黄金金牛座 黄金巨蟹座 黄金处女座 笑傲江湖 “羊”名天下 黄金水瓶座 黄金双子座 黄金天蝎座 黄金双鱼座 黄金摩羯座 黄金射手座 虎头虎脑
我们按照上面说的规则来分析一下之前的例子:

# value 定义在函数外,是全局变量
value = '我是全局变量'

def func1():
  # value 定义在 func1 函数内,是局部变量
  value = '我是局部变量'
  print(value)

def func2():
  # Python 会先在 func2 函数内找 value,函数内
  # 没找到就会去函数外找,所以这里的 value 是
  # 全局变量
  print(value)

def func3(value):
  # 下一行的 value 作为函数的参数也属于局部变量
  print(value)
  
func1()
func2()
func3('我也是局部变量')

# value 在函数外,所以是全局变量
print(value)
总的来说,Python 会优先在局部作用域内寻找变量,找不到再去外层的全局变量寻找,如果都找不到则报 NameError 的错误:

def func():
  value = '我是局部作用域'
  print(value)

print(value)  # 第 5 行
# 报错:NameError: name 'value' is not defined on line 5
回复 收起回复
欢迎来到有爱的作业啦

兴风“作”浪 核心用户 黄金狮子座 绝版蛇夫座 发帖达人 回复达人 鸡年"大"吉 鸡年大"吉" 贴啦财富认证 黄金白羊座 黄金天秤座 土豪认证 豆地主 登峰造极 黄金金牛座 黄金巨蟹座 黄金处女座 笑傲江湖 “羊”名天下 黄金水瓶座 黄金双子座 黄金天蝎座 黄金双鱼座 黄金摩羯座 黄金射手座 虎头虎脑
上述代码就是因为在全局作用域访问了局部作用域的变量,导致找不到 value 而报错。你可以把全局作用域想象成外面的世界,局部作用域想象成你自己的家。外面的世界的东西大家都可以使用,而你自己家或别人家的东西可是不能随意使用的,只能家对应的主人才可以使用。
回复 收起回复
欢迎来到有爱的作业啦

兴风“作”浪 核心用户 黄金狮子座 绝版蛇夫座 发帖达人 回复达人 鸡年"大"吉 鸡年大"吉" 贴啦财富认证 黄金白羊座 黄金天秤座 土豪认证 豆地主 登峰造极 黄金金牛座 黄金巨蟹座 黄金处女座 笑傲江湖 “羊”名天下 黄金水瓶座 黄金双子座 黄金天蝎座 黄金双鱼座 黄金摩羯座 黄金射手座 虎头虎脑
你可能会好奇,有没有办法在全局作用域访问局部作用域的变量?当然!只需要在局部变量前加上 global 关键字即可,看个例子:

def func():
  global value
  value = '我是提升为全局变量的局部变量'
  print(value)

func()
# 输出:我是提升为全局变量的局部变量
print(value)  # 第 8 行
# 输出:我是提升为全局变量的局部变量
回复 收起回复
欢迎来到有爱的作业啦

兴风“作”浪 核心用户 黄金狮子座 绝版蛇夫座 发帖达人 回复达人 鸡年"大"吉 鸡年大"吉" 贴啦财富认证 黄金白羊座 黄金天秤座 土豪认证 豆地主 登峰造极 黄金金牛座 黄金巨蟹座 黄金处女座 笑傲江湖 “羊”名天下 黄金水瓶座 黄金双子座 黄金天蝎座 黄金双鱼座 黄金摩羯座 黄金射手座 虎头虎脑
6.png

6.png免费

90.93 KB, 下载次数: 145

下载 记录


# 先定义函数
def cooker(ingredient1, ingredient2, food, spice = '盐'):
  print('我用' + ingredient1 + '和' + ingredient2 + ',加入' + spice + ',做出了' + food)

# 制作咖喱牛肉吧
cooker('土豆', '牛肉', '咖喱牛肉', '咖喱')
# 制作蛋炒饭吧
cooker('米饭', '鸡蛋', '蛋炒饭')

回复 收起回复
欢迎来到有爱的作业啦

兴风“作”浪 核心用户 黄金狮子座 绝版蛇夫座 发帖达人 回复达人 鸡年"大"吉 鸡年大"吉" 贴啦财富认证 黄金白羊座 黄金天秤座 土豪认证 豆地主 登峰造极 黄金金牛座 黄金巨蟹座 黄金处女座 笑傲江湖 “羊”名天下 黄金水瓶座 黄金双子座 黄金天蝎座 黄金双鱼座 黄金摩羯座 黄金射手座 虎头虎脑
第七课
第七课.jpg

第七课.jpg免费

55.99 KB, 下载次数: 120

下载 记录


回复 收起回复
欢迎来到有爱的作业啦

兴风“作”浪 核心用户 黄金狮子座 绝版蛇夫座 发帖达人 回复达人 鸡年"大"吉 鸡年大"吉" 贴啦财富认证 黄金白羊座 黄金天秤座 土豪认证 豆地主 登峰造极 黄金金牛座 黄金巨蟹座 黄金处女座 笑傲江湖 “羊”名天下 黄金水瓶座 黄金双子座 黄金天蝎座 黄金双鱼座 黄金摩羯座 黄金射手座 虎头虎脑
函数回顾.jpg

函数回顾.jpg免费

98.09 KB, 下载次数: 127

下载 记录


回复 收起回复
欢迎来到有爱的作业啦

兴风“作”浪 核心用户 黄金狮子座 绝版蛇夫座 发帖达人 回复达人 鸡年"大"吉 鸡年大"吉" 贴啦财富认证 黄金白羊座 黄金天秤座 土豪认证 豆地主 登峰造极 黄金金牛座 黄金巨蟹座 黄金处女座 笑傲江湖 “羊”名天下 黄金水瓶座 黄金双子座 黄金天蝎座 黄金双鱼座 黄金摩羯座 黄金射手座 虎头虎脑
print() 和 return 辨析
[color=rgba(255, 255, 255, 0.87)]
因为我们有时把函数的返回值叫输出,print() 函数打印出来的也叫输出。很多同学因此很疑惑,分不清它俩的区别。其实它俩之间可是天壤之别,今天我们就来好好辨析一下。
函数辨析.jpg

函数辨析.jpg免费

51.18 KB, 下载次数: 116

下载 记录






回复 收起回复
欢迎来到有爱的作业啦

兴风“作”浪 核心用户 黄金狮子座 绝版蛇夫座 发帖达人 回复达人 鸡年"大"吉 鸡年大"吉" 贴啦财富认证 黄金白羊座 黄金天秤座 土豪认证 豆地主 登峰造极 黄金金牛座 黄金巨蟹座 黄金处女座 笑傲江湖 “羊”名天下 黄金水瓶座 黄金双子座 黄金天蝎座 黄金双鱼座 黄金摩羯座 黄金射手座 虎头虎脑
Tips:关键字 也叫保留字,是指 Python 中有特定含义的单词,比如 return、def、and 等,并且我们定义的变量名不能与 Python 中的关键字重名。
回复 收起回复
欢迎来到有爱的作业啦

兴风“作”浪 核心用户 黄金狮子座 绝版蛇夫座 发帖达人 回复达人 鸡年"大"吉 鸡年大"吉" 贴啦财富认证 黄金白羊座 黄金天秤座 土豪认证 豆地主 登峰造极 黄金金牛座 黄金巨蟹座 黄金处女座 笑傲江湖 “羊”名天下 黄金水瓶座 黄金双子座 黄金天蝎座 黄金双鱼座 黄金摩羯座 黄金射手座 虎头虎脑
常见错误
我们在写代码的过程中肯定会因为种种原因导致报错,接下来我们来归纳一下关于函数都有哪些常见错误。

# 缺少英文括号后的英文冒号
def func1()
  print('Hello World')
# 报错:SyntaxError: bad input on line xxx

# y = 2 缩进错误
def func2():
  x = 1
y = 2
# 报错:IndentationError: unindent does not match any outer indentation level on line xxx

# 默认参数应该放在位置参数后
def func3(x, y = 1, z):
  print(x, y, z)
# 报错:SyntaxError: non-default argument follows default argument on xxx

# 全局作用域不能访问局部变量
def func4():
  x = 1
print(x)
# 报错:NameError: name 'x' is not defined on line xxx
回复 收起回复
欢迎来到有爱的作业啦

兴风“作”浪 核心用户 黄金狮子座 绝版蛇夫座 发帖达人 回复达人 鸡年"大"吉 鸡年大"吉" 贴啦财富认证 黄金白羊座 黄金天秤座 土豪认证 豆地主 登峰造极 黄金金牛座 黄金巨蟹座 黄金处女座 笑傲江湖 “羊”名天下 黄金水瓶座 黄金双子座 黄金天蝎座 黄金双鱼座 黄金摩羯座 黄金射手座 虎头虎脑
今日成果
7.png

7.png免费

128.34 KB, 下载次数: 119

下载 记录


回复 收起回复
欢迎来到有爱的作业啦

兴风“作”浪 核心用户 黄金狮子座 绝版蛇夫座 发帖达人 回复达人 鸡年"大"吉 鸡年大"吉" 贴啦财富认证 黄金白羊座 黄金天秤座 土豪认证 豆地主 登峰造极 黄金金牛座 黄金巨蟹座 黄金处女座 笑傲江湖 “羊”名天下 黄金水瓶座 黄金双子座 黄金天蝎座 黄金双鱼座 黄金摩羯座 黄金射手座 虎头虎脑
第八课:分支执行
在之前的学习中,我们已经接触了不少的 Python 代码。你应该已经发现:Python 代码的执行都是逐行执行,也就是从头到尾地顺序执行。

其实计算机程序并不只能顺序执行,还能够进行 分支执行 。什么叫 分支执行 ?

为了理解分支执行,我们可以想象:驾驶一辆蓝色的红旗 HS7,行驶在高速公路上,分支 类似高速公路的 分岔路口。如果程序没有分支,就相当于我们行驶在一条没有分岔路口的高速公路上。假设我们想从北京开往上海,如果不能进行岔路选择的话,还能开到上海吗?

分支执行对于程序的重要性,相当于岔路选择对于高速公路行驶的重要性。

我们可以使用 条件语句 来实现分支执行。在 Python 中通过 if 语句 实现分支执行:

destination = "上海"
if destination == "上海":
  print("左转")
else:
  print("右转")
上面代码转为文字即为:如果 destination 等于 上海 时,屏幕输出 左转,否则输出 右转。

阅读上面代码是不是很轻松呢?Python 语言是非常适合初学者的,只要你懂一点英语,就能轻松读懂基础的 Python 代码。值得注意的是,在上面代码中出现了一个新的操作符,即判断相等操作符(==),顾名思义,就是判断操作符左边和右边的值是不是相等的。

注意:很多人总是分不清 = 和 == 的区别,你一定要记住了: = 是赋值,== 是判断相等。
回复 收起回复
欢迎来到有爱的作业啦

兴风“作”浪 核心用户 黄金狮子座 绝版蛇夫座 发帖达人 回复达人 鸡年"大"吉 鸡年大"吉" 贴啦财富认证 黄金白羊座 黄金天秤座 土豪认证 豆地主 登峰造极 黄金金牛座 黄金巨蟹座 黄金处女座 笑傲江湖 “羊”名天下 黄金水瓶座 黄金双子座 黄金天蝎座 黄金双鱼座 黄金摩羯座 黄金射手座 虎头虎脑
[color=rgba(255, 255, 255, 0.87)]接下来我们学习 [color=rgba(255, 255, 255, 0.87)]if 语句[color=rgba(255, 255, 255, 0.87)] 的语法规则:
条件.jpg

条件.jpg免费

44.73 KB, 下载次数: 116

下载 记录


[color=rgba(255, 255, 255, 0.87)]需要注意的是 [color=rgba(255, 255, 255, 0.87)]:[color=rgba(255, 255, 255, 0.87)] 后面的代码块要缩进。

[color=rgba(255, 255, 255, 0.87)]

[color=rgba(255, 255, 255, 0.87)]

[color=rgba(255, 255, 255, 0.87)]


回复 收起回复
欢迎来到有爱的作业啦

兴风“作”浪 核心用户 黄金狮子座 绝版蛇夫座 发帖达人 回复达人 鸡年"大"吉 鸡年大"吉" 贴啦财富认证 黄金白羊座 黄金天秤座 土豪认证 豆地主 登峰造极 黄金金牛座 黄金巨蟹座 黄金处女座 笑傲江湖 “羊”名天下 黄金水瓶座 黄金双子座 黄金天蝎座 黄金双鱼座 黄金摩羯座 黄金射手座 虎头虎脑
上一节中,条件语句的判断条件是 == 操作符的运算结果。== 操作符的运算结果只有两种情况,即真(True)和假(False)。计算机中,用来表示语句真假的数据类型叫做布尔类型。我们通过前面例子中的代码再来认识一下布尔类型:

destination = "上海"

print(destination == "上海")
# 输出:True

print(type(destination == "上海"))
# 输出:<class 'bool'>
回复 收起回复
欢迎来到有爱的作业啦

兴风“作”浪 核心用户 黄金狮子座 绝版蛇夫座 发帖达人 回复达人 鸡年"大"吉 鸡年大"吉" 贴啦财富认证 黄金白羊座 黄金天秤座 土豪认证 豆地主 登峰造极 黄金金牛座 黄金巨蟹座 黄金处女座 笑傲江湖 “羊”名天下 黄金水瓶座 黄金双子座 黄金天蝎座 黄金双鱼座 黄金摩羯座 黄金射手座 虎头虎脑
[color=rgba(255, 255, 255, 0.87)]布尔类型的值,我们一般也称为 [color=rgba(255, 255, 255, 0.87)]布尔值[color=rgba(255, 255, 255, 0.87)]。条件语句中的条件就是布尔值。布尔值只有两种值,即 [color=rgba(255, 255, 255, 0.87)]True[color=rgba(255, 255, 255, 0.87)][color=rgba(255, 255, 255, 0.87)]False[color=rgba(255, 255, 255, 0.87)]
布尔值.jpg

布尔值.jpg免费

33.23 KB, 下载次数: 118

下载 记录

[color=rgba(255, 255, 255, 0.870588235294118)]

[color=rgba(255, 255, 255, 0.87)]


回复 收起回复
欢迎来到有爱的作业啦
下载贴啦APP
看高清直播、视频!
您需要登录后才可以回帖 登录 | 获取通行证