函数 :
什么是函数?
在编程语言当中函数也称之为方法()
函数 :
1.python自带的函数 :内建函数 --- print input 等等
2.python自定义函数 :程序员自己定义的函数
python当中定义函数 :def 创建函数 :
格式语法 :
def 函数名称():
功能代码
函数可以更好的组织代码,代码的复用性更高
# def function():
#
# 函数 :实现输出hello word 的功能
# :return:
#
# print("hello word")
# 主函数调用,就是为了防止其他模块不想被调用的代码被执行
# if __name__ == '__main__':
# function()
if __name__ == '__main__': 是一个 if 判断语句 :
__name__ 是模块名称 :__main__是条件:
__name__ 是模块名称 :在当前模块打印的名称是 __main__ 所有
条件通过,if __name__ == '__main__' 被执行了
注意 :所有模块在自己模块打印名称都是使用__name__直接去打印,
但是你在调用模块打印其他模块的名称,需要接上模块的路径
函数的调用方法
1.直接通过函数名称调用函数
2.通过主函数调用函数功能
函数当中的参数 :
def 函数名称():()是用来定义参数变量名称的,也叫形式参数
# def function(name):
# print("name is :", name)
# # 调用函数时给形参赋值,此时传的值叫做实际参数
# # 通过参数名称赋值
# function(name="张三") # name is : 张三
# # 直接赋值
# function("李四") # name is : 李四
# def function(name, where, action):
# print("name, where,action is", name, where, action)
#
# function("张三", "去武汉", "跑步") # name, where,action is 张三 去武汉 跑步
# function(name="李四", where="去北京", action="爬长城") # name, where,action is 李四 去北京 爬长城
默认参数:
注意 :有默认值的参数必须写在没有默认值的参数的后面
# def function(name="张三",where="去北京",action="吃烤鸭"):
# print(name, where, action)
# function() # 张三 去北京 吃烤鸭
# function("李四") # 李四 去北京 吃烤鸭
# function("李四", "南京") # 李四 南京 吃烤鸭
# 定义 None 的默认值
# def function(name="张三",where=None,action=None):
# print(name, where, action)
# function() # 张三 None None
# function("李四", "北京") # 李四 北京 None
函数变量的使用 :
1.全局变量 :当前变量下的所有内容都可以直接引用
2.局部变量 :只在特定的作用域下生效
3.global :声明局部变量为全局变量
# 定义一个变量 :
# age = 18
# def function():
# # 局部变量是在函数体部定义,生效的范围只是在当前的函数中
# number = 1000
# # 申明局部变量为全局变量
# global name
# name = "张三"
# print(age, number, name)
# function() # 18 1000 张三
# print(name) # 张三
可变长参数(可变长元组) :*
# def function(name, *args):
# print(name, args)
# print(type(args)) # <class 'tuple'>
# function(18,19) # 18 (19,)
可变长字典 :**
# def function(*args, **kwargs):
# print(args, kwargs)
# function(11, 22, 33, name="张三", where="北京") # (11, 22, 33) {'name': '张三', 'where': '北京'}
# function(**{"name":"张三"},**{"where":"北京"}) # () {'name': '张三', 'where': '北京'}
函数当中的return 语句 :
return :函数的返回值
# def function(): # function 本身是没有属性的
# print("hello word")
# print(function()) # None
# def function(): # function 本身是没有属性的
# return "hello word" # 将hello word 这个属性赋给当前函数
# print(function()) # hello word
需求 :a 函数和b 函数 需要拿到a函数的结果参与b函数的运算
# def a():
# number = 1000
# return number
# def b():
# number = a() / 2
# print(number)
# b() # 500.0
return 返回多个结果
注意 :函数当中一旦碰到return语句立即返回结果,return下面
的语法将不会被执行
# def func():
# return 1, 2, 3, 4, 5
# print("hello word")
# print(func()) # (1, 2, 3, 4, 5)
# 函数当中多个return ,只会执行一个return语句
# def func(a):
# if a == 10:
# return "a=10"
# elif a < 10:
# return "a<10"
# else:
# return "a>10"
# print(func(1)) # a<10
return:
1.函数本身的属性为None,函数的属性是由return决定的,
return返回什么,当前的函数属性就是什么
2.return 语句返回的时候,后面没写内容,返回的结果也是None
3.return 可以返回多个结果,默认存储的类型是tuple类型
4.函数当中碰到return语句立刻返回结果,return语句下面的内容
不会被执行
函数 :可以理解为一个装代码的箱子(也叫做封装的概念)封装之后
的代码,方便后续的代码维护,提升了代码的扩展性,也提高了当前
代码的复用性
# def func(userAc, pwd):
# username = input("请输入你的用户名:")
# if username == userAc:
# password = input("请输入你的密码:")
# if password == pwd:
# print("登录成功")
# else:
# print("密码错误")
# else:
# print("账号错误")
# func("zhangsan","123456")
格式化输出的方法 :% 格式化输出结果 :
format :格式化输出
# print("name: %s age: %s" % ("张三", 18)) # name: 张三 age: 18
#
# # format 输出第一种方式
# print("name: {} age: {}".format("李四", 20)) # name: 李四 age: 20
# # format 输出第二种方式,索引取被传的值
# print("name: {1} age: {0}".format(20, "王五")) # name: 王五 age: 20
#
# print("name: {0[1]} age: {0[0]}".format([23, "赵六"])) # name: 赵六 age: 23
# print("name: {1} age: {0}".format(*[23, "赵六"])) # name: 赵六 age: 23
# print("name: {name} age: {age}".format(**{"name":"牛七","age":55})) # name: 牛七 age: 55
# print("name: {0[name]} age: {0[age]}".format({"name":"牛七","age":55})) # name: 牛七 age: 55
#
# print("name: {name} age: {age}".format(name="荣八",age=30)) # name: 荣八 age: 30
f 的格式化输出方法:
# li1 = ["张三", 33]
# di = {"name":"牛七","age":55}
# print(f"name is:{li1[0]} age is:{li1[1]}") # name is:张三 age is:33
# print(f"name is:{di['name']} age is:{di['age']}") # name is:牛七 age is:55
#
# name = "王五"
# age = 17
# print(f"name is:{name} age is:{age}") # name is:王五 age is:17
open() : 创建打开文件
mode : r(读) w(写) a(追加)
# file = open(r"D:\PycharmProjects\wuhan20\wuhan_20_demo\file.txt",mode="r",encoding="utf-8")
# 读取当前文件的所有内容
# print(file.read()) # 武汉20期
# # 哈哈哈哈
# 读取当前文件首行的内容
# print(file.readline()) # 武汉20期
# 读取文件当中的所有内容,并显示在list当中
# print(file.readlines()) # ['武汉20期\n', '哈哈哈哈']
# file.close()
读取文件的过程中,不要同时使用多个方法读取,会导致数据不准确
=============================写============================
# file = open(r"D:\PycharmProjects\wuhan20\wuhan_20_demo\file.txt",mode="w",encoding="utf-8")
# file.write("武汉多测师,鼎泰关南大厦,年前预报名,享受年前报名的价格")
# \n 也叫做转义字符 :作用换行 如果想要转义字符不生效前面加r
# file.writelines("武汉多测师,年前预报名,享受年前报名的价格")
# file.close() # 关闭文件
# =============================追加============================
# file = open(r"D:\PycharmProjects\wuhan20\wuhan_20_demo\file.txt",mode="a",encoding="utf-8")
# file.write("\n鼎泰关南大厦418")
# file.close()
=============================with open============================
不需要手动关闭文件,它会自动关闭文件
# with open(r"D:\PycharmProjects\wuhan20\wuhan_20_demo\file.txt",mode="r",encoding="utf-8") as file:
# print(file.read())
# print(file.read()) # 报错,在外层执行过程中,文件已经被关闭了
|
|