python函数

1.什么是函数?函数有什么作用? 

什么是函数?
具有独立功能的代码块 组织为一个小模块,在需要的时候 调用
函数有什么作用?
提高编写的效率、代码的重用
让程序更小、模块化
 
2.函数有哪几种参数类型,分别有什么特点? 
 
位置参数
       形参与实参一一对应
关键字参数
       为参数指定名称
默认参数 
       为参数指定默认值
       将常见的值设置为参数的缺省值,从而简化函数的调用
可变参数
       一个函数能够处理的参数个数 是不确定的
       参数名前增加 一个 * 可以接收 元组
       参数名前增加 两个 * 可以接收 字典
 
3.在函数调用时,位置参数和关键字参数的顺序 

位置参数在前,关键字参数在后
 
4.函数的可变参数是什么?有哪几种?为什么要使用可变参数?

一个函数能够处理的参数个数是不确定的
参数名前增加 一个 * 可以接收 元组
参数名前增加 两个 * 可以接收 字典
 
5.将两个变量的值进行交换(a = 100, b = 200)
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之间,则继续提示输入
 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
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.请使用函数来实现
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)
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.使用函数来封装
# 方法一:
# 定义随机出拳
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)

 

 
 
posted @ 2019-07-10 17:50  久更  阅读(1232)  评论(0编辑  收藏  举报