6-1 接收n个数字,求这些参数之和 (3 分)
接收n个数字,求这些参数数字的和。
def sum_func(*args): s=sum(args) return s
6-2 本题是一个demo函数,通过本程序体会默认值参数的特点。 (3 分)
本题是一个demo函数,通过本程序体会默认值参数的特点。
def demo(a,b,c=5): print(a,b,c) return
6-3 本题是一个demo函数,通过本程序体会关键参数的特点。
本题是一个demo函数,通过本程序体会关键参数的特点
def demo(a,b,c): print("{} {} {}".format(a,b,c))
6-4 本题是一个demo函数,通过本程序体会位置参数的特点。 (3 分)
def demo(a,b,c): print("{} {} {}".format(a,b,c)) return
6-5 计算工资 (3 分)
编写函数pay(),带两个输入参数:小时工资和上周员工工作了的小时数。函数计算并返回员工的工资。加班工资的计算方法如下:大于40小时但小于或等于60小时按平时小时薪酬的1.5倍给薪;大于60小时则按平时小时薪酬的2倍给薪。
def pay(salaryHour, hours): if 40<hours<=60: p=salaryHour*(1.5*(hours-40)+40) if hours>60: p=salaryHour*(2*(hours-60)+40+1.5*20) if hours<40: p=salaryHour*hours return p
7-1 计算M和N的多个结果 (5 分)
用户输入两个数M和N(用两个input语句输入),其中N是整数,计算M和N的5种数学运算结果,并依次输出,结果间用空格分隔。
5种数学运算分别是:
M与N的和、M与N的乘积、M的N次幂、M除N的余数、M和N中较大的值
x=eval(input()) y=eval(input()) a=x+y b=x*y c=x**y d=x%y e=max(x,y) print(a,b,c,d,e)
7-2 给顾客找零钱的方案 (5 分)
这是一个编程题。题目:本题目要求掌握数值运算中的整数除法和求余数运算,并掌握输入输出的方法。 商店需要找钱给顾客,现在有足够的张数,面值分别是50元5元和1元。输入一个整数金额值给出找钱方案,假设人民币足够多,且优先使用面额大的钱币。
s=eval(input()) m50=s//50 m5=s//50%5 m1=s%50%5 print("50元面额需要的张数:{}",format(m50)) print("5元面额需要的张数:{}",format(m5)) print("1元面额需要的张数:{}",format(m1))
7-3 整数的二进制相加 (5 分)
输入两个整数,大小在[0,63]
之间。求它们的二进制和,二进制用8位表示。
x,y=eval(input()),eval(input()) print("{:0>8b}".format(x)) print("{:0>8b}".format(y)) print("{:->8}".format("-")) print("{:0>8b}".format(x+y))
7-4 计算长方形的周长和面积 (5 分)
输入长方形的长和宽,要求计算长方形的周长和面积。
s=input().split() a,b=eval(s[0]),eval(s[1]) print("C = {}".format(2*(a+b))) print("S = {}".format(a*b))
7-5 人民币与美元汇率兑换程序 (5 分)
按照温度转换的设计思路,设计人民币与美元汇率兑换程序,按照1美元=7人民币的汇率 编写一个双向兑换程序
s=input() if s[0]==\'$\': c=eval(s[1:]) print("¥{:.2f}".format(7*c)) elif s[0]==\'¥\': f=eval(s[1:]) print("${:.2f}".format(f/7)) else: print("输入格式错误")
7-6 虫子吃苹果后,还剩下几个完整苹果 (5 分)
你买了一箱n个苹果,很不幸的是买来的时候,箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?
s=input().split(",") n,x,y=eval(s[0]),eval(s[1]),eval(s[2]) if y%x==0: print(n-y//x) else: print(n-y//x-1)
7-7 输出字符-单分支 (5 分)
输入一个字符,如果是小写字母,转换为其大写形式,其余字符不变。
s=input() if s.islower(): print(s.capitalize()) if s.isupper(): print(s) if s.isdigit(): print(s)
7-8 数据比较 (5 分)
实现一个程序,用户输入四个数值(整数或浮点数)。先计算前三个数的平均值,然后把平均值与第四个数进行比较。如果相等,则程序在屏幕上输出“Equal”,如果平均值大于第四个数则输出“Larger”,否则输出“Smaller”。
a=eval(input()) b=eval(input()) c=eval(input()) d=eval(input()) x=(a+b+c)/3 if x==d: print("Equal") elif x>d: print("Larger") else: print("Smaller")
7-9 统计输入字符串中的单词个数及单词的平均长度(高教社,《Python编程基础及应用》习题7-7) (5 分)
编写一个程序,接受用户输入的一行英文句子(假设该句子仅由英文单词及空格构成,不包括逗号等符号),统计并输出该行句子包含的单词个数及单词的平均长度
s=input().split() t=len(s) m=0 for i in range(t): m=m+len(s[i]) print("{},{:.2f}".format(t,m/t))
7-10 对于给定的正整数N,求它的位数及其各位数字之和。 (5 分)
给定的正整数N,求它的位数及其各位数字之和。
s=input() a=len(s) b=0 for i in range(a): b=b+eval(s[i]) print(a,b)
7-11 jmu-python-统计成绩 (5 分)
输入一批学生成绩,计算平均成绩,并统计不及格学生人数。
sum=0 n=0 m=0 q=0 while n>=0: s=eval(input()) sum=sum+s n=s m=m+1 if s<60 and s>0: q=q+1 if m>1: av=(sum-n)/(m-1) print("平均分={:.2f},不及格人数={}".format(av,q)) else: print("没有学生")
7-12 折纸问题 (5 分)
一张纸厚0.2mm, 问至少对折多少次后,纸的厚度超过珠穆朗玛峰(8848m)
s=0.2/1000 i=0 while s<=8848: s=s*2 i=i+1 print("折叠次数={}".format(i)) print("折叠后厚度={:.2f}".format(s))
7-13 jmu-python-素数 (5 分)
输入一个数,判断其是否素数。素数是大于1的自然数中,除了1和它本身以外不再有其他因数。
s=eval(input()) if s>1: for i in range(2,s): if s%i==0: print("{} is not prime".format(s)) break else: print("{} is prime".format(s)) else: print("{} is not prime".format(s))
7-14 求1-n的奇数和 (6 分)
本题目要求读入一个整数n,计算[1,n]之间奇数和。例如,输入9,计算1+3+5+7+9的和
s=0 n=int(input()) if n%2==0: n=n-1 while n>0: s=s+n n=n-2 else: while n>0: s=s+n n=n-2 print(s)
7-15 输出不重复的字符 (5 分)
输入一个字符串,把最左边的10个不重复的字符(大小写算不同字符)挑选出来。 如不重复的字符不到10个,则按实际数目输出。
s=input() t=[] q="" for i in range(len(s)): t.append(s[i]) m=list(set(s)) m.sort(key=t.index) for i in range(len(m)): q=q+m[i] print(q[:10])
7-16 淘淘不喜欢3、6、9 (5 分)
淘淘不喜欢数字3、6、9,在数数时,从1开始数,带有这三个数字的都会跳过。如:1, 2, 4, 5, 7, 8, 10, 11, 12, 14, 15, 17, 18, 20, 21, 22, 24, 25, 27, 28, 40,…… 输入一个n,求淘淘数到n时,她所数的所有数之和是多少?若n包含3、6、9,则显示,淘淘不会数到这个数。
s=input() a=0 if set(s)&{\'3\',\'6\',\'9\'}!=set(): print("淘淘不会数{}".format(s)) else: for i in range(eval(s)+1): if set(str(i))&{\'3\',\'6\',\'9\'}==set(): a=a+i print(a)
7-17 列表最值 (5 分)
本题目要求读入一个由任意整数组成的列表,输出所有元素中的最大值、最小值和平均值,要求平均值保留2位小数。
n=eval(input()) sum=0 for i in range(len(n)): sum=sum+n[i] a=sum/len(n) b=max(n) c=min(n) print("max = {}, min = {}, avg = {:.2f}".format(b,c,a))
7-18 调整菜单 (5 分)
本题目要求在1行内以逗号间隔输入五菜一汤,菜单中有一个菜为“水煮肉片”,利用append和remove方法增加一个“东坡肉”,去掉一个“水煮肉片”,并输出修改后的菜单。
n=input().split(",") n.remove("水煮肉片") n.append("东坡肉") print(n)
7-19 求出歌手的得分 (5 分)
输入一个正整数n (n>4),再输入n个实数,求出歌手的得分(保留2位小数)。设一歌唱评奖晚会上有n(n>4)个评委为歌手打分.评分规则:每个评委依次打分,再去掉2个最高分和2个最低分,计算余下的分数平均值为歌手的得分.
n=int(input()) lo=[int(n) for n in input().split()] lo.sort() for i in range(0,4): num1=lo.pop(-1) lo.reverse() sum=0 for j in range(len(lo)): sum+=lo[j] li=sum/len(lo) print("aver={:.2f}".format(li))
7-20 汉字表示的大写数字金额 (5 分)
输入一个整数金额,输出汉字表示的大写金额。假设输入的金额数为正整数,且最大为12位数字。
from decimal import Decimal def num2money_format(change_number): """ .转换数字为大写货币格式( format_word.__len__() - 3 + 2位小数 ) change_number 支持 float, int, long, string """ format_word = ["圆", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万", "拾", "佰", "仟"] format_word_decimal = [\'分\', \'角\'] format_num = {\'0\': "零", \'1\': "壹", \'2\': "贰", \'3\': "叁", \'4\': "肆", \'5\': "伍", \'6\': "陆", \'7\': "柒", \'8\': "捌", \'9\': "玖"} res = [] # 存放转换结果 if \'.\' not in change_number: # 输入的数字没有\'.\',为整元,没有角和分 k = len(change_number) - 1 for i in change_number: res.append(format_num[i]) res.append(format_word[k]) k = k - 1 elif \'.\' in change_number: float_2_change_num = Decimal(float(change_number)).quantize(Decimal("0.00")) # 如果输入的字符串有“.”,则将其转换为浮点数后,四舍五入取两位小数 # print(float_2_change_num) # print(type(float_2_change_num)) depart = str(float_2_change_num).split(\'.\') # 将四舍五入得到的浮点数整数部分和小数部分拆开,实现操作为:先将浮点数转为字符串类型,再以“.”为分隔符分开 # print(depart) int_part = depart[0] # 整数部分 # print(int_part) decimal_part = depart[1] # 小数部分 # print(decimal_part) k = len(int_part) - 1 for i in int_part: # 整数部分转换 res.append(format_num[i]) res.append(format_word[k]) k = k - 1 m = len(decimal_part) - 1 for i in decimal_part: # 小数部分转换 res.append(format_num[i]) res.append(format_word_decimal[m]) m = m - 1 return \'\'.join(res) # 返回结果 your_money = input() result = num2money_format(your_money) print(result)
7-21 分班统计最喜欢的节目 (5 分)
学校举办的了迎新晚会,1班,2班两个新生班各自统计好班里同学最喜欢的节目。节目编号由一个大写字母代表。统计结果分别已经存放到两个字典中。字典元素的键是节目编号,元素的值是相应节目获得的票数,没有人喜欢的节目不用记录。如:字典{\'Q\':10,\'A\':22,\'X\':28} 表示,喜欢Q节目的有10位同学,喜欢A节目的有22位同学,喜欢X节目的有28位同学。输入两个班级的统计结果。将合并后的统计结果按节目编号的字母顺序打印出来。(注意,如果1班有10个同学喜欢Q节目,2班有15个同学喜欢Q节目,则合并后,有25个同学喜欢Q节目)
a=eval(input()) b=eval(input()) s=[] for i in a : for j in b : if i==j : a[i]+=b[j] if i == j: s.append(j) for k in range(0,len(s)) : del b[s[k]] a.update(b) c=sorted(a.items(), key=lambda d:d[0]) lengh=len(dict(c)) x=list(dict(c).keys()) y=list(dict(c).values()) for i in range(lengh): print("{}:{}".format(x[i],y[i]))
7-24 字典的应用-找出出现次数最多的字符串(高教社,《Python编程基础及应用》习题7-6) (5 分)
编写一个程序,从键盘读取未指定个数的字符串,一行一个,以字符串"q"为输入结束标志("q"不列入统计范围)。使用字典找出其中出现次数最多的字符串,打印该字符串及其出现次数。
注意:本题的测试用例中将保证只有一个字符串出现次数最多
# 从键盘读取未指定个数的字符串,一行一个,以字符串"q"为输入结束标志 # 使用字典找出其中出现次数最多的字符串,打印该字符串及其出现次数。 a=input() b=[] b.append(a) while(a !="q"): a=input() b.append(a) b.pop() #print(b) c={} for i in b: if i in c: c[i]=c[i]+1 else: c[i]=1 #print(c) d=list(c.items()) d.sort(key=lambda x:x[1],reverse=True) m,n=d[0] print("{} {}".format(m,n)) # 输出字典c的各个项 # for n,m in c.items(): # print(n,m)
7-25 输入三角形三边长,求三角形面积(高教社,《Python编程基础及应用》习题3-8) (5 分)
编程序实现功能:输入三角形的三条边边长,求三角形面积,其中面积计算使用用户自定义函数实现。 输出的面积保留两位小数。
def square(a,b,c): p=(a+b+c)/2 area=sqrt(p*(p-a)*(p-b)*(p-c)) return area from math import * x,y,z=eval(input()),eval(input()),eval(input()) if x+y>z and x+z>y and z+y>x: print("{:.2f}".format(square(x,y,z))) else: print("数据错误")
7-26 最短跑道长度(高教社,《Python编程基础及应用》习题3-12 (5 分)
假设某飞机的加速度是a,起飞的速度是v,下述公式可以计算出该飞机起飞所需的最短跑道长度: L = v2/(2a)。编写一个程序,提示用户输入起飞速度v(m/s)和加速度a(m/s2),计算飞机起飞的最短跑道长度,输出时保留2位小数。计算过程宜封装成一个函数,该函数接受参数v和a,返回计算所得的L。
def paodao(v,a): l=(v*v)/(2*a) return l v,a=eval(input()),eval(input()) print("最短跑道长度为:{:.2f}".format(paodao(v,a)))
7-27 真素数 (5 分)
(1)定义判断x是否为素数的函数prime(x) (2)输入两个大于1的整数A和B,且A<B,输出[A,B]范围内所有真素数的列表。 真素数的定义为:自身为素数,且自身各位数之和仍为素数。例如,11为素数,1+1=2也为素数,所以11为真素数。
def prime(x): for i in range(2,x): if x%i==0: return False break else: return True a,b=eval(input()),eval(input()) list=[] for q in range(a,b+1): sum=0 c=str(q) for j in range(len(c)): sum=sum+eval(c[j]) if prime(q) and prime(sum): list.append(q) print(list)