当前位置: 首页 > news >正文

python 做办公网站移动应用开发学什么

python 做办公网站,移动应用开发学什么,wordpress 折叠内容,简单网站目录 十一.变量的作用域 局部变量 全局变量 十二.函数案例 - 学生管理系统 十一.变量的作用域 局部变量 局部变量简介 在函数中定义的变量,包括形参变量也是局部变量,只能在定义它的函数中用 def test_1():a 300print(ftest_1在修改前的a的值为…

目录

十一.变量的作用域

局部变量

全局变量

十二.函数案例 - 学生管理系统


十一.变量的作用域
局部变量

局部变量简介

在函数中定义的变量,包括形参变量也是局部变量,只能在定义它的函数中用

def test_1():a = 300print(f'test_1在修改前的a的值为:{a}')  # f表达式:使用大括号进行占位,要打印的数据直接使用保存数值的变量名称a = 200print(f'test_1在修改后的a的值为:{a}')def test_2():a = 400print('函数test_2中的局部变量为: %d' % a)test_1()
test_2()

局部变量的作用

我们知道函数要尽量遵循高内聚,低耦合也就是一个函数的功能尽量独立,为了实现这些功能就免不了进行各种数学运算,想要运算就需要变量,此时在函数中定义变量的需求也就自然而然的来了

所以说,局部变量一般就是为了实现这个函数中的功能而定义的变量,只能在当前函数中使用,其他函数不能使用

局部变量的特点

  • 局部变量,就是在函数内部定义的变量
  • 形参也属于局部变量
  • 其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的
  • 每次调用函数时,局部变量都会重新使用,而不是用上一次调用函数时留下的数据
  • 因为其作用范围只是在自己的函数内部,所以不同的函数可以定义相同名字的局部变量(打个比方,把你、我是当做成函数,把局部变量理解为每个人手里的手机,你可有个iPhone12,我当然也可以有个iPhone12, 互不相关)
全局变量

全局变量简介

一种在函数外部定义的变量,可以在所有函数中共用

# 定义全局变量
a = 100def test_1():a = 300  # 局部变量print(f'test_1修改前a的值为: {a}')a = 200print(f'test_1修改后a的值为: {a}')def test_2():print(f'test_2获取全局变量的值为: {a}')test_1()
test_2()

全局变量的作用

局部变量它的作用范围就只能在定义它的函数中用,而有时为了能够在多个函数之间共用某个数据,此时就有了全局变量

打个比方:有2个兄弟各自有手机,各自有自己的小秘密在手机里,不让另外一方使用(可以理解为局部变量);但是家里的电话是2个兄弟都可以随便使用的(可以理解为全局变量)

全局变量的使用方式

# 定义全局变量
a = 100def test1():print(a)  # 虽然没有定义变量a但是依然可以获取其数据# 调用函数
test1()

如果一个函数中需要修改全局的值,此时我们需要用global进行声明

# 定义全局变量
a = 100def test1():print(a)  # 虽然没有定义变量a但是依然可以获取其数据def test2():global a  # 如果一个函数中需要修改全局的值,此时我们需要用globa进行声明a += 1  # 修改全局变量print(a)# 调用函数
test1()

总结

  • 在函数外边定义的变量叫做全局变量
  • 全局变量能够在所有的函数中进行访问
  • 当函数内出现局部变量和全局变量相同名字时,函数内部中的变量名 = 数据此时理解为定义了一个局部变量,而不是修改全局变量的值
  • 如果在函数中出现global 全局变量的名字 那么这个函数中即使出现和全局变量名相同的变量名 = 数据也理解为对全局变量进行修改,而不是定义局部变量
  • 如果在一个函数中需要对多个全局变量进行修改,并且全局变量的类型为不可变,则可以使用global 变量1, 变量
十二.函数案例 - 学生管理系统
# -*- coding:utf-8 -*-
# @FileName: student_system.pyinfo_list = []def print_menu():print('')print("*" * 27)print("      学生管理系统 V1.0")print(" 1:添加学生")print(" 2:删除学生")print(" 3:修改学生")print(" 4:查询学生")print(" 5:显示所有学生")print(" 6:退出系统")print("*" * 27)print('')def add_new_info():"""添加学生信息"""new_name = input("请输入姓名:")new_tel = input("请输入手机号:")new_qq = input("请输入QQ:")# 学号自增# 这里只是方便演示,如果自增会导致删除学生后添加学生时id重复# 将以下代码修改为用户手动输入学号即可new_id = len(info_list) + 1for temp_info in info_list:if temp_info['id'] == new_id:print("此学号已经存在,请重新输入")return# 定义一个字典,用来存储用户的学生信息(这是一个字典)info = dict()# 向字典中添加数据info["id"] = new_idinfo["name"] = new_nameinfo["tel"] = new_telinfo["qq"] = new_qq# 向列表中添加这个字典info_list.append(info)print(info_list)def del_info():"""删除学生信息"""del_num = int(input("请输入要删除的序号:"))# 序号从1开始,需要减1来获取正确的索引index = del_num - 1if 0 <= index < len(info_list):del_flag = input("确认删除:y or n: ")if del_flag == "y":# 删除指定索引的学生信息del info_list[index]else:print("输入序号有误,请重新输入")def modify_info():"""修改学生信息"""modify_num = int(input("请输入要修改的序号:"))# 序号从1开始,需要减1来获取正确的索引index = modify_num - 1if 0 <= index < len(info_list):print("你要修改的信息是:")info = info_list[index]print("学号:%s, 姓名:%s, 手机号:%s, QQ:%s" % (info['id'], info['name'], info['tel'], info['qq']))new_name = input("请输入新的姓名:")new_tel = input("请输入新的手机号:")new_qq = input("请输入新QQ:")# 更新学生信息info['name'] = new_nameinfo['tel'] = new_telinfo['qq'] = new_qqelse:print("输入序号有误,请重新输入")def search_info():"""查询学生信息"""search_name = input("请输入要查询的学生姓名:")for temp_info in info_list:if temp_info['name'] == search_name:print("查询到的信息如下:")print("学号:%s, 姓名:%s, 手机号:%s, QQ:%s" % (temp_info['id'], temp_info['name'], temp_info['tel'], temp_info['qq']))breakelse:print("没有您要找的信息....")def print_all_info():"""打印所有学生信息"""print("序号\t\t学号\t\t姓名\t\t手机号\t\t\tQQ")i = 1for temp_info in info_list:print('-' * 47)print("%d\t\t%s\t\t%s\t\t%s\t\t%s" % (i, temp_info['id'], temp_info['name'], temp_info['tel'], temp_info['qq']))i += 1def main():while True:print_menu()option = input("请选择操作:")# 分支操作if option == '1':add_new_info()elif option == '2':del_info()elif option == '3':modify_info()elif option == '4':search_info()elif option == '5':print_all_info()elif option == '6':print("感谢使用学生管理系统,再见!")breakelse:print("输入有误,请重新输入")if __name__ == '__main__':main()
http://www.dtcms.com/a/453395.html

相关文章:

  • 数据库迁移migration
  • Channel 和 Flow 选择场景对比 (例子:不停发事件的场景)
  • 《Vuejs设计与实现》第 18 章(同构渲染)(下)
  • jsp网站开发大作业长春网站建设wang
  • 淄博网站建设网宽河北网站建设推广电话
  • Django ORM 详解
  • C语言模拟面向对象编程方法之多态
  • 温州市建设工程管理网站温州建设网站哪家好
  • 划时代的技术飞跃:OpenAI DevDay 2025 全面深度解读
  • 做网站的网页图片素材怎么找长春做网站哪家便宜
  • 计算机操作系统:操作系统的发展过程
  • 未来之窗昭和仙君 (十三) 对话框组件— 东方仙盟筑基期
  • 茶叶公司网站建设策划书制作展示型网站公司哪家好
  • 部门定制网站建设公司免费电子版个人简历模板
  • 佛山营销网站建设咨询网站统计分析平台
  • 【工具变量】上市公司气候风险数据集(2011-2023年)
  • nat outbound acl-number address-group group-index 概念及题目
  • 电商网站构建预算方案门户网站html
  • CICD工具选型指南,Jenkins vs Arbess哪一款更好用?
  • 做彩票网站怎么样济南正规网站制作怎么选择
  • C++ 模板、泛型与 auto 关键字
  • 游戏项目 多态练习 超级玛丽demo8
  • 外企 BI 工具选型:从合规到落地
  • 医疗知识普及网站开发网站建立教学
  • Spring Boot中使用线程池来优化程序执行的效率!笔记01
  • 东平网站制作哪家好上海做网站站优云一一十七
  • 玩转ClaudeCode:通过Excel-MCP实现数据清洗并写入Excel
  • LeetCode 2761. 和等于目标值的质数对
  • 网站建设工作落实情况网站买流量是怎么做的
  • 开源 C++ QT QML 开发(九)文件--文本和二进制