程序设计04-选择与循环
- 7-1 身体质量指数(高教社,《Python编程基础及应用》习题6-3)
- 7-2 计算分段函数f(x)的值
- 7-3 程序员买西瓜
- 7-4 超速处罚[加测试数据]
- 7-5 数据比较
- 7-6 运输打折问题
- 7-7 jmu-python-回文数判断(5位数字)
- 7-8 jmu-python-分段函数
- 7-9 jmu-python-凯撒密码加密算法
- 7-10 奖金计算,循环与多分支(高教社,《Python编程基础及应用》习题6-5)
- 7-11 查找最后一个250
- 7-12 某日期为年度第多少天
- 7-13 打印数字实心矩形
- 7-14 判断素数
- 7-15 水仙花数(20 分)
- 7-16 求满足条件的斐波那契数
- 7-17 求前n项的阶乘之和
- 7-18 偶数位特殊序列和
- 7-19 判断完数
- 7-20 成绩统计
- 所谓“厉害”数,是指其各位数字的5次方等于该数本身。编程输出所有长度不超过n位的正整数中的“厉害”数。 例如:4151=4
- 7-22 显示菱形图形
- 7-23 输出<=n的全部回文数 (高教社,《Python编程基础及应用》习题4-5)
- 7-24 删除列表中的重复值(高教社,《Python编程基础及应用》习题4-8)
- 7-25 输出摄氏-华氏温度转换表
- 7-26 找出肇事者,循环与布尔逻辑(高教社,《Python编程基础及应用》习题6-6)
- 7-27 统计输入字符串中的单词个数及单词的平均长度(高教社,《Python编程基础及应用》习题7-7)
- 7-28 输入半径(大于0),计算圆面积-math库
- 7-29 班级排队
- 7-30 逢七拍手游戏
7-1 身体质量指数(高教社,《Python编程基础及应用》习题6-3)
身体质量指数(英文为Body Mass Index,简称BMI),其值为体重除以身高的平方。体重单位为千克,身高 单位为米。BMI是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。下面是16岁以上人群的BMI图 表:
BMI 解释
BMI<18 超轻
18<=BMI<25 标准
25<=BMI<27 超重
27<=BMI 肥胖
编写一个程序,输入用户的体重(Kg)和身高(米),显示其BMI值,并作出解释性评价。
输入格式:
体重,身高
输出格式:
超轻/标准/超重/肥胖之一。
输入样例:
70,1.75
输出样例:
标准
data = input().split(",")
weight = int(data[0])
hight = eval(data[1])
BMI = weight / (hight **2)
if BMI < 18:
print("超轻")
elif BMI < 25 and BMI >= 18:
print("标准")
elif BMI < 27 and BMI >= 25:
print("超重")
else:
print("肥胖")
7-2 计算分段函数f(x)的值
计算下列分段函数f(x)的值:
输入格式:
输入在一行中给出实数x。
输出格式:
在一行中按“f(x)=result”的格式输出,其中result都保留三位小数(提示:使用.format()函数)。
输入样例1:
12.34
输出样例1:
f(12.34)=0.081
输入样例2:
0
输出样例2:
f(0.0)=0.000
x = eval(input())
if x == 0:
print("f(0.0)=0.000")
else:
print("f({:.2f})={:.3f}".format(x,1/x))
7-3 程序员买西瓜
老婆给当程序员的老公打电话:“下班顺路买10个包子带回来,如果看到卖西瓜的,就买1个。” 当晚,程序员老公手捧一个包子进了家门… 老婆怒道:“你怎么就买了一个包子?!” 老公答曰:“因为看到卖西瓜的。”。 用’Y’表示看到卖西瓜的,用’N’表示没有看到卖西瓜的,用编写一个程序判断今天程序员买了多少个包子. 如果输入的既不是’Y’也不是’N’,则输出:‘error’
输入格式:
在一行中输入Y或者N表示是否看到卖西瓜的。
输出格式:
对每一组输入,在一行中输出程序员购买的包子的数量或者’error’。
输入样例:
在这里给出一组输入。例如:
Y
输出样例:
在这里给出相应的输出。例如:
1
输入样例:
在这里给出一组输入。例如:
N
输出样例:
在这里给出相应的输出。例如:
10
输入样例:
在这里给出一组输入。例如:
x
输出样例:
在这里给出相应的输出。例如:
error
xigua = str(input())
if xigua == 'Y':
print("1")
elif xigua == 'N':
print("10")
else:
print("error")
7-4 超速处罚[加测试数据]
按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款;若达到或超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。
输入格式:
输入在一行中给出2个正整数,分别对应车速和限速,其间以空格分隔。
输出格式:
在一行中输出处理意见:若属于正常行驶,则输出“OK”;若应处罚款,则输出“Exceed x%. Ticket 200”;若应吊销驾驶证,则输出“Exceed x%. License Revoked”。其中x是超速的百分比,精确到整数。
输入样例1:
65 60
输出样例1:
OK
输入样例2:
110 100
输出样例2:
Exceed 10%. Ticket 200
输入样例3:
200 120
输出样例3:
Exceed 67%. License Revoked
chesu,xiansu = input().split()
x = int(chesu) / int(xiansu)
if x - 1 < 0.1:
print("OK")
elif x - 1 >= 0.1 and x - 1 < 0.5:
print("Exceed {:.0f}%. Ticket 200".format((x-1)*100))
else:
print("Exceed {:.0f}%. License Revoked".format((x-1)*100))
7-5 数据比较
实现一个程序,用户输入四个数值(整数或浮点数)。先计算前三个数的平均值,然后把平均值与第四个数进行比较。如果相等,则程序在屏幕上输出“Equal”,如果平均值大于第四个数则输出“Larger”,否则输出“Smaller”。
输入格式:
输入四个数值
输出格式:
输出“Equal”或“Larger”或“Smaller”
输入样例:
在这里给出一组输入。例如:
4.5
3
3
3.5
输出样例:
在这里给出相应的输出。例如:
Equal
x1 = eval(input())
x2 = eval(input())
x3 = eval(input())
x4 = eval(input())
ag = (x1 + x2 + x3)/3
if ag == x4:
print("Equal")
elif ag > x4:
print("Larger")
else:
print("Smaller")
7-6 运输打折问题
某运输公司对用户计算运费。路程(S)越远,每公里运费越低。标准如下:
其中基本运输费用为每吨每公里1元,现请你帮助该运输公司设计自动计费程序,帮助会计人员计算运输费用。
输入格式:
输入每次运输的载重(吨)、里程(公里)。
输出格式:
输出其运输费用,精确到元。
输入样例:
在这里给出一组输入。例如:
1 200
输出样例:
在这里给出相应的输出。例如:
200
输入样例:
在这里给出一组输入。例如:
10 2500
输出样例:
在这里给出相应的输出。例如:
22500
zaizhong,s = input().split()
zaizhong = eval(zaizhong)
s = eval(s)
if s < 250:
zhekou = 1
elif s >= 250 and s < 500:
zhekou = 0.98
elif s >= 500 and s < 1000:
zhekou = 0.95
elif s >= 1000 and s < 2000:
zhekou = 0.92
elif s >= 2000 and s < 3000:
zhekou = 0.90
else:
zhekou = 0.85
money = zaizhong * s * zhekou
print("{:.0f}".format(money))
7-7 jmu-python-回文数判断(5位数字)
本题目要求输入一个5位自然数n,如果n的各位数字反向排列所得的自然数与n相等,则输出‘yes’,否则输出‘no’。
输入格式:
13531
输出格式:
yes
输入样例1:
13531
输出样例1:
yes
输入样例2:
13530
输出样例2:
no
x = int(input())
if (x % 10 == int(x / 10000)) and (int(x / 1000 % 10) == int(x / 10 %10)) :
print("yes")
else:
print("no")
7-8 jmu-python-分段函数
本题目要求计算下列分段函数f(x)的值(x为从键盘输入的一个任意实数):
输入格式:
输入在一行中给出实数 x。
输出格式:
在一行中按“f(x)=result”的格式输出,其中x与result都保留两位小数。
输入样例:
0.76
输出样例:
f(0.76)=1.20
x = eval(input())
if x == 3:
print("f({:.2f})={:.2f}".format(x,10))
elif x < 3:
print("f({:.2f})={:.2f}".format(x,1.20))
else:
print("f({:.2f})={:.2f}".format(x,2 * x + 1))
7-9 jmu-python-凯撒密码加密算法
编写一个凯撒密码加密程序,接收用户输入的文本和密钥k,对明文中的字母a-z和字母A-Z替换为其后第k个字母。
输入格式:
接收两行输入,第一行为待加密的明文,第二行为密钥k。
输出格式:
输出加密后的密文。
输入样例:
在这里给出一组输入。例如:
Hello World!
3
输出样例:
在这里给出相应的输出。例如:
Khoor Zruog!
x = input()
num = int(input())
x2 = str()
for i in x:
if i.isalpha():
temp = ord(i) + num
if chr(temp).isalpha():
x2 += chr(temp)
else:
x2 += chr(temp - 26)
else:
x2 += i
print(x2)
7-10 奖金计算,循环与多分支(高教社,《Python编程基础及应用》习题6-5)
企业发放的奖金根据利润提成。利润低于或等于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
lirun = float(input())
money = 0
if lirun <= 100000:
money = lirun*0.1
elif lirun > 100000 and lirun <= 200000:
money = 100000 * 0.1 + (lirun - 100000) * 0.075
elif lirun > 200000 and lirun <= 400000:
money = 17500 + (lirun - 200000) * 0.05
elif lirun > 400000 and lirun <= 600000:
money = 100000 * (0.1+0.075+0.1) + (lirun - 400000) * 0.03
elif lirun > 600000 and lirun <= 1000000:
money = 100000 * (0.1+0.075+0.1+0.06) + (lirun - 600000) * 0.015
else :
money = 100000 * (0.1 + 0.075+0.16+0.06) + (lirun - 1000000) * 0.01
print("{:.2f}".format(money))
#能让电脑计算就不要自己计算,我把那些100000 * 0.1 换成10000就是不对,因为这些玩意电脑计算都是float!!
7-11 查找最后一个250
对方不想和你说话,并向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。
输入格式:
输入在一行中给出不知道多少个绝对值不超过1000的整数。
输出格式:
在一行中输出最后一次出现的“250”是对方扔过来的第几个数字(计数从1开始)。如果没有出现“250”这个数,输出为0。
输入样例:
888 666 123 -233 250 13 250 -222
输出样例:
7
num = input().split()
n = 0
for i in range(len(num)):
if num[i] == '250':
n = i + 1
print(n)
7-12 某日期为年度第多少天
输入任意“年-月-日”格式的日期,输出这是该年度的第多少天。
输入格式:
输入任意“年-月-日”格式的日期。
输出格式:
输出这个日期是该年度的第多少天。
输入样例:
在这里给出一组输入。例如:
2020-11-11
输出样例:
在这里给出相应的输出。例如:
dayofyear = 315
some = input().split("-")
year = int(some[0])
month = int(some[1])
day = int(some[2])
totalday = 0
if month == 1:
totalday = day
elif month == 2:
totalday = day+31
elif month == 3:
totalday = day+31+28
elif month == 4:
totalday = day+31+28+31
elif month == 5:
totalday = day+31+28+31+30
elif month == 6:
totalday = day+31+28+31+30+31
elif month == 7:
totalday = day+31+28+31+30+31+31
elif month == 8:
totalday = day+31+28+31+30+31+31+31
elif month == 9:
totalday = day+31+28+31+30+31+31+31+30
elif month == 10:
totalday = day+31+28+31+30+31+31+31+30+31
elif month == 11:
totalday = day+31+28+31+30+31+31+31+30+31+30
else:
totalday = day+31+28+31+30+31+31+31+30+31+30+31
print("dayofyear =",totalday)
7-13 打印数字实心矩形
打印数字和星号组成的实心矩形,外框是数字,内部是星号。
输入格式:
输入一个整数n(n>0)。
输出格式:
打印一个数字矩形,矩形的边框都是整数n,要求行和列都是n个数字。(注意:没有空行)而矩形内部都是星号。
输入样例:
在这里给出一组输入。例如:
5
输出样例:
在这里给出相应的输出。例如:
55555
5***5
5***5
5***5
55555
输入样例2:
在这里给出一组输入。例如:
2
输出样例2:
在这里给出相应的输出。例如:
22
22
输入样例3:
在这里给出一组输入。例如:
1
输出样例3:
在这里给出相应的输出。例如:
1
num = int(input())
if num >= 2:
for i in range(num):
if i == 0 or i == num - 1:
for j in range(1,num):
print(num, end='')
if j == num - 1:
print(num)
else:
print(num,(num - 2)*'*',num,sep = '')
else:
print(1)
7-14 判断素数
判断一个给定的正整数是否素数
输入格式:
输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于1000000 的需要判断的正整数
输出格式:
对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No
输入样例:
在这里给出一组输入。例如:
2
11
111
输出样例:
在这里给出相应的输出。例如:
Yes
No
def isPrime(num):
num=int(num)
for i in range(2,num):
if num%i==0 :
return False
if(num!=1):
return True
n = int(input())
for i in range(1,n+1):
t=int(input())
if(isPrime(t)):
print("Yes")
else:
print("No")
7-15 水仙花数(20 分)
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。 例如:153=1×1×1+5×5×5+3×3×3。
本题要求编写程序,计算所有N位水仙花数。
输入格式:
输入在一行中给出一个正整数N(3≤N≤5)
输出格式:
按递增顺序输出所有N位水仙花数,每个数字占一行。
输入样例:
在这里给出一组输入。例如:
3
输出样例:
在这里给出相应的输出。例如:
153
370
371
407
num = int(input())
if num == 3:
for i in range(153, 408):
a = int(i % 10) ** 3
b = int(i / 10 % 10) ** 3
c = int(i / 100) ** 3
if i == a + b + c:
print(i)
elif num == 4:
for i in range(1000, 10000):
a = int(i % 10) ** 4
b = int(i / 10 % 10) ** 4
c = int(i / 100 % 10) ** 4
d = int(i / 1000) ** 4
if a + b + c + d:
print(i)
else:
for i in range(10000, 100000):
a = int(i % 10) ** 5
b = int(i / 10 % 10) ** 5
c = int(i / 100 % 10) ** 5
d = int(i / 1000 % 10) ** 5
e = int(i / 10000) ** 5
if i == a + b + c + d + e:
print(i)
#int絕對不能丟a = int(i % 10) ** 5
7-16 求满足条件的斐波那契数
斐波那契数,亦称之为斐波那契数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……,这个数列从第3项开始,每一项都等于前两项之和。求大于输入数的最小斐波那契数。
输入格式:
在一行输人一个正整数n(n>=10)。
输出格式:
在一行输出大于n的最小斐波那契数。
输入样例:
在这里给出一组输入。例如:
10
输出样例:
在这里给出相应的输出。例如:
13
num = int(input())
a = 1
b = 1
c = a + b
while c < num :
a = b
b = c
c = a + b
print(c)
7-17 求前n项的阶乘之和
从键盘输入一个整数n,求前n项的阶乘之和,1+2!+3!+…+n!的和
输入格式:
输入一个大于1的整数。例如:输入20。
输出格式:
输出一个整数。例如:2561327494111820313。
输入样例:
在这里给出一组输入。例如:
20
输出样例:
在这里给出相应的输出。例如:
2561327494111820313
num = int(input())
sum = 0
for i in range(1,num+1):
j = i
jiecheng = 1
while j != 0:
jiecheng *= j
j = j - 1
sum = sum + jiecheng
print(sum)
7-18 偶数位特殊序列和
给定不超过9的正整数a,给定正整数n,n是偶数,4<=n<=18,要求编写程序求aa+aaaa+aaaaaa+⋯+aa⋯a(n个a)之和。
输入格式:
在一行中给出不超过9的正整数a和n。
输出格式:
在一行中输出对应的和。
输入样例:
在这里给出一组输入。例如:
1 4
输出样例:
在这里给出相应的输出。例如:
1122
a,n = input().split()
a = int(a)
n = int(n)
n = int(n / 2)
nexa = a * 10 + a
fanren = a * 10 + a
fin = 0
for i in range(n):
fin = fin + nexa
nexa = nexa * 100 + fanren
print(fin)
7-19 判断完数
判断一个正整数是否为完数。完数定义:一个数的所有因子(包括1)之和等于它自身,这个数就是完数。比如6=1+2+3,6是完数。
输入格式:
例如:输入一个正整数 6
输出格式:
输出:
6=1+2+3
输入样例:
在这里给出一组输入。例如:
6
输出样例:
在这里给出相应的输出。例如:
6=1+2+3
输入样例:
在这里给出一组输入。例如:
28
输出样例:
在这里给出相应的输出。例如:
28=1+2+4+7+14
num = int(input())
alist = []
b = ''
for i in range(1,num):
if num % i == 0:
alist.append(i)
blist = [str(x) for x in alist]
b = "+".join(blist)
print("{}={}".format(num,b))
7-20 成绩统计
现有某班级Python考试成绩,请你帮老师做一下成绩统计,找出最高分、最低分,算出平均分,统计出不及格人数。
输入格式:
输入在第一行给出班级人数n,第二行为n个学生的成绩(0~100之间的整数),中间用空格分隔。
输出格式:
输出共四行,分别为最高分、最低分、平均分和不及格人数,其中平均分保留1位小数。
输入样例:
10
80 95 75 85 90 55 66 88 100 58
输出样例:
Max: 100
Min: 55
Ave: 79.2
Fail: 2
num = int(input())
n = 0
alist = input().split()
for i in range(len(alist)):
alist[i] = int(alist[i])
print("Max: {}".format(max(alist)))
print("Min: {}".format(min(alist)))
print("Ave: {:.1f}".format(sum(alist) / num))
for i in alist:
if i < 60:
n = n + 1
print("Fail: {}".format(n))
所谓“厉害”数,是指其各位数字的5次方等于该数本身。编程输出所有长度不超过n位的正整数中的“厉害”数。 例如:4151=4
5
+1
5
+5
5
+1
5
输入格式:
一个整数n (1<=n<=6)
输出格式:
每行一个“厉害”数
输入样例:
4
输出样例:
1
4150
4151
n = int(input())
weishu = 1
for i in range(1,n+1):
weishu = weishu * 10
#fin = 0 寫在這是錯的
for i in range(1,weishu):
j = i
fin = 0
while j != 0:
fin += (j % 10) ** 5
j = j // 10
if (fin == i):
print(i)
7-22 显示菱形图形
显示菱形图形,每行的宽度是11。
输入格式:
输入显示的行数,行数在1,3,5,7,9,11中取值
输出格式:
菱形图形,每行的宽度是11
输入样例1:
在这里给出一组输入。例如:
5
输出样例1:
在这里给出相应的输出。例如:
输入样例2:
在这里给出一组输入。例如:
11
输出样例2:
在这里给出相应的输出。例如:
n=int(input())
num=int(n/2)
nn=5
for i in range(0,num):
print(' '*(nn-i-1),'*'*(i*2+1),' '*(nn-i-1))
if num==5:
print('*'*11)
num=num-1
for n in range(num,-1,-1):
print(' '*(nn-n-1),'*'*(n*2+1),' '*(nn-n-1))
7-23 输出<=n的全部回文数 (高教社,《Python编程基础及应用》习题4-5)
数字121从左往右读与从右往左读是一样的,这种数称为回文数。请使用for循环以及切片方法设计一个程序, 找出>=0并且<=n的全部回文数。
注意:单个的数字0,数字1,… 数字9也认为是回文数。
输入格式:
n
输出格式:
多行输出,一行一个数
输入样例:
13
输出样例:
0
1
2
3
4
5
6
7
8
9
11
n = int(input())
for i in range(n+1):
b = str(i)
if b == b[::-1]:
print(b)
7-24 删除列表中的重复值(高教社,《Python编程基础及应用》习题4-8)
输入一个列表,删除其中的重复值,再输出。
要求
假设列表中存在k个值为a的元素,删除前k-1个元素,保留最后一个。 不同元素在列表中的相对位置不应被改变。
输入格式:
[元素1, 元素2, … , 元素n]
输出格式:
[元素1,元素2, … , 元素k]
输入样例:
[4,3,2,3,2,4,True]
输出样例:
[3, 2, 4, True]
提示:将形如"[1,3,5]"的字符串转换成列表可以使用eval()函数。 注意,输出格式应与输出样例一致,涉及空格,逗号等。
lis = eval(input())
for i in lis.copy():
if lis.count(i) > 1:
lis.remove(i)
print(lis)
#.copy
#copy()方法进行备份复制列表
7-25 输出摄氏-华氏温度转换表
输入2个正整数lower和upper(-20<=lower<=upper<=50),表示摄氏范围。请输出一张取值范围为[lower,upper]、 且每次增加2摄氏度的摄氏-华氏温度转换表。温度转换的计算公式: F=C×1.8+32 其中:C表示摄氏温度,F表示华氏温度。
输入格式:
在一行中输入2个整数,分别表示lower和upper的值,中间用空格分开。
输出格式:
第一行输出:“celsius□□□□fahr”
接着每行输出一个摄氏温度celsius(整数)与一个华氏温度fahr(占据14个字符宽度,靠右对齐,保留1位小数)。
若输入的范围不合法,则输出"Invalid."。
输入样例1:
在这里给出一组输入。例如:
2 9
输出样例1:
在这里给出相应的输出。例如:
celsius fahr
2 35.6
4 39.2
6 42.8
8 46.4
输入样例2:
在这里给出一组输入。例如:
2 51
输出样例2:
在这里给出相应的输出。例如:
Invalid.
data = (input().split())
low = int(data[0])
upp = int(data[-1])
if low >= -20 and low <= upp and upp <= 50:
if low >= 0 and low <=9:
n = 1
else:
n = 2
print("celsius fahr")
for i in range(low,upp,2):
print("{}".format(i),"{:>13.1f}".format(i * 1.8 + 32))
else:
print("Invalid.")
7-26 找出肇事者,循环与布尔逻辑(高教社,《Python编程基础及应用》习题6-6)
在视线不太好的黑夜一司机撞伤行人之后逃逸,有3个目击者记住了该车的部分车号特征。 甲说:“车牌号的前两位相同,且末位数是奇数”;乙说:“车牌号的后两位加起来等于5”; 丙说:“车牌号是一个N位数,并且能被3整除”。请你写一个程序,该程序接受一个正整数N(>=3), 找出肇事车可能的车牌号。
输入格式:
一个>=3的正整数
输出格式:
全部可能的车牌号(一行一个,按递增序)
输入样例:
3
输出样例:
441
a = int(input())
b = 10 ** (a-1)
for i in range(b, b * 10):
one = i//b
two = i//(b/10) % 10
end_one = i % 10
end_two = i//10 % 10
if(one==two and end_one+end_two==5 and i%3==0 and end_one%2==1):
print(i)
7-27 统计输入字符串中的单词个数及单词的平均长度(高教社,《Python编程基础及应用》习题7-7)
编写一个程序,接受用户输入的一行英文句子(假设该句子仅由英文单词及空格构成,不包括逗号等符号),统计并输出该行句子包含的单词个数及单词的平均长度。
输入格式:
单词1 单词2 … 单词n
输出格式:
单词个数,单词平均长度(保留两位小数)
输入样例:
aaa bbb ccccccccccc
输出样例:
3,5.67
alist = input().split()
n = 0
ch = 0
for i in range(len(alist)):
n = len(alist[i])
ch = ch + n
av = ch / len(alist)
print(len(alist),",","{:.2f}".format(av),sep="")
7-28 输入半径(大于0),计算圆面积-math库
本题目要求输入半径(大于0),使用math库中的pi常量来计算圆面积。 注意:如果输入半径的数据不符合条件,则重复输入直到满足条件才进入后续的计算。
输入格式:
输入一个数。
输出格式:
半径为result1的圆的面积是result2
其中:
result1是半径
result2是圆面积,输出宽度为 10,保留5位小数
输入样例:
在这里给出一组输入。例如:
5
输出样例:
在这里给出相应的输出。例如:
半径为5的圆的面积是 78.53982
import math
result1 = eval(input())
while result1 <= 0:#因为要重复输入,所以用while,而不是if!!!!
result1 = eval(input())
result2 = math.pi * (result1 ** 2)
print("半径为{}的圆的面积是{:10.5f}".format(result1,result2))
7-29 班级排队
小杨是班里新高一的班长,班主任王老师给小杨布置了一个任务,要求将班 里男生和女生分别从矮到高排序,女生排在男生前面。
输入格式:
第一行输入一个正整数 n,表示班级的人数,1<=n<=5000。
第二行输入 n 个整数,表示班级每个人的身高,单位 cm。
第三行输入 n 个数,0 表示男生,1 表示女生。
输出格式:
排序后每个人的身高。
输入样例:
10
159 187 176 155 163 167 179 182 160 167
1 0 0 1 0 1 1 0 1 0
输出样例:
155 159 160 167 179 163 167 176 182 187
评测用例规模与约定
对于 20%的评测用例,1≤n≤10。 对于 50%的评测用例,1≤n≤100。 对于 80%的评测用例,1≤n≤1000。 对于所有评测用例,1≤n≤10000。
num = int(input())
alist = input().split()
blist = input().split()
man = []
woman = []
fin = ''
for i in range(len(blist)):
if blist[i] == '0':
man.append(alist[i])
else:
woman.append(alist[i])
man = sorted(man)
woman = sorted(woman)
fin = ' '.join(woman) +' ' + ' '.join(man)
print(fin)
7-30 逢七拍手游戏
逢七拍手游戏规则是:从1 开始顺序数数,数到有包含有7或者7的倍数的时候拍手。编写程序实现逢七拍手游戏,输入整数n ,输出 n 以内(包含n)的需要拍手的数字,数字之间用1个空格分隔。
输入格式:
输入 一个整数
输出格式:
输出满足条件的所以数据,用空格分隔
输入样例:
30
输出样例:
7 14 17 21 27 28
num = int(input())
a = int()
b = []
c = ''
def prime(number):
if number % 7 == 0:
return True
else:
while number:
a = number % 10
if a == 7:
return True
number = number // 10
return False
for i in range(1,num):
if prime(i) == True:
b.append(i)
for i in range(len(b)):
c = c + str(b[i]) + ' '
print(c)