《Python语言及应用》结课考试重点编程题

#输入三条边的边长,当输入正确时计算由这三条边构成的三角形的面积3-6.py
import math
a = float(input("请输入三角形的边长a:"))
b = float(input("请输入三角形的边长b:"))
c = float(input("请输入三角形的边长c:"))
if (a+b>c and a+c>b and b+c>a):
    h =(a+b+c)/2
    area = math.sqrt(h*(h-a)*(h-b)*(h-c))
    print("三角形的面积为:{:.2f}".format(area))
else:
    print("用户输入数据有误!")


#计算BMI指数 3-7.py
height = eval(input("请输入您的身高(m):"))
weight = eval(input("请输入您的体重(kg):"))
BMI = weight/height/height
print("您的BMI指数是:{:.1f}".format(BMI))
if BMI < 18.5:
    print("您的体型偏瘦,要多吃多运动哦!")
elif 18.5 <= BMI <24:
    print("您的体型正常,继续保持哦!")
elif 24 <= BMI <28:
    print("您的体型偏胖,有发福迹象!")
elif 28 <= BMI <32:
    print("不要悲伤,您是个迷人的胖纸!")
else:
    print("什么也不说了,您照照镜子就知道了......")


# 输出百分制分数,将其转换成等级制并输出P60
x =eval(input("请输入您的成绩:"))
print("您的分数是:",x)
if 0<=x<60:
    print("不及格!")
elif 60<=x<70:
    print("及格!")
elif 70<=x<80:
    print("中!")
elif 80<=x<90:
    print("良!")
elif 90<=x<=100:
    print("优!")
else:
    print("请输入有效成绩!")


# 输出一个三位数的正整数中最大的一位数字是多少 3-8.py
num = int(input("请输入一个三位正整数:"))
a = str(num)[0] #取num的百位数字
b = str(num)[1] #取num的十位数字
c = str(num)[2] #取num的个位数字
if a>b:
    if a>c:
        max_num = a
    else:
        max_num = c
else:
    if b>c:
        max_num = b
    else:
        max_num = c
print(str(num) + "中最大的数字是:" + max_num)


#求1~100中所有奇数和偶数的和 3-11.py
sum_odd = 0
sum_even = 0
for i in range(1,100+1):
    if i%2 ==1:                             # i为奇数
        sum_odd = sum_odd + i
    else:                                   # i为偶数
        sum_even = sum_even + i
print("1~100中所有的奇数和:",sum_odd)
print("1~100中所有的偶数和:",sum_even)


