- 7-1 奖金计算,循环与多分支(高教社,《Python编程基础及应用》习题6-5) (4 分)
- 7-2 找出肇事者,循环与布尔逻辑(高教社,《Python编程基础及应用》习题6-6) (6 分)
- 7-3 统计字符串列表中每个字母出现的次数(高教社,《Python编程基础及应用》习题6-8) (4 分)
- 7-4 输出一个数的因子 (22 分)
- 7-5 统计输入字符串中的单词个数及单词的平均长度(高教社,《Python编程基础及应用》习题7-7) (3 分)
- 7-6 Calculate the length of the longest string (10 分)
- 7-7 本题要求两个给定正整数的最大公约数和最小公倍数。 (15 分)
- 7-8 对于给定的正整数N,求它的位数及其各位数字之和。 (15 分)
- 7-9 键盘输入学习的课程名称及考分等信息并计算 (15 分)
- 7-10 求所有N位的素数和 (15 分)
- 素质五连:评论、点赞、收藏、转发、打赏
企业发放的奖金根据利润提成。利润低于或等于100,000元的,奖金可提10%;利润高于100,000元,低于200,000(100,000 < p <=200,000)时,100,000元及以内部分按10%提成,高于100,000元的部分,可提成7.5%; 200,000 < p <= 400,000时,200,000元及其以内的部分仍按上述办法提成(下同),高于200,000元的部分按5%提成; 400,000 < p <=600,000元时,高于400,000元的部分按3%提成; 600,000 < p <=1,000,000时,高于600,000元的部分按1.5%提成; p >1,000,000时,超过1,000,000元的部分按1%提成。 按上述需求,编写一个程序,该程序从键盘输入当月利润p,求应发奖金数。 输入格式: 利润总额(浮点数) 输出格式: 奖金数(保留两位小数) 输入样例: 230000 结尾无空行 输出样例: 19000.00 结尾无空行
仅供参考
import math
a=float(input())
if a<=100000:
b=a*0.1
elif a>100000 and a<=200000:
b=10000+(a-100000)*0.075
elif a>200000 and a<=400000:
b=17500+(a-200000)*0.05
elif a>400000 and a<=600000:
b=27500+(a-400000)*0.03
elif a>600000 and a<=1000000:
b=33500+(a-600000)*0.015
elif a>1000000:
b=39500+(a-1000000)*0.01
print("%.2f"%b)
7-2 找出肇事者,循环与布尔逻辑(高教社,《Python编程基础及应用》习题6-6) (6 分)
在视线不太好的黑夜一司机撞伤行人之后逃逸,有3个目击者记住了该车的部分车号特征。 甲说:“车牌号的前两位相同,且末位数是奇数”;乙说:“车牌号的后两位加起来等于5”; 丙说:“车牌号是一个N位数,并且能被3整除”。请你写一个程序,该程序接受一个正整数N(>=3), 找出肇事车可能的车牌号。 输入格式: 一个>=3的正整数 输出格式: 全部可能的车牌号(一行一个,按递增序) 输入样例: 3 结尾无空行 输出样例: 441 结尾无空行
仅供参考
import math
N=int(input())
for i in range(pow(10,N-1),pow(10,N)):
f=i//pow(10,N-1)
s=i//pow(10,N-2)%10
lf=i%10
o=lf%2==1
ls=i//10%10
mod=i%3==0
if(f==s and lf+ls==5 and mod and o):
print(i)
7-3 统计字符串列表中每个字母出现的次数(高教社,《Python编程基础及应用》习题6-8) (4 分)
统计字符串列表中每个字母出现的次数。 编写程序,使用eval()函数读入一个仅包含字符串对象的列表,然后统计该列表中每个字母出现的次数。 列表中的字符串对象仅包含小写英文字母。 输入格式: 一个仅包括字符串对象的列表,且全部字符串对象中仅出现小写英文字母。 输出格式: 字母,次数 ... 字母,次数 (注意按a-z的顺序输出) 输入样例: ["aaab", "cccdz"] 结尾无空行 输出样例: 在这里给出相应的输出。例如: a,3 b,1 c,3 d,1 z,1 结尾无空行
仅供参考
l=eval(input())
zi=[]
for i in range(ord('a'),ord('z')+1):
zi.append(chr(i))
# print(zi)
lst=[]
for str in l:
ls=list(str)
lst.extend(ls)
# print(lst)
for ch in zi:
co=lst.count(ch)
if co!=0:
print(ch,co,sep=',')
7-4 输出一个数的因子 (22 分)
输入一个正整数n,输出包含n的所有正因子的列表,注意输出格式,两个数之间用逗号隔开并空一格。 输入格式: 输入一个正整数n。 输出格式: 输出包含n的所有正整数列表,两个数之间用逗号隔开并空一格 输入样例1: 在这里给出一组输入。例如: 1 结尾无空行 输出样例1: 在这里给出相应的输出。例如: [1] 结尾无空行 输入样例2: 在这里给出一组输入。例如: 100 结尾无空行 输出样例2: 在这里给出相应的输出。例如: [1, 2, 4, 5, 10, 20, 25, 50, 100] 结尾无空行
仅供参考
import math
n=int(input())
l=[]
for i in range(1,n+1):
if(n%i==0):
l.append(i)
print(l)
7-5 统计输入字符串中的单词个数及单词的平均长度(高教社,《Python编程基础及应用》习题7-7) (3 分)
编写一个程序,接受用户输入的一行英文句子(假设该句子仅由英文单词及空格构成,不包括逗号等符号),统计并输出该行句子包含的单词个数及单词的平均长度。 输入格式: 单词1 单词2 .... 单词n 输出格式: 单词个数,单词平均长度(保留两位小数) 输入样例: aaa bbb ccccccccccc 结尾无空行 输出样例: 3,5.67 结尾无空行
仅供参考
strs=input()
lst=list(strs.split())
count=len(lst)
length=0
for s in lst:
length+=len(s)
avel=length/count
print('%d,%.2f'%(count,avel),end='')
7-6 Calculate the length of the longest string (10 分)
Write a program to calculate the length of the longest string with n(1仅供参考
n=int(input()) length=-1 for i in range(n): str=input() str=str.lstrip() if len(str)>length: length=len(str) print('length=%d'%length)7-7 本题要求两个给定正整数的最大公约数和最小公倍数。 (15 分)本题要求两个给定正整数的最大公约数和最小公倍数。 输入格式: 输入在两行中分别输入正整数x和y。 输出格式: 在一行中输出最大公约数和最小公倍数的值。 输入样例1: 在这里给出一组输入。例如: 100 1520 结尾无空行 输出样例1: 在这里给出相应的输出。例如: 20 7600 结尾无空行仅供参考
def gongyue(a, b): while (b != 0): temp = a % b a = b b = temp return a def gongbei(a, b): return a * b / gongyue(a, b) m = int(input()) n = int(input()) print(gongyue(m, n),int(gongbei(m, n)),sep=' ',end='')7-8 对于给定的正整数N,求它的位数及其各位数字之和。 (15 分)给定的正整数N,求它的位数及其各位数字之和。 输入格式: 在一行中给出1个正整数N。 输出格式: 在一行中输出正整数N的位数和各位数字之和。 输入样例: 在这里给出一组输入。例如: 20201224 输出样例: 在这里给出相应的输出。例如: 8 13仅供参考
num=int(input()) sum=0 wei=0 while True: n=num%10 sum+=n wei+=1 num=num//10 if num==0: break print(wei,sum)7-9 键盘输入学习的课程名称及考分等信息并计算 (15 分)键盘输入学习的课程名称及考分等信息,屏幕输出得分最高的课程及成绩,得分最低的课程及成绩,以及平均分(保留2位小数)。 输入格式: 键盘输入学习的课程名称及考分等信息,信息间采用空格分隔,每个课程一行,空行回车结束录入。 输出格式: 屏幕输出得分最高的课程及成绩,得分最低的课程及成绩,以及平均分(保留2位小数)。 输入样例: 示例格式如下: 数学 90 语文 95 英语 86 物理 84 生物 87 结尾无空行 输出样例: 最高分课程是语文95,最低分课程是物理84, 平均分是88.40 结尾无空行仅供参考
max = 0 maxS = "" min = 150 minS = "" sum = 0 count = 0 while True: try: s = list(input().split(" ")) a = int(s[1]) count = count + 1 sum = sum + a if a > max: max = a maxS = s[0] if a < min: min = a minS = s[0] except: break a = sum / count print("最高分课程是%s%d, 最低分课程是%s%d, 平均分是%.2f"%(maxS, max, minS, min, a))7-10 求所有N位的素数和 (15 分)输入一个正整数n(n>=2),输出所有n位的素数和,如n=2,即输出的是10-99之间的所有素数的和。 输入格式: 一个正整数n(n>=2) 输出格式: 输出所有n位的素数和 输入样例: 2 结尾无空行 输出样例: 10-99之间所有的素数和=1043 结尾无空行仅供参考
import math def isPrime(i): for x in range(2,int(math.sqrt(i)+1)): if i%x==0: return False return True N=int(input()) begin=pow(10,N-1) end=pow(10,N)-1 sum=0 for i in range(begin,end+1): if(isPrime(i)): sum+=i print(str(begin)+'-'+str(end)+'之间所有的素数和=%d'%sum,end='')素质五连:评论、点赞、收藏、转发、打赏
珞珞珞珞珞珞
殺殺殺殺殺殺
朗朗朗朗朗朗



