发布时间:2020/07/08 作者:天马行空 阅读(1715)
函数基础
Python中,函数(Function)是一段组织好的、可重复使用的、可以做某一件事的代码。
输入的数据,它在函数中被称作参数。参数指向的是函数要接收、处理怎样的数据。
一、自定义函数
自定义函数就是用户使用def定义的函数。参数是可选项,也就是说一个函数,可以没有参数,可以有一个参数,也可以有多个参数。
#函数名:最好是取体现函数功能的名字,一般用小写字母和单下划线、数字等组合 def intro(name): #参数:根据函数功能,括号里可以有多个参数,也可以不带参数,命名规则与函数名相同 #规范:括号是英文括号,后面的冒号不能丢 print("My name is {}.".format(name)) #函数体:函数体就是体现函数功能的语句,要缩进,一般是四个空格
调用函数
函数调用的语法为:
def intro(name): print("My name is {}.".format(name)) intro("Angelababy") intro("Kris")
有返回值的函数
使用return返回某些结果,然后在调用函数时把这些结果赋值给几个变量。
def circle(r): pi = 3.14159 area = pi * r ** 2 return area my_area = circle(10) print("半径为10的圆的面积是{}".format(my_area))
变量作用域
一个变量的作用域就是指这个变量能够被正常使用的代码范围。
局部变量:函数内部使用的变量,叫局部变量,函数内定义的变量在函数外不起作用。
全局变量:在所有函数之外赋值的、可以在程序的任何位置使用的变量,叫做全局变量。在函数外面定义的变量可以在函数里使用,但要注意把变量定义在使用变量或者调用使用它的函数之前。
# 定义一个全局变量 string = '我是全局变量' # 定义一个测试函数 def test(): # 定义一个同名局部变量并打印 string = '我是局部变量' print (string) # 调用测试函数完成打印局部变量的任务 test() # 打印全局变量 print(string)
虽然局部变量和全局变量都叫string,但其实他们互无影响,全局变量不会因为函数中的赋值而发生改变。
使用global关键字可以把局部变量变成全局变量。
string = 'test' def test(): global string string = 'test1' print (string) test() print (string)
二、内建函数
内建函数就是Python自带的函数,对于这些函数,我们只需要知道它能接收哪些参数,实现了什么功能就可以了。
对价格进行排序,并找出其中最高和最低的价格
price_list = [299, 13140, 199, 399, 899, 5200] sorted_list = sorted(price_list) #sorted第二个参数默认是false升序,true为降序 max_price = max(price_list) min_price = min(price_list) print("课程价格从低到高为:{}".format(sorted_list)) print("课程中,最贵的价格是:{}".format(max_price)) print("课程中,最便宜的价格是:{}".format(min_price))
实例1:累加加函数
def calculate_sum(number): a = 0 for i in range(number+1): a = a + i return a # 补充以下四行代码,分别求100以内的累加和和200以内的累加和,并分别打印出。 print(calculate_sum(100)) print(calculate_sum(200))
实例2:不重复的三位数
def test(low, high): count = 0 for i in range(low, high + 1): for j in range(low, high + 1): for k in range(low, high + 1): if i != j and i != k and j != k: print(i * 100 + j * 10 + k) count += 1 print("一共有{}个三位数".format(count)) test(1,3) test(3,8)
实例3:猜数字游戏
def guess_number(true_number, low_number, high_number): i = 1 while i <= 5: guess_number = int(input("数字的范围是{}-{},现在第{}次猜测:" .format(low_number, high_number, i))) if true_number == guess_number: print("恭喜你猜对啦!") break # 请你补全以下四行代码 elif guess_number<true_number and guess_number>low_number: low_number = guess_number elif guess_number>true_number and guess_number<high_number: high_number = guess_number i = i + 1 if i > 5: print("很遗憾,你五次都没有猜对。正确数字是{}。" .format(true_number)) true_number = int(input("请主持人输入数字:")) low_number = int(input("请主持人输入范围下限:")) high_number = int(input("请主持人输入范围上限:")) guess_number(true_number, low_number, high_number)
实例4:nn乘法表
def multiple_table(n): # 补充下面一行代码,完成for的第一层循环 for i in range(1, n + 1): for j in range(i, n + 1): print("{}x{}={}".format(i, j, i * j), end="\t") print("\n") # 九九乘法表 multiple_table(9) # 五五乘法表 multiple_table(5)
实例5:求解所有素数
def find_number(low, high): for i in range(low, high+1): flag = 0 for j in range(2, i): if i % j == 0: flag = 1 break if flag == 0: print(i) find_number(101, 200)
实例6:保存帐号密码
# 检测用户名是否符合要求的函数 def uncheck(username): if username == '': return False else: return True #请补全代码 # 检测密码是否符合要求的函数 def pwcheck(password): if len(password)>=6: return True else: return False #请补全代码 # 第三步 保存函数 def save(username, password): global accounts accounts[username] = password #请补全代码 # 创建一个空字典用来保存用户名和密码 accounts = {} # 现在试着保存三个账户名和密码 for i in range(3): #请补全代码 username = input('请输入用户名:') password = input('请输入密码:') if uncheck(username) and pwcheck(password): save(username,password) print('账号创建成功!') else: print('账号创建失败。') print('帐号字典:{}'.format(accounts))
实例7:登陆帐户
# 定义登录函数 def login(account_dict, number): count = 0 while True: count+=1 if count>number: print('机会已经用完,非法闯入!') break username = input('请输入用户名:') password = input('请输入密码:') if username in account_dict and account_dict[username]==password: print('登陆成功') break if username not in account_dict: print('用户不存在') else: if account_dict[username] != password: print('密码错误') accounts = {'阿里巴巴': '芝麻开门', '恶毒皇后': '魔镜魔镜告诉我', '阿拉丁': '神灯飞毯'} #调用登录函数 login(accounts, 3)
总结:
函数:一段组织好的、可重复使用的、可以做某一件事的代码。有返回值的函数,也有实现功能的函数。
参数:定义函数时在括号中声明,调用函数时在括号中传入数据或者变量。
变量作用域:变量在程序中起作用的范围。
局部变量:在函数中定义的,只在函数中起作用的变量。
全局变量:一旦定义,在整个程序中都可以起作用的变量。