函数基础一
Posted Alice
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数基础一相关的知识,希望对你有一定的参考价值。
一、定义
函数是对语句的封装
def 函数名
函数体
二、参数
1、形参和实参
函数定义时需要几个形参,调用函数时就需要传入几个实参
形参:函数定义时,在括号里定义的变量,称为形式参数 ,简称形参,只起到占位的作用;
实参:函数调用时传入的值,称为实际参数,简称实参,是真正参与逻辑处理的值
2、传递任意数量的实参
*args 是一个元组,表示可变参数
def test(a, b, *args):
print(args)
print(a+b)
test(1, 2, 3)
三、返回值
如果一个函数没有返回值,那么这个函数的返回结果是None
def get_sum(m, n):
result = 0
for i in range(m, n+1):
result += i
return result
x = get_sum(1, 2)
print(x**2)
四、内置函数
1. print()需要输入一个参数,参数是一个字符串类型的数据
2. input()
3. len()
4. max()
5. sum()求和
6. pow(x,y)求x的y次方
7. round(f,n)四舍五入,保留小数点后n位
8. sorted()对可迭代对象进行排序
9.
nums = [8,1,2,0,9]
print(max(nums))
print(nums.sort())#列表的sort()方法进行排序,如果用对象的sort方法,运行后没有结果,直接作用到列表了
print(sorted(nums))#内置函数sorted(),将列表传进去,结果是排序后的
五、函数的使用
# 1、定义一个函数,让用户输入长和宽,计算并打印面积,要求面积四舍五入保留到小数点后两位
def get_area():
width = float(input(\'请输入宽:\'))
height = float(input(\'请输入高:\'))
# %f 表示的是小数点的占位符
# %.nf 表示的是四舍五入保留到小数点后n位
print(\'计算出来的面积是%.2f\' %(width*height))
get_area()
# 2、定义一个函数,求一个列表里数据的最大值
def get_max(ns):
# 假设列表里第0个数是最大值
my_max = ns[0]
for n in ns:
if n > my_max:
my_max = n
print(\'列表里的最大数是%d\' % my_max)
nums = [8, 1, 5, 4, 3, 9, 0]
get_max(nums)
# 3、定义一个函数,不断的让用户输入数字,如果用户输入stop,停止输入,并打印这些数字里的最大数
def get_max(ns):
# 假设列表里第0个数是最大值
my_max = ns[0]
for n in ns:
if n > my_max:
my_max = n
print(\'列表里的最大数是%d\' % my_max)
def demo():
nums = [] # 用来保存用户输入的数字
while True:
num = input(\'请输入一个数字:\')
if num == \'stop\':
break
nums.append(int(num))
get_max(nums)
demo()
# 4、名片管理系统
# 定义一个全局变量的列表,用来保存所有的用户
user_list = []
def add_user():
# print(\'添加名片\')
# 让用户输入用户名,手机号和QQ等信息
name = input(\'请输入姓名:\')
for u_dict in user_list:
if u_dict[\'name\'] == name:
print(\'对不起,用户名已经被占用了!!!\')
# break#只能结束当前循环,但函数中除了该循环外的下面仍会执行
return # 表示结束函数
tel = input(\'请输入手机号:\')
qq = input(\'请输入QQ号:\')
# 把用户输入的信息整合成为一个字典来保存
user = {\'name\': name, \'tel\': tel, \'qq\': qq}
# 把创建好的用户字典添加到用户列表里
user_list.append(user)
print(user_list)
def del_user():
# print(\'删除名片\')
num = int(input(\'请输入要删除的序号:\'))
if num < 0 or num > len(user_list)-1:
print(\'您输入的序号不在范围内\')
return
is_sure = input(\'你确定要删除吗(yes or no):\')
if is_sure.lower() == \'yse\':
user_list.pop(num)
print(user_list)
def modify_user():
# print(\'修改名片\')
if num < 0 or num > len(user_list)-1:
print(\'您输入的序号不在范围内\')
return
print(\'您要修改的信息时:\')
# 根据下标获取到字典数据
user_dict = user_list[num]
print(\'姓名:%s,手机号:%s,QQ号:%s\' %
(user_dict[\'name\'], user_dict[\'tel\'], [\'qq\']))
new_name = input(\'请输入新的姓名:\')
new_tel = input(\'请输入新的手机号:\')
new_qq = input(\'请输入新的qq:\')
user_dict[\'name\'] = new_name
user_dict[\'tel\'] = new_tel
user_dict[\'qq\'] == new_qq
print(user_list)
def show_user():
# print(\'显示名片\')
search_name = input(\'请输入您要查询的姓名:\')
for user in user_list:
if user[\'name\'] == name:
print(\'查询到的信息如下:\')
print(\'姓名:%s,手机号:%s,QQ号:%s\' %
(user[\'name\'], user[\'tel\'], user[\'qq\']))
break
else:
print(\'没有您要找的信息......\')
def show_all():
# print(\'显示所有\')
print(\'序号 姓名 手机号 QQ\')
i = 0
for user in user_list:
# center 字符串的方法
print(\'%d %s %s %s\' % (i, user[\'name\'].center(
10), user[\'tel\'].center(14), user[\'qq\'].center(10)))
i += 1
def quit_system():
# print(\'退出系统\')
is_sure = input(\'你确定要退出吗?(yes or no)\')
if is_sure.lower() == \'yes\':
return True
else:
return False
def main():
while True:
print(\'----------------------\')
print(\'名片管理系统V1.0\')
print(\'1:添加名片\')
print(\'2:删除名片\')
print(\'3:修改名片\')
print(\'4:查询名片\')
print(\'5:显示所有名片\')
print(\'6:退出系统\')
print(\'----------------------\')
num = input(\'请输入要进行从操作(数字)\')
if num == \'1\':
add_user()
elif num == \'2\':
del_user()
elif num == \'3\':
modify_user()
elif num == \'4\':
show_user()
elif num == \'5\':
show_all()
elif num == \'6\':
# quit_system()
is_exit = quit_system()
if is_exit == True:
break
else:
print(\'输入的内容不合法\')
main()
以上是关于函数基础一的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向加壳技术简介 ( 动态加载 | 第一代加壳技术 - DEX 整体加固 | 第二代加壳技术 - 函数抽取 | 第三代加壳技术 - VMP / Dex2C | 动态库加壳技术 )