通过(一)分享了一些新手村任务
在来一个遍历列表的字典回顾一下
students = [
{"name": "刘能"},
{"name": "赵四"},
{"name": "广坤"},
{"name": "小宝"},
{"name": "永强"},
{"name": "大脚"},
]
# 在学员列表中搜索指定的姓名
find_name = "刘老根"
for stu_dict in students:
print(stu_dict)
if stu_dict["name"] == find_name:
print("找到了 %s" % find_name)
# 如果已经找到,应该直接退出循环,而不再遍历后续的元素
break
# else:
# print("抱歉没有找到 %s" % find_name)
else:
# 如果希望在搜索列表时,所有的字典检查之后,都没有发现需要搜索的目标
# 还希望得到一个统一的提示!
print("抱歉没有找到 %s" % find_name)
print("搜索结束")
接下来是这次和大家分享的
引用地址
def test(num):
print("在函数内部 %d 对应的内存地址是 %d" % (num, id(num)))
# 1. 定义一个字符串变量
result = "hello"
print("函数要返回数据的内存地址是 %d" % id(result))
# 2. 将字符串变量返回,返回的是数据的引用,而不是数据本身
return result
# 1. 定义一个数字的变量
a = 10
# 数据的地址本质上就是一个数字
print("a 变量保存数据的内存地址是 %d" % id(a))
# 2. 调用 test 函数,本质上传递的是实参保存数据的引用,而不是实参保存的数据!
# 注意:如果函数有返回值,但是没有定义变量接收
# 程序不会报错,但是无法获得返回结果
r = test(a)
print("%s 的内存地址是 %d" % (r, id(r)))
局部与全局变量
# 定义一个局部变量
def demo1():
# 出生:执行了下方的代码之后,才会被创建
# 死亡:函数执行完成之后
num = 10
print("在demo1函数内部的变量是 %d" % num)
demo1()
# 全局变量
num = 10
def demo2():
print("demo2 == %d" % num)
demo2()
如何修改全局变量
# 全局变量
num = 10
def demo1():
# 希望修改全局变量的值-使用global声明一下即可
# global关键字会告诉解释器后面的变量是一个全局变量
# 再使用赋值语句时,就不会创建局部变量
global num
num = 99
print("demo1 ==> %d" % num)
def demo2():
print("demo2 ==> %d" % num)
demo1()
demo2()
#运行结果
99
99
在开发时,应该把模块中的所有全局变量定义在所有函数上方,就可以保证所有的函数都能够正常的访问到每一个全局变量了。
数字交换
a = 6
b = 100
# 解法1:-使用其他变量
# c = a
# a = b
# b = c
# 解法2:-不使用其他的变量
# a = a + b
# b = a - b
# a = a - b
# 解法3:-Python 专有
# a, b = (b, a)
# 提示:等号右边是一个元组,只是把小括号省略了
a, b = b, a
print(a,b)
名单(参数缺省)
def print_info(name, title="", gender=True):
"""
:param title:
:param name: 班上同学的姓名
:param gender: True 男生 False 女生
"""
gender_text = "男生"
if not gender:
gender_text = "女生"
print("[%s]%s 是 %s" % (title, name, gender_text))
# 假设班上的同学,男生居多!
# 提示:在指定缺省参数的默认值时,应该使用最常见的值作为默认值!
print_info("小明","1")
print_info("老王")
print_info("小美", gender=False)
#多值参数
def sum_numbers(*args):
num = 0
print(args)
# 循环遍历
for n in args:
num += n
return num
result = sum_numbers(1, 2, 3, 4, 5)
print(result)
递归求和
def sum_numbers(num):
# 出口
if num == 1:
return 1
# 数字的累加
temp = sum_numbers(num - 1)
# 两个数字的相加
return num + temp
result = sum_numbers(100)
print(result)
转载:https://blog.csdn.net/mndlgzzd/article/details/105656353
查看评论