# 用带else子句的循环结构判断正整数n是否为素数 3-18.py
n = int(input("输入一个正整数n(n>=2):"))
for i in range(2,n):
    if n%i ==0:
        print(n,"不是素数")
        break
    else:
        print(n,"是素数"# 找出300以内的所有素数 3-20.py
count = 0
for n in range(2,300):
    for i in range(2,n):
        if n%i==0:
            break
    else:
        print("{:>5}".format(n),end="")
        count+=1
print("\n共有{}个素数".format(count))


#食堂伙食质量问卷调查 4-6.py
comments=['不满意','一般','满意','很满意']
result = "不满意,一般,很满意,一般,不满意,很满意,满意,一般,一般,"\
          "不满意,满意,满意,满意,满意,满意,一般,很满意,一般,满意,"\
          "不满意,满意,一般,不满意,满意,不满意,满意,很满意,很满意,"\
          "满意,满意,不满意,满意,不满意,满意,一般,很满意,不满意,"\
          "一般,很满意,满意,很满意,不满意,很满意,不满意,很满意,"\
          "满意,满意,很满意,一般,很满意,满意,满意,很满意,不满意,"\
          "很满意,满意,不满意,满意,不满意,满意,很满意,满意,很满意,"\
          "一般,很满意,很满意,很满意,不满意,满意,一般,一般,一般,"\
          "一般,不满意,不满意,满意,很满意,很满意,满意,满意,很满意,"\
          "很满意,一般,一般,很满意,一般,一般,满意,很满意,一般"
resultList = result.split(',')
commentCnts=[0]*4
for i in range(4):
    commentCnts [i]=resultList.count (comments[i])
most = max (commentCnts)
mostComment = comments[commentCnts.index(most)]
print("根据统计,对今天伙食感觉:")
print("'很满意'的学生{}人;".format (commentCnts[3]))
print("'满意'的学生{}人;".format(commentCnts[2]))
print("'一般'的学生{}人;".format(commentCnts[1]))
print("'不满意'的学生{}人。".format(commentCnts [0]))
print("调查结果中,出现次数最多的评语是",mostComment)


# 列表操作P93
s = [54, 36, 75, 28, 50]
s.extend([42]); print(s)
#在列表尾部插入元素42
s.insert(3, 66); print(s)
#在28前面插入元素66
print(s.pop(4))
#删除并输出元素28
s.sort(reverse=True);print(s)
#将列表按降序排序
s.clear();print(s)
#清空整个列表


#统计英文句子中各字符出现的次数 5-1.py
sentence="Life is short,we need python."
sentence=sentence.lower() #将句中字符都统一成小写
counts={}
for c in sentence:
    if c in counts:
        counts[c] = counts[c] +1
    else:
        counts[c] = 1
print(counts)


#用get方法统计英文句子中各字符出现的次数 5-1-1.py
sentence="Life is short,we need python."
sentence=sentence.lower() #将句中字符都统一成小写
counts={}
for c in sentence:
    counts[c]=counts.get(c,0)+ 1
print(counts)


#按照国家名的升序输出三个国家和对应的国土面积 5-2.py
dicAreas={'Russia':1707.5,'Canada':997.1,'China':960.1}
ls=sorted(dicAreas)
for country in ls:
    print(country,dicAreas [country])


#按照面积值从小到大输出三个国家和对应的国土面积 5-3.py
dicAreas={'Russia':1707.5,'Canada':997.1,'China':960.1}
#使用列表生成器生成(面积,国家)元组构成的列表
lsVK=[(v,k) for k,v in dicAreas.items()]
#对新列表按照面积排序
lsVK.sort()
#使用列表生成器生成(国家,面积)元组构成的列表
lsKV=[(k,v)for v,k in lsVK]
print(lsKV)


#合并"国家-面积"字典dicArea和"国家-首都"字典dicCapitals 5-4.py
dicAreas={'俄罗斯':1707.5,'加拿大':997.1,'中国':960.1,'美国':936.4,'巴西':854.7}
dicCapitals={'俄罗斯':'莫斯科','加拿大':'遲太华','中国':'北京','美国':'华盛顿','巴西':'巴西利亚'}
dicCountries={}
for key in dicAreas.keys():
    dicCountries[key]=[dicAreas[key],dicCapitals[key]]
for item in dicCountries.items():
    print(item)


#合并两个调研结果 5-8.py
dicBoys={'江苏':8,'浙江':5,'山东':5,'安徽':4,'福建':2}
dicGirls={'江苏':3,'浙江':2,'吉林':1}
dic=dicBoys.copy()
for k,v in dicGirls.items():
    dic[k]=dic.get(k,0)+v
print (dic)


#编写函数,求1+2+3+......+100的和 6-1-1.py
def calSum():
    sum=0
    for i in range(1,101):
        sum+=i
    print("sum=",sum)
calSum()


#编写函数,求任意个连续整数的和 6-1-2.py
def calSum(n1,n2):
    sum=0
    for i in range(n1,n2+1):
        sum+=i
    print("sum=",sum)
m1=int(input("初值:"))
m2=int(input("终值:"))
calSum(m1,m2)


#编写函数,求(2+3+......+19+20)+(11+12+......+99+100)的和 6-1-3.py
def calSum(n1,n2):
    sum = 0
    for i in range(n1,n2):
        sum+=i
    return sum
print("sum=",calSum(2,20)+calSum(11,100))


#找出2~100中所有的素数 6-2-1.py
def prime(n):
    for i in range(2,n):
        if n%i ==0:
            return False
    else:
        return True
for i in range (2,100+1):
    if prime(i)==True:
        print("{:^4}".format(i),end='')


#找出2~100中所有孪生素数 6-2-2.py
def prime(n):
    for i in range(2, n):
        if n%i==0:
            return False
    else:
        return True
for i in range (2,100+1):
        if prime(i)==True and prime(i+2)==True:
            print("({:^4},{:^4})".format(i,i+2))


#基于期中成绩和期末成绩,按指定的权重计算总评成绩 6-4.py
def mySuml(mid_score,end_score,rate=0.4):
    score = mid_score*rate+end_score*(1-rate)
    return score
print(mySuml(88, 93))
print(mySuml(mid_score=88,end_score=93,rate=0.5))
print(mySuml(rate=0.5,end_score=93,mid_score=88))


#利用可变参数输出名单 6-6.py
def commonMultiple(*c): #c为可变参数
    for i in c:
        print ("{:^4}".format(i),end='')
    return len(c)
count = commonMultiple("李白","杜甫")
print("共{}人".format(count))
count = commonMultiple("李白","杜甫","王维","袁枚")
print("共{}人".format(count))


#利用lambda()函数对字典元素按值或按键排序 6-12.py
dict_data={"化1704":33,"化1702":28,"化1701":34,"化1703":30}
print(sorted(dict_data))
#按键排序,输出键值
print(sorted(dict_data.items()))
#按键排序,输出键值对
print(sorted(dict_data.items(),key=lambda x:x[1]))
#按值排序,输出键值对
print(sorted(dict_data.items(),key=lambda x:x[1]%10))
#按值的个位数排序,输出键值对
  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

易志恒

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

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

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

打赏作者

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

抵扣说明:

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

余额充值