Python 函数案例分析

任务 1

编写一个程序,该程序将 2 个数传給函数 average(),average()函数返回平均值,程序输出平 均值。函数 average()需要自己编写。

def average(a,b):
    c=(a+b)/2
    return c
a=eval(input("请输入第一个数:"))
b=eval(input("请输入第二个数:"))
d=average(a,b)
print(d)

任务 2

编写一个程序,该程序允许用户输入任意个数,程序将这些数传給函数 average(),average() 函数返回平均值,程序输出平均值。函数 average()需要自己重新编写 

def average(*args):
    """
    计算一个数列的平均值
    :param args: 任意个数的数字
    :return: 平均值
    """
    total = sum(args)
    n = len(args)
    if n == 0:
        return None
    else:
        return total / n

# 主程序
numbers = []
while True:
    number = input("请输入一个数字:(输入q结束输入)")
    if number.lower() == 'q':
        break
    else:
        try:
            number = float(number)
            numbers.append(number)
        except ValueError as e:
            print("输入错误,请重新输入")

avg = average(*numbers)
if avg is None:
    print("没有输入数字")
else:
    print("这些数的平均值为:{:.2f}".format(avg))

任务 3

定义一个函数,求两个正整数的最大公约数,并验证函数的正确性。

提示: 最大公因数(英语:highest common factor,hcf)也称最大公约数(英语:greatest common divisor,gcd)是数学词汇,指两个或多个整数共有约数中最大的一个。例如 8 和 12 的最大 公因数为 4。

求两个整数最大公约数主要的方法:

1.穷举法:分别列出两整数的所有约数,并找出最大的公约数。

2.素因数分解:分别列出两数的素因数分解式,并计算共同项的乘积。

3.短除法:两数除以其共同素因数,直到两数互素时,所有除数的乘积即为最大公约数。

4.辗转相除法:两数相除,取余数重复进行相除,直到余数为 0 时,前一个除数即为最大公 约数。

以下是辗转相除法的基本步骤:

(1)比较两数,并使 m>n

(2)将 m 作被除数,n 做除数,相除后余数为 r

(3)循环判断 r,若 r==0,则 n 为公约数,结束循环。若 r !=0 ,执行 m=n,n=r;将 m 作被除数,n 做除数,相除后余数为 r。

def gongyinshu(m,n):
    c=min(m,n)
    d=max(m,n)
    while True:
        r=d%c
        if r==0:
            e=c
            break
        else:
            d=c
            c=r
    return e
m=int(input("请输入第一个正整数:"))
n=int(input("请输入第二个正整数:"))
d=gongyinshu(m,n)
print("{}和{}的最大公因数为{}.".format(m,n,d))

任务 4

编写一个程序,允许用户输入数字 n,程序通过调用函数返回前 n 个斐波拉契数列, 最后程序对返回 n 个斐波拉契数列进行求和。函数需采用递归方式编写

提示:斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波 那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样 一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递 推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)在现代物理、准晶 体结构、化学等领域,斐波纳契数列都有直接的应用

def fibonacci(n):
    if n == 1 or n == 2:
        return 1
    else:
        return fibonacci(n - 1) + fibonacci(n - 2)

# 主程序
n = eval(input("请输入数字 n (n>0):"))
fibonacci_list = [fibonacci(i) for i in range(1, n+1)]
fibonacci_sum = sum(fibonacci_list)
print("前", n, "个斐波拉契数列:", fibonacci_list)
print("这", n, "个斐波拉契数列之和为:", fibonacci_sum)

任务 5

编写函数,允许用户输入任意字符串,调用函数 counter(). 函数统计字符串中有几 个字母,几个数字,几个空格,几个其他字符,并返回结果。程序显示示例如下 :

def counter(str):
    c1=0
    c2=0
    c3=0
    c4=0
    for i in str:
        if i>='0' and i<='9':
            c1+=1
        elif i>='A' and i<='Z' or i>='a' and i<='z':
            c2+=1
        elif i==' ':
            c3+=1
        else:
            c4+=1
    print("字符串中包含数字的个数是",c1)
    print("字符串中包含字母的个数是",c2)
    print("字符串中包含空格的个数是",c3)
    print("字符串中包含其他字符的个数是",c4)
    
str=input("请输入字符串:")
counter(str)

任务 6(综合应用题)

请编写一个函数,该函数根据用户提供的生日判断他(她)的星座。 两千多年前,希腊天文学家西巴克斯为了标识太阳在黄道上运行的位置,将黄道分为十 二个区段,依次是白羊、金牛、双子、巨蟹、狮子、处女、天秤、天蝎、射手、魔蝎、水瓶、 双鱼等十二个星群。在地球运转到每个星群所占时段出生的婴儿,也就对应了相应的星座, 按时间对应关系如下表:

规定 要求用户输入生日格式如下,以“:”分割,注意不能使用中文符号

indate = input("请输入您的生日(格式:2018:10:12):") 

