zoukankan      html  css  js  c++  java
  • 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("请输入你要出的拳:
    石头(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("请输入你要出的拳:
    石头(1)/剪刀(2)/布(3) "))
    game(user, computer)
     
     
  • 相关阅读:
    R语言:随机抽样(sample函数)
    SNP (Single Nucleotide Polymorphism), SNV ( single nucleotide variants ) , Indel (insertion-deletion) 的区别
    剑指offer五十六之删除链表中重复的结点
    剑指offer五十五之链表中环的入口结点
    剑指offer五十四之字符流中第一个不重复的字符
    剑指offer五十三之表示数值的字符串
    剑指offer五十二之正则表达式匹配
    剑指offer五十一之构建乘积数组
    求游戏晋级花费的宝石的期望
    剑指offer五十一之构建乘积数组
  • 原文地址:https://www.cnblogs.com/xcc-/p/11165499.html
Copyright © 2011-2022 走看看