python函数
1.什么是函数?函数有什么作用?
什么是函数?
具有独立功能的代码块 组织为一个小模块,在需要的时候 调用
函数有什么作用?
提高编写的效率、代码的重用
让程序更小、模块化
2.函数有哪几种参数类型,分别有什么特点?
位置参数
形参与实参一一对应
关键字参数
为参数指定名称
默认参数
为参数指定默认值
将常见的值设置为参数的缺省值,从而简化函数的调用
可变参数
一个函数能够处理的参数个数 是不确定的
参数名前增加 一个 * 可以接收 元组
参数名前增加 两个 * 可以接收 字典
3.在函数调用时,位置参数和关键字参数的顺序
位置参数在前,关键字参数在后
4.函数的可变参数是什么?有哪几种?为什么要使用可变参数?
一个函数能够处理的参数个数是不确定的
一个函数能够处理的参数个数是不确定的
参数名前增加 一个 * 可以接收 元组
参数名前增加 两个 * 可以接收 字典
5.将两个变量的值进行交换(a = 100, b = 200)
a.交换之后,a = 200, b = 100
b.使用你能想到的所有方法来实现
a.交换之后,a = 200, b = 100
b.使用你能想到的所有方法来实现
a ,b = 100,200 # 方法一: a, b = b, a # 方法二: temp = a a = b b = temp # 方法三: a = a + b # a = 100 + 200 b = a - b # b = 100 + 200 - 200 a = a - b # a = 100 + 200 - 100 # 方法四: a = a * b # a = 100 * 200 b = a // b # b = 100 * 200 // 200 a = a // b # a = 100 * 200 // 100 # 方法五: a = a ^ b b = a ^ b a = a ^ b # 方法六: a ^= b b ^= a a ^= b print(a,b)
6.编写如下程序
输入键盘数字键(0~9),返回数字键上方字符
a.定义如下字典 num_str_dic = {'1': '!', '2': '@', '3': '#', '4': '$','5': '%', '6': '^', '7': '&', '8': '*', '9': '(', '0': ')'}
b.例如:键盘输入5,程序输出%
c.键盘输入0~9之间的数字,程序正常输出字符之后,退出程序
d.如果输入的内容不在0~9之间,则继续提示输入
输入键盘数字键(0~9),返回数字键上方字符
a.定义如下字典 num_str_dic = {'1': '!', '2': '@', '3': '#', '4': '$','5': '%', '6': '^', '7': '&', '8': '*', '9': '(', '0': ')'}
b.例如:键盘输入5,程序输出%
c.键盘输入0~9之间的数字,程序正常输出字符之后,退出程序
d.如果输入的内容不在0~9之间,则继续提示输入
num_dict = {'1': '!', '2': '@', '3': '#', '4': '$', '5': '%', '6': '^', '7': '&', '8': '*', '9': '(', '0': ')'}
# 方法一: while True: user_input = input("请输入要转换的数字键(0~9): ") if user_input in num_dict: values = num_dict[user_input] print("{} 上方的符号为 {}".format(user_input, values)) break else: print("你输入的{},不在0~9范围内!".format(user_input)) # 方法二: user_input = input("请输入要转换的数字键(0~9): ") while not num_dict.get(user_input): print("你输入的{},不在0~9范围内!".format(user_input)) user_input = input("请输入要转换的数字键(0~9): ") print("{} 上方的符号为 {}".format(user_input, num_dict[user_input]))
7.编写如下程序
从键盘输入一个用户名和密码,判断是否正确,如果正确则打印登录系统成功,否则显示 用户名或密码错误。
a.定义一个函数,接收用户输入的用户名和密码作为参数
b.正确的账号,用户名为 xcc,密码为 88888888
从键盘输入一个用户名和密码,判断是否正确,如果正确则打印登录系统成功,否则显示 用户名或密码错误。
a.定义一个函数,接收用户输入的用户名和密码作为参数
b.正确的账号,用户名为 xcc,密码为 88888888
def login(name, pwd): """ 用户登录 """ if name == "xcc" and pwd == "88888888": print("恭喜你,登录成功!") else: print("用户名或密码不正确!") username = input("请输入你的用户名:") password = input("请输入你的密码:") login(username, password)
8.编写如下程序
将用户输入的所有数字相乘之后对20取余数
a.用户输入的数字个数不确定
b.用户输入的每个数字之间以逗号分隔,例如:10,1,2,13,20
b.请使用函数来实现
将用户输入的所有数字相乘之后对20取余数
a.用户输入的数字个数不确定
b.用户输入的每个数字之间以逗号分隔,例如:10,1,2,13,20
b.请使用函数来实现
def num_count(*args): """ 将用户输入的所有数字相乘之后对20取余数 :param args: :return: """ num = 1 for value in args: num *= value print("计算结果为:{}".format(num % 20)) # 方法一: num = input("请输入需要计算的数字(以逗号分隔): ") list_num = num.split(",") # 将用户输入的所有数字使用逗号进行分割 new_list_num = [] for item in list_num: new_list_num.append(int(item)) num_count(*new_list_num) # 调用函数,将列表拆包 # 方法二: num = input("请输入需要计算的数字(以逗号分隔): ") list_num = num.split(",") # 将用户输入的所有数字使用逗号进行分割 new_list_num = [] for item in list_num: item = item.strip() if item.replace(".", "", 1).isdigit(): new_list_num.append(float(item)) else: print("输入的{}参数有误,忽略此参数的计算!".format(item)) num_count(*new_list_num) # 调用函数,将列表拆包
9.编写如下程序
求圆的面积
a.传入一个圆的半径,将其面积返回
b.函数中的Π,可以导入import math,通过math.pi来获取(也可以直接使用3.14)
求圆的面积
a.传入一个圆的半径,将其面积返回
b.函数中的Π,可以导入import math,通过math.pi来获取(也可以直接使用3.14)
import math def circle_area(r): """ 计算圆的面积 :param r: 半径 :return: """ area = math.pi * (r ** 2) # 计算圆的面积 area = round(area, 3) # 四舍五入,保留三位小数 print("半径为{}的圆,面积为{}".format(r, area)) circle_radius_str = input("请输入圆的半径:") circle_radius_flt = float(circle_radius_str) # 将字符串转化为浮点类型 circle_area(circle_radius_flt)
10.完成剪刀石头布游戏
提示:
a.提示用户输入要出的拳 —— 石头(1)/剪刀(2)/布(3)
b.电脑随机出拳
c.比较胜负,显示用户胜、负还是平局
d.使用函数来封装
提示:
a.提示用户输入要出的拳 —— 石头(1)/剪刀(2)/布(3)
b.电脑随机出拳
c.比较胜负,显示用户胜、负还是平局
d.使用函数来封装
# 方法一: # 定义随机出拳 import random def game(user_player, computer_player): # 用户胜的情况: # 用户出石头(1),电脑出剪刀(2) # 用户出剪刀(2),电脑出布(3) # 用户出布(3),电脑出石头(1) if (user_player == 1 and computer_player == 2) or (user_player == 2 and computer_player == 3) or (user_player == 3 and computer_player == 1): print("欧耶!电脑弱爆了!!!") elif computer_player == user_player: # 用户平局的情况: # 用户出石头(1),电脑出石头(1) # 用户出剪刀(2),电脑出剪刀(2) # 用户出布(3),电脑出布(3) print("心有灵犀,要不咋再来一盘!") else: print("不行,我要和你决战到天亮!") computer = random.randint(1, 3) user = int(input("请输入你要出的拳:\n石头(1)/剪刀(2)/布(3) ")) game(user, computer) # 方法二: # 定义随机出拳 import random def game(user_player, computer_player): # 用户胜的情况: # 用户出石头(1),电脑出剪刀(2) # 用户出剪刀(2),电脑出布(3) # 用户出布(3),电脑出石头(1) user_win_tup = ((1, 2), (2, 3), (3, 1)) if (user_player, computer_player) in user_win_tup: print("欧耶!电脑弱爆了!!!") elif computer_player == user_player: print("心有灵犀,要不咋再来一盘!") else: print("不行,我要和你决战到天亮!") computer = random.randint(1, 3) user = int(input("请输入你要出的拳:\n石头(1)/剪刀(2)/布(3) ")) game(user, computer)