当前位置: 首页 > news >正文

Python程序设计 函数(三)

练习十一 函数

第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 mathd = b**2 - 4 * a * cif d > 0:r1 = (-b + math.sqrt(d)) / (2 * a)r2 = (-b - math.sqrt(d)) / (2 * a)return 1, r1, r2elif d == 0:r = -b / (2 * a)return 0, r, relif 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 mathfor 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 = math.ceil(w/20)*0.8elif w > 100:s = 4 + math.ceil((w-100)/100)*1.2elif m == "n":if w <= 100:s = math.ceil(w/20)*1.2elif w > 100:s = 6 + math.ceil((w-100)/100)*2return 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 = 0.8elif w > 100:s = math.ceil((w - 100) / 100) * 0.2 + 0.8elif m == "n":if w <= 100:s = 1.2elif w > 100:s = math.ceil((w - 100) / 100) * 0.4 + 1.2return 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 = 129if ll > 30:s += (ll - 30) * 3if th > 1000:s += (th - 1000) * 0.15if dx > 500:s += (dx -500) * 0.1return 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 = 14elif zl > 1:s = (zl - 1) * 5 + 14elif kdfs == "特快":if zl <= 1:s = 18elif zl > 1:s = (zl - 1) * 10 + 18elif kdfs == "大件":if zl <= 3:s = 21elif zl > 3:s = (zl - 3) * 5 + 21return 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 = 5**(x-2)elif x > 1:s = 0.6 * (1 / 3)**xreturn 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)
http://www.lryc.cn/news/343280.html

相关文章:

  • linux之ssh
  • excel如何将多列数据转换为一列?
  • 【Java 刷题记录】前缀和
  • NVIDIA: RULER新测量方法让大模型现形
  • 2024数学-微积分和线性代数/本科研究生专业考试/考研/论文/重点公式考点汇总/最难公式投票
  • 代码随想录训练营Day33(贪心算法):Leetcode1005、134、135(难得有一天能完全独立做出题目)
  • Flutter笔记:Widgets Easier组件库(12)使用消息吐丝(Notify Toasts)
  • 从《春色寄情人》学习如何面对死亡
  • 使用moveit控制机械臂
  • Mysql报错红温集锦(一)(ipynb配置、pymysql登录、密码带@、to_sql如何加速、触发器SIGNAL阻止插入数据)
  • ASP.NET Core SignalR 配置与集成测试究极指南
  • JENKINS 安装,学习运维从这里开始
  • 大语言模型从Scaling Laws到MoE
  • 四级英语翻译随堂笔记
  • Nacos支持的配置格式及其在微服务架构中的应用
  • 2024年华为OD机试真题-小明找位置-(C++)-OD统一考试(C卷D卷)
  • 机器人系统ros2内部接口介绍
  • 跟随Facebook的足迹:社交媒体背后的探索之旅
  • 面试题分享之Java并发篇
  • bpmn-js 多实例配置MultiInstanceLoopCharacteristics实现或签会签
  • 【gpedit.msc】组策略编辑器的安装,针对windows家庭版,没有此功能
  • 带EXCEL附件邮件发送相关代码
  • 【算法作业】均分卡牌,购买股票
  • python作业
  • 【Linux的文件篇章 - 管道文件】
  • C# 局部静态函数,封闭方法中的最佳选择
  • 【MySQL】MySQL 8.4.0 长期支持版(LTS)安装
  • nest中的ORM
  • TCP(Transmission Control Protocol,传输控制协议)如何保证数据的完整性?
  • Numpy库介绍