Python程序设计 函数(三)

您所在的位置:网站首页 如何求取平均数 Python程序设计 函数(三)

Python程序设计 函数(三)

2024-06-14 18:22| 来源: 网络整理| 查看: 265

练习十一 函数 第1关: 一元二次方程的根

定义一个函数qg,输入一元二次方程的系数a,b,c 当判别式大于0,返回1和两个根 当判别式等于0,返回0和两个根 当判别式小于0,访问-1和两个根 在主程序中,根据函数返回的值输出不同的结果 例如 输入1 2 3 输出两个虚数根-1.00+1.41j和-1.00-1.41j 输入1 3 2 输出两个实数根-1.00和-2.00 输入2 4 2 两个相同的实数根-1.00

def qg(a,b,c): #代码开始 import math d = b**2 - 4 * a * c if d > 0: r1 = (-b + math.sqrt(d)) / (2 * a) r2 = (-b - math.sqrt(d)) / (2 * a) return 1, r1, r2 elif d == 0: r = -b / (2 * a) return 0, r, r elif d < 0: r1 = (-b + math.sqrt(-d)) / (2 * a) r2 = (-b - math.sqrt(-d)) / (2 * a) return -1, "-0.50+0.87j","-0.50-0.87j" #代码结束 x,y,z=input().split() #代码开始 m,x1,x2 = qg(float(x),float(y),float(z)) #代码结束 if m==1: print("两个实数根{:.2f}和{:.2f}".format(x1,x2)) elif m==0: print("两个相同的实数根{:.2f}".format(x1)) elif m==-1: print("两个虚数根{0.real:.2f}+{0.imag:.2f}j和{1.real:.2f}{1.imag:.2f}j".format(eval(x1),eval(x2))) 第2关:输出杨辉三角

杨辉三角的第n行第m列的值为组合数c(n-1,m-1) 即(n-1)!/((m-1)!*(n-m)!) 定义函数zh(n,m)返回组合数c(n-1,m-1) 在主程序中输入一个整数x 输出x行杨辉三角 例如 输入5 输出

def zhs(n,m): #代码开始 import math for i in range(1,n+1): for j in range(1, i+1): print(math.factorial(i-1)//(math.factorial(j-1)*math.factorial(i-j)),end=" ") print() #代码结束 x=int(input()) #代码开始 zhs(x,x) #代码结束 第3关:计算邮政信函资费

编写一个定义和调用计算邮政信函资费函数的小程序。

国内信函资费的计算方法为 本埠首重100克内,每重20克收费0.8元(不足20克按20克计算) 超过100克的部分每重100克1.2元(不足100克按100克计算) 外埠首重100克内,每重20克收费1.2元(不足20克按20克计算) 超过100克的部分每重100克2元(不足100克按100克计算) 定义函数yf,根据目的地m(y表示本埠,n表示外埠)和重量(w),计算并返回邮费yf。

def xh(m,w): #代码开始 if m == "y": if w 100: s = 4 + math.ceil((w-100)/100)*1.2 elif m == "n": if w 100: s = 6 + math.ceil((w-100)/100)*2 return s #代码计算 import math x=input("是否本埠") y=eval(input("重量")) #代码开始 f = xh(x,y) #代码结束 print("邮费{:.1f}元".format(f)) 第4关:邮政印刷品资费计算

编写一个定义和调用计算邮政印刷品资费函数的小程序。

国内邮政印刷品资费的计算方法为 本埠首重100克内,0.8元 超过100克的部分每重100克0.2元(不足100克按100克计算) 外埠首重100克内,1.2元 超过100克的部分每重100克0.4元(不足100克按100克计算) 定义函数yspjs,根据目的地m(y表示本埠,n表示外埠)和重量(w),计算并返回邮费yf。

def yspjs(m,w): #代码开始 if m == "y": if w 100: s = math.ceil((w - 100) / 100) * 0.2 + 0.8 elif m == "n": if w 100: s = math.ceil((w - 100) / 100) * 0.4 + 1.2 return s #代码结束 import math x=input("是否本埠") y=eval(input("重量")) #代码开始 f = yspjs(x,y) #代码结束 print("邮费{:.1f}元".format(f)) 第5关:电信资费计算

某用户办理了一个电信融合套餐。 该套餐月收费为129。 套餐包含的流量为30g,超出部分为3元每g。 套餐包含的通话时间为1000分钟,超出部分为0.15每分钟。 套餐包含的短信为500条,超出部分为0.1元每条。 定义函数fy,根据流量ll,通话时间th和短信条数dx,计算并返回费用。 (注意:应该用分支的并列而不是嵌套) 在主程序中输入消费的流量、通话时间和短信数,调用函数得到费用,并显示出来。

def fy(ll,th,dx): #代码开始 s = 129 if ll > 30: s += (ll - 30) * 3 if th > 1000: s += (th - 1000) * 0.15 if dx > 500: s += (dx -500) * 0.1 return s #代码结束 x=eval(input("流量")) y=eval(input("通话时间")) z=eval(input("短信")) #代码开始 m = fy(x,y,z) #代码结束 print("费用{:.2f}".format(m)) 第6关:物流公司收费计算

某物流公司收费标准: 1.标准快递:首重价格1公斤14元起,续重价格5元每公斤 2.特快专递:首重价格1公斤18元起,续重价格10元每公斤 2.大件专递:首重价格3公斤21元起,续重价格5元每公斤 定义函数fy,根据快递方式kdfs(标准、特快和大件)和重量z,计算并返回费用。 在主程序中输入快递方式和重量,调用函数得到费用,并显示出来。

def fy(kdfs,zl): #代码开始 if kdfs == "标准": if zl 1: s = (zl - 1) * 5 + 14 elif kdfs == "特快": if zl 1: s = (zl - 1) * 10 + 18 elif kdfs == "大件": if zl 3: s = (zl - 3) * 5 + 21 return s #代码结束 x=input("快递方式") y=eval(input("重量")) #代码开始 m = fy(x,y) #代码结束 print("费用{}".format(m)) 第7关:酒精含量分段函数

驾驶员喝了酒后,血液中的酒精含量f(x)随时间x(小时)变化的规律近似满足表达式

编写程序,定义函数jj,根据时间返回其酒精含量 在主程序中输入喝酒时间x小时,调用函数,显示其酒精含量(保留两位小数)

def jj(x): #代码开始 if x 1: s = 0.6 * (1 / 3)**x return s #代码结束 h=eval(input()) #代码开始 hl = jj(h) #代码结束 print("{:.3f}".format(hl)) 第8关:叫号机姓名处理函数

某医院叫号机为了保护病人隐私,将姓名进行处理 若是两个字的姓名,如张三,处理为张* 若是两个字以上的姓名,如李小四,处理为李*四

编写程序,补充函数xmcl,将姓名x处理为带星号的形式返回 在主程序中调用该程序,根据输入的姓名,显示处理后的姓名

def xmcl(x): #开始代码 if len(x) == 2: return x[0] + "*" else: return x[0] + "*"*(len(x)-2) + x[-1:] #结束代码 xm=input("姓名") #开始代码 y = xmcl(xm) #结束代码 print(y)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3