发布时间:2020/07/08 作者:天马行空 阅读(1973)
函数基础
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)总结:
函数:一段组织好的、可重复使用的、可以做某一件事的代码。有返回值的函数,也有实现功能的函数。
参数:定义函数时在括号中声明,调用函数时在括号中传入数据或者变量。
变量作用域:变量在程序中起作用的范围。
局部变量:在函数中定义的,只在函数中起作用的变量。
全局变量:一旦定义,在整个程序中都可以起作用的变量。 