python定义函数和函数的使用
函数
函数是对程序逻辑进行结构化或过程化的一种编程方法,将整块代码巧妙地隔离成易于管理的小块。把重复代码放到函数中而不是进行大量的拷贝,这样既能节省空间,也有助于保持一致性;通常函数都是用于实现某一种功能。
函数的定义
使用关键字def来定义函数
def test(): #定义函数
a=10 #函数体内部
return a #a函数返回值
函数的调用
想要调用函数必须先定义
def test(): #定义函数
a=10
return a
test() # 调用函数
函数的返回值
定义函数默认是没有返回值的
想要让函数返回特定的值使用return关键字
形参和实参
形式参数
函数定义时,紧跟在函数名后圆括号内的参数被称为形式参数,简称形参。由于它不是实际存在变量,所以又称虚拟变量。
实际参数
函数调用时,函数名后面括号中的参数(可以是一个表达式)称为“实际参数”,简称实参。
def test(x,y): #定义一个test函数并定义两个形参来接收实参
return x+y
test(10,5) 调用函数将实参10,5传入
默认参数
默认参数,不向该参数传入值也是允许的
# 05 - 默认参数.py
def add(x = 0, y = 0):
sum = x + y
return sum
print(add())
位置传参
根据参数的位置顺序进行传参最常用的一种位置必须一致
关键字传参
通过“键=值”形式传递参数,可以不限参数顺序可以和位置参数混用,位置参数需在前
掌握缺省
参数不传递参数值时会使用默认的参数默认值的参数必须定义在最后
函数变量作用域
全局和局部的问题。
局部变量
局部变量是在函数内部定义的变量,随着函数的调用而被创建,函数调用完毕之后,即销毁。局部变量在函数调用后,才被创建,其作用范围,仅限于函数内部。
def test():
x = 10
print(x)
test()
print(x) #NameError: name 'x' is not defined
全局变量
在函数外部定义的变量。
x = 10
def test():
# x = 3
print(x)
test()
python自带的字符模块
string 模块是python自带的字符模块
随机密码生成器
导入模块
import string,random
char_all=string.printable.strip() #将可打印的字符串除了换行和空格全部取出来
password="" # 定义空字符串装每次生成的字符
for i in range(8)
c=random.choice(char_all) #每次随机在该列表里去一个字符
password+=c 每生成一个就添加进字符串
print(password)
案例
完成一个密码生成器
import string,random
char_all=string.printable.strip()
count=int(input("请输入要生成几个密码: "))
num=int(input("请输入要生产的密码长度: "))
for x in range(count):
b = ""
for x in range(num):
char=random.choice(char_all)
b+=char
print(b)