3 Python程序结构-4

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
根据评定条件,给出以下三种不同的实现方法(主要代码片段) ,供读者分析对错。
方法一:
if mark >= 90 : grade="优"
elif mark >= 80 : grade="良"
elif mark >= 70 : grade="中"
elif mark >= 60 : grade="及格"
例 某公司员工的工资计算方法如下:
(1) 工作时数超过120小时者,超过部分加发15%
(2) 工作时数低于60小时者,扣发700元
(3) 其余按84元每小时计发
输入员工的工号和该员工的工作时数,计算应发工资。
分析:为了计算应发工资,首先分两种情况,即工时数小于等于 120小时和大于120小时。工时数超过120小时时,实发工资有规 定的计算方法。而工时数小于等于120小时时,又分为大于60和 小于等于60两种情况,分别有不同的计算方法,所以程序分为3 个分支,即工时数>120、60<工时数<=120和工时数<=60,可 以用多分支if结构实现,也可以用if的嵌套实现
print("{0}是水仙花数".format(x)) else:
print("{0}不是水仙花数".format(x))
例 输入一个时间(小时:分钟:秒),输出该时间经过5分30 秒后的时间。 程序如下: hour=int(input("请输入小时:")) minute=int(input("请输入分钟:")) second=int(input("请输入秒:")) second+= 30 if second>=60:
else: grade="不及格"
方法二:
if mark >= 90 : grade="优"
elif mark >= 80 And mark < 90 : grade="良"
elif mark >= 70 And mark < 80 : grade="中"
elif mark >= 60 And mark < 70 : grade="及格"
选择结构程序举例
例 输入一个整数,判断它是否为水仙花数。所谓水仙花数, 是指这样的一些3位正整数:各位数字的立方和等于该数本身 ,例如153=13+53+33,则153是水仙花数。 分析:关键的一步是先分别求3位整数的个位、十位、百位数 字,再根据条件判断该数是否为水仙花数。
程序如下: x=eval (input("输入测试的数字:")) a=x%10 b=(x//10)%10 c=x//100 if x==a*a*a+b*b*b+c*c*c :
>>> x,y=40,30
>>> z=x if x>y else y
>>> z
40
例 生成3个2位随机整数,输出其中最大的数。 这里用条件运算表达式来实现,程序如下: import random x=random. randint (10, 99) y=random. randint(10, 99) z=random. randint(10,99) max=x if x>y else y max=max if max>z else z print("x={0}, y={1},z={2}".format(x,y,z)) print("max=", max)
例 输入年月,求该月的天数。例如,输入2012,3,则显示 31天。
分析:用year、month分别表示年和月,day表示每月的天数 。考虑到以下两点:
(1) 每年的1、3、5、7、8、10、12月,每月有31天:4、6、 9、11月,每月有30天,闰年2月有29天,平年2月有28天。
(2) 年份能被4整除,但不能被100整除,或者能被400整除的 年均是闰年。
if g>=60:
if g>=70:
if g>=85: print("优秀")
else: print("良好")
else: print("及格")
else: print("不及格")
条件运算
Python的条件运算有三个运算量,其一般格式为: 表达式1 if表达式 else表达式2 条 件 运 算 的 运 算 规 则 是 , 先 求 if 后 面 表 达 式 的 值 , 如 果 其 值 为 True,则求表达式1,并以表达式1的值为条件运算的结果。如果 if后面表达式的值为False,则求表达式2,并以表达式2的值为条 件运算的结果。例如:
if嵌套的程百度文库如下: gh,gs=eval(input("输入职工号和工时数:")) if gs>120:
gz=gs*84+(gs-120)*84*0.15 else:
if gs>60: gz=gs*84
else: gz=gs*84-700
print("{0}号职工应发工资{1}".format(gh,gz))
else: grade="不及格"
方法三:
if mark >= 60 : grade="及格"
elif mark >= 70 : grade="中"
elif mark >= 80 : grade="良"
elif mark >= 90 : grade="优"
else: grade="不及格"
选择结构的嵌套
程序如下: year=int(input("year=")) month=int(input("month=")) if month in(1,3,5,7,8,10,12):
day=31 elif month in(4,6,9,11):
day=30 else:
logi=(year %4==0 and year %100!=0) or year%400==0 day =29 if logi else 28 print(year, month, day)
语法一:
if 表达式1: if 表达式2: 语句块1 else: 语句块2
语法二:
if 表达式1: if 表达式2: 语句块1
else: 语句块2
例 输入学生的成绩,根据成绩进行分类。85分以上优秀,70-84 良好,60-69及格,60以下不及格。 程序如下: g=float(input("输入学生成绩:"))
second=second-60 minute+=1 minute+=5 if minute>=60: minute=minute-60 hour+=1 if hour==24: hour=0 print(('{0: d}:{1: d}:{2: d}'.format (hour, minute, second)))
多分支选择结构
多分支if语句的一般格式为: if 表达式1:
语句块1 elif 表达式2:
语句块2 elif 表达式3:
语句块3 …… elif 表达式n:
语句块n
[else : 语句块n+1]
例 已知某课程的百分制分数mark,将其转换为等级制(优、 良、中、及格和不及格)的评定等级grade。评定条件为:成 绩在90以上为优秀,80以上且小于90的为良好,70以上且小 于80的为中等,60以上且小于70的为及格,60以下为不及格 。
相关文档
最新文档