#暴力if语句实现易懂
def panduanxingzuo(indate):
    a=indate[5:7]
    b=indate[8:10]
    c=int(a)
    d=int(b)
    t=30#设置月份的特征值为30,即统一规定一月等于三十天,其实规定等于多少天都行,不影响结果
    e=t*c+d#设置判断参数,这样就可以区分了
    if e>=0*30+22 and e<=1*30+19:#规定12月为0月,要不然不能区分12月份的星座了
        print("亲,您的星座是摩羯座哦")
    elif e<=2*30+18:
        print("亲,您的星座是水瓶座哦")
    elif e<=3*30+20:
        print("亲,您的星座是双鱼座哦")
    elif e<=4*30+19:
        print("亲,您的星座是白羊座哦")
    elif e<=5*30+20:
        print("亲,您的星座是双鱼座哦")
    elif e<=6*30+21:
        print("亲,您的星座是双子座哦")
    elif e<=7*30+22:
        print("亲,您的星座是巨蟹座哦")
    elif e<=8*30+22:
        print("亲,您的星座是狮子座哦")
    elif e<=9*30+22:
        print("亲,您的星座是处女座哦")
    elif e<=10*30+23:
        print("亲,您的星座是天秤座哦")
    elif e<=11*30+22:
        print("亲,您的星座是天蝎座哦")
    else:#射手座的情况不要写条件,要写也会和第一个条件相违背,所以说直接else
        print("亲,您的星座是射手座哦")
#主程序
indate = input("请输入您的生日(格式:2018:10:12):")
panduanxingzuo(indate)

任务 7(综合应用题):

编写函数:taxRate(income),该函数根据应纳税所得额的不同,显示 输出不同的税率和税金。

提示: 个人所得税(personal income tax)是调整征税机关与自然人(居民、非居民人)之间在个 人所得税的征纳与管理过程中所发生的社会关系的法律规范的总称。

个人所得税采用速算扣 除数法计算超额累进税率的所得税时的计税公式是:

应纳税额=应纳税所得额×适用税率-速算扣除数

其中,速算扣除数是个人所得税中用来修正个税计算中不同档次税率造成的差额的数值。应 纳税所得额=工资收入金额-各项社会保险费-起征点(5000 元)。 

#纳税问题暴力易懂
def taxRate(income):
    t=income-5000
    if t<=0:
        print("您的薪资是{}元,没有超过5000元,所以您不需要纳税.".format(income))
    elif t<=3000:
        rate=0.03
        taxrate=t*rate-0
        print("您的薪资超过了5000元,需要纳税{}元,税率是{}%.".format(taxrate,rate*100))
    elif t<=12000:
        rate=0.1
        taxrate=t*rate-210
        print("您的薪资超过了5000元,需要纳税{}元,税率是{}%.".format(taxrate,rate*100))
    elif t<=25000:
        rate=0.2
        taxrate=t*rate-1410
        print("您的薪资超过了5000元,需要纳税{}元,税率是{}%.".format(taxrate,rate*100))
    elif t<=35000:
        rate=0.25
        taxrate=t*rate-2660
        print("您的薪资超过了5000元,需要纳税{}元,税率是{}%.".format(taxrate,rate*100))
    elif t<=55000:
        rate=0.3
        taxrate=t*rate-4410
        print("您的薪资超过了5000元,需要纳税{}元,税率是{}%.".format(taxrate,rate*100))
    elif t<=80000:
        rate=0.35
        taxrate=t*rate-7160
        print("您的薪资超过了5000元,需要纳税{}元,税率是{}%.".format(taxrate,rate*100))
    else:
        rate=0.45
        taxrate=t*rate-15160
        print("您的薪资超过了5000元,需要纳税{}元,税率是{}%.".format(taxrate,rate*100))
#主程序
income=eval(input("请输入您一个月的工资:"))
taxRate(income)

完结

这些案例都做完Python的函数你掌握的也就差不多了,加油初学者!! 

  • 30
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
根据引用和引用的内容,在python中可以实现人工神经网络分类算法的案例分析。根据引用的内容,案例的步骤如下: 1. 构建数据集:首先,需要准备一个数据集,该数据集包含用于训练和测试的样本数据。 2. 响应函数:接下来,需要定义一个合适的响应函数,用于计算神经网络的输出。 3. 模型训练:然后,使用训练数据集对神经网络模型进行训练,根据数据集中的特征和标签,调整神经网络的参数。 4. 测试样本分类:完成模型训练后,可以使用测试数据集对模型进行评估。通过输入测试样本数据,观察神经网络的输出结果,并与真实标签进行比较,评估模型的性能。 5. 案例:股票价格波动分析:根据引用中提到的案例,可以使用人工神经网络分类算法对股票价格的波动进行分析。根据引用和引用的内容,可以参考其中的数据处理、指标计算、模型训练和模型预测及可视化的步骤。 总结起来,python神经网络案例分析的步骤包括构建数据集、定义响应函数、模型训练、测试样本分类和特定的案例分析,如股票价格波动分析。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【python代码实现】人工神经网络分类算法及其实战案例(股票价格波动分析)](https://blog.csdn.net/weixin_47974364/article/details/124290450)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AAA阿魏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值