zoukankan      html  css  js  c++  java
  • 函数使用练习

    # !/usr/bin/env python3
    # -*- coding: utf-8 -*-
    # @Time : 2019/9/3 10:42
    # @Author : "小多肉"
    # @Email : 1021181701@qq.com
    # @File : doroo_homework20190902_func.py
    # @Software: PyCharm


    """
    TODO: 1. 将用户输入的所有数字相乘之后对20取余数.用户输入的数字个数不确定
    """


    # 定义函数,用户判断一个字符串是不是数值(包括正数、负数、小数)
    def input_isint(str):
    if str.replace('.', '', 1).isdigit(): # 判断是否是正数,包括小数
    return True
    elif str.startswith('-') and str[1:].replace('.', '', 1).isdigit(): # 判断是否是负数,包括小数
    return True
    else:
    return False


    def func_calculate(*args):
    # 判断用户数输入参数是空,则直接返回0
    if args.__len__() == 0:
    return 0
    else:
    cal = 1
    for element in args:
    cal *= element
    return cal%20


    num = [] # 存储用户数输入的数值
    # 用户输入做运算的数据,输入字母n结束输入,非n则进行运算
    while True:
    user_input = input(f"请输入第{len(num)+1}个用于做运算的数字(输入字母n结束输入):")
    if user_input.lower() == 'n':
    break
    # 调用函数判断用户输入的是不是数值
    elif input_isint(user_input):
    num.append(float(user_input))
    else:
    print("您输入的不是数字,请重新输入! ")
    # 调用计算函数计算用户输入的数据
    result = func_calculate(*num)
    print("您输入的所有数字相乘之后对20取余数后的结果为:%f" % result)


    # TODO: 2,编写函数,检查传入列表的长度,如果大于2,那么仅仅保留前两个长度的内容,并将新内容返回
    def check_len(*args):
    if args.__len__() > 2:
    args = args[:2] # 取参数前两个长度的内容
    return list(args) # 以列表的形式返回


    # 验证函数
    li = ['大佬',1,24,567,]
    print(check_len(*li)) # 入参传入列表


    # TODO: 3, 定义一个函数,传入一个字典和字符串,判断字符串是否为字典中的值,如果字符串不在字典中,则添加到字典中,并返回新的字典
    def str_is_in_dict(string, dic):
    if string in dic.values(): # 判断传入的字符串是否在字典的值中,如果在就返回Ture
    return True
    else:
    dic.update(string=string) # 字符串没在字典的值中,添加到字典中。key值写死为string
    return dic


    # 验证函数
    s = 'abc'
    d = {1:'张三', 2:'李四'}
    result = str_is_in_dict(s,d)
    print(result)


    # TODO: 4, 通过定义一个计算器函数,调用函数传递两个参数,然后提示选择【1】加 【2】减【3】乘 【4】除 操作,选择之后返回对应操作的值。
    def calculator(tup, oper): # 计算器函数,第一个参数为tuple类,包含两个操作数。第二个参数为操作符。
    a,b = tup # 元组解包
    if oper == '+':
    return a+b
    elif oper == '-':
    return a-b
    elif oper == '*':
    return a*b
    else:
    return a/b


    while True:
    first_num = input("请输入第一个操作数:")
    second_num = input("请输入第二个操作数:")
    # 调用第一题中定义的函数,判断输入的内容是否为数值
    if input_isint(first_num) and input_isint(second_num):
    # 两个操作数都是数字就转化成浮点型,写入元组
    tuple_num = (float(first_num), float(second_num))
    break
    else:
    print("您输入的操作数不是数值!请重新输入 ")
    # 定义操作符字典
    oper_dict = {'1':'+', '2':'-', '3':'*', '4':'/'}
    select = input("请选择【1】加 【2】减【3】乘 【4】除 您的操作:")
    # 如果用户输入的选择在字典键值范围内,调用计算器函数进行计算。
    if select in oper_dict.keys():
    eq = calculator(tuple_num,oper_dict.get(select))
    print(eq)
    else:
    print("请输入的选择不正确!")


    """
    5, 一个足球队在寻找年龄在15岁到22岁的女孩做拉拉队员(包括15岁和22岁)加入。
    编写一个程序,询问用户的性别和年龄,然后显示一条消息指出这个人是否可以加入球队,询问10次后,输出满足条件的总人数。
    """


    def lalateam(age, sex):
    if sex == '女' and 15 <= int(age) <= 22:
    print("恭喜您可以加入啦啦队! ")
    return True
    else:
    print("很抱歉,您不符合啦啦队的要求! ")
    return False


    count = 0 # 统计符合条件的人数
    for times in range(10):
    user_sex = input(f"请输入第{times+1}个用户的性别:")
    user_age = input(f"请输入第{times+1}个用户的年龄:")
    # 判断输入的年龄是否是整数,如果是整数调用函数判断是否符合啦啦队要求。符合条件的统计人数。
    if user_age.isdigit():
    if lalateam(user_age, user_sex):
    count += 1
    else:
    print("很抱歉,您不符合啦啦队的要求! ")
    print("符合条件的人数有%d个" % count)
  • 相关阅读:
    GFS.BigTable.MapReduce谷歌论文学习笔记
    Android图表
    JAVA内存管理
    关于Ajax工作原理
    走进AngularJs(二) ng模板中常用指令的使用方式
    走进AngularJs(一)angular基本概念的认识与实战
    使用CSS3 制作一个material-design 风格登录界面
    一分钟搞定AlloyTouch图片轮播
    PHP+JQUEY+AJAX实现分页
    全面的Seo面试题
  • 原文地址:https://www.cnblogs.com/momoon/p/11498881.html
Copyright © 2011-2022 走看看