程序设计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)的值:

python分析身体健康监测数据 python编写身体质量指数_python分析身体健康监测数据

输入格式:

输入在一行中给出实数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)越远,每公里运费越低。标准如下:

python分析身体健康监测数据 python编写身体质量指数_python_02

其中基本运输费用为每吨每公里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为从键盘输入的一个任意实数):

python分析身体健康监测数据 python编写身体质量指数_Python_03

输入格式:

输入在一行中给出实数 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

python分析身体健康监测数据 python编写身体质量指数_python_04

对方不想和你说话,并向你扔了一串数…… 而你必须从这一串数字中找到“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:

在这里给出相应的输出。例如:

python分析身体健康监测数据 python编写身体质量指数_python_05

输入样例2:

在这里给出一组输入。例如:

11
输出样例2:

在这里给出相应的输出。例如:

python分析身体健康监测数据 python编写身体质量指数_python_06

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)