头歌实践平台python实验3:Python循环结构程序设计

第1关:求所有奇数的和

任务描述

本关任务: 任意输入两个整数ab,计算[a,b]区间内所有奇数的和并输出。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

注意: 1、在同一行输入两个整数,以英文逗号,分隔;使用input()函数时,不要增加额外的提示信息。 2、确保结果输出中的区间[a,b]a<b

编程要求

根据提示,在右侧编辑器补充代码,计算并输出[a,b]间所有奇数的和。

测试说明

平台会对你编写的代码进行测试:

输入1:1,10 输出1:[1,10]之间奇数的和是25

输入2:10,2 输出2:[2,10]之间奇数的和是24

输入3:-4,6 输出3:[-4,6]之间奇数的和是5

# 请在此添加代码
s=0                               #s用来存储奇数的和  
a,b=eval(input())                 #a,b的值要求从键盘输入

########## Begin ##########
if a<=b:
        res=[i for i in range(a,b+1) if i%2==1]
else:
        a,b=b,a
        res=[i for i in range(a,b+1) if i%2==1]
s=(sum(res))
        

########## End ##########
print("[{},{}]之间奇数的和是{}".format(a,b,s))

 第2关:人口增长问题

任务描述

本关任务:假设A国目前人口14亿,人口年增长率为1%,编写程序,计算多少年后人口达到n亿,n由用户输入(>14亿)。

相关知识

为了完成本关任务,你需要掌握:无限循环的使用。

编程要求

根据提示,在右侧编辑器补充代码,计算需要经过的年数。

测试说明

平台会对你编写的代码进行测试:

测试输入: 20

预期输出: 36年

测试输入: 17.8

预期输出: 25年

# 请在此添加代码
########## Begin ##########
n=14
i=0
a=eval(input())
while a>n:
    n=1.01*n
    i=i+1
print(f'{i}年')



########## End ##########

 第3关:用户登录V2

任务描述

本关任务: 在两行分别输入用户名和密码,当用户名为admin且密码为123456时,显示“登录成功”,否则显示“登录失败”,如果登录失败,允许最多尝试三次,三次之后程序直接退出。

编程要求

根据提示,在右侧编辑器补充代码,完成模拟用户登录的程序。

测试说明

平台会对你编写的代码进行测试:

测试输入: admin 123456

预期输出: 登录成功

测试输入: 123 1 adm 123456 qwe 123 预期输出: 登录失败 登录失败 登录失败 测试输入: admin 123 ad 123456 admin 123456

预期输出: 登录失败 登录失败 登录成功

# 请在此添加代码
########## Begin ##########
count=3
for i in range(3):
    name=input("")
    pw=input("")
    if(name=='admin')and (pw=='123456'):
        print('登录成功')
        break
    else:
        count=count-1
        print('登录失败')



########## End ##########

 第4关:输出所有的水仙花数

任务描述

本关任务:编写一个程序,输出[a,b]间所有的水仙花数。 水仙花数是指一个3位数字,它各位数字的3次幂之和等于它本身。如153是一个水仙花数,因为:

153=13+53+33

如果输入的区间内没有水仙花数,则输出“无水仙花数” ####相关知识

为了完成本关任务,你需要掌握:1.如何求出各个数位上的数字,2.循环语句的熟练使用。

编程要求

根据提示,在右侧编辑器补充代码,输出所有的水仙花数。

测试说明

平台会对你编写的代码进行测试:

测试输入: 100,150 预期输出: 无水仙花数

测试输入: 100,155 预期输出: 153

测试输入: 100,999 预期输出: 153 370 371 407

# 请在此添加代码
########## Begin ##########
sum=0
base=0
a,b=map(int,input().split(","))
for x in range(a,b+1):
    low=x%10
    high=x//100
    middle=(x//10)%10
    sum=low**3+high**3+middle**3
    if sum==x:
        print(x)
        base=1
if base==0:
    print("无水仙花数")

########## End ##########

第5关:求班级平均成绩

任务描述

期末考试到了,自动化2201班的C语言老师陈老师想要把班上的考试情况统计一下。陈老师依次输入每个同学的成绩(0~100之间),当输入成绩在0~100之间时,继续输入下一个成绩,如果输入一个负数或大于100的数,就表明成绩输入完毕,停止输入成绩,计算并输出班级平均分(保留2位小数)。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

输入输出示例 1.输入时不需要任何提示;‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬ 2.如果人数为0 ,则输出: “人数为0‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬” 3.如果人数大于等于1,则输出平均值,平均分保留两位小数。

相关知识

为了完成本关任务,你需要掌握:1.如何确定循环的截止条件,2.无限循环while的使用。

编程要求

根据提示,在右侧编辑器补充代码,计算并输出班级平均分,结果保留2位小数。

测试说明

平台会对你编写的代码进行测试:

测试输入: 60 70 80 -1 预期输出: 班级平均成绩:70.00

测试输入: -6

预期输出: 人数为0

# 请在此添加代码
########## Begin ##########
def average_score():
    score=0
    count=0
    total=0
    while True:
        score= int(input())
        if score<0 or score>100:
            break
        total+=score
        count+=1
    if count==0:
        print("人数为0")
    else:
        avg=total/count
        print("班级平均成绩:%.2f" % avg)
average_score()





########## End ##########

 第6关:求和

 

任务描述

本关任务:编写程序,从键盘输入n的值,求

的值,结果保留9位小数。 例如:请输入n的值:100 则输出:sn=0.688172179

相关知识

为了完成本关任务,你需要掌握:for循环的使用 。

编程要求

根据提示,在右侧编辑器补充代码,根据输入计算表达式的值,结果保留9位小数。

测试说明

平台会对你编写的代码进行测试:

测试输入:请输入n的值:100; 预期输出: sn=0.688172179

# 请在此添加代码
########## Begin ##########
a=eval(input("请输入n的值:"))
sum1=0
b=1
for i in range(1,a+1):
    sum1=sum1+1/i*b
    b=-b
print("sn={:.9f}".format(sum1))




########## End ##########

 第7关:问物几何

任务描述

今有物不知其数, 三三数之剩二, 五五数之剩三, 七七数之剩二,问物几何? 本关任务:编写程序,输入一个整数n,求1~n之间符合以上条件数的个数。

编程要求

根据提示,在右侧编辑器补充代码,计算并输出满足条件数的个数。

测试说明

平台会对你编写的代码进行测试:

测试输入: 10 预期输出: 一共有0个数符合条件

测试输入:1000 预期输出: 一共有10个数符合条件

# 请在此添加代码
sum=0                          #sum为符合条件的数的和
########## Begin ##########
a=eval(input())
for i in range (1,a):
    if i%3==2 and i%5==3 and i%7==2:
        sum+=1



########## End ##########
print("一共有{}个数符合条件".format(sum))

 第8关:计算数列的前n项之和(选做)

任务描述

本关任务:编写程序,有数列

,求该数列的前n项之和,其中n的值由键盘输入。

编程要求

根据提示,在右侧编辑器补充代码,计算并输出数列的值。

测试说明

平台会对你编写的代码进行测试:

测试输入1:30 预期输出1:48.84060068717216

测试输入2:100 预期输出2:162.1029798996649

# 请在此添加代码
########## Begin ##########
sum=0
a=2
b=1
n=int(input())
for i in range(n):
    sum=sum+(a/b)
    a,b=a+b,a
print(sum)



########## End ##########

 第9关:立方尾不变(选做)

任务描述

有些数字的立方的末尾正好是该数字本身,比如1(立方是1)、5(立方是125)、24(立方是13824)等。题目输入一个N(1<=N<=10000),请计算输出1N之间所有的立方尾不变数的个数。

相关知识

本任务需要学生了解字符串的知识,我们需要把数字转成字符串,并与立方的后几位进行匹配,看是否相等。

编程要求

根据提示,在右侧编辑器补充代码。

测试说明

平台会对你编写的代码进行测试:

测试输入: 1

预期输出: 一共1个

测试输入: 48 预期输出: 一共7个

# 请在此补全代码
########## Begin ##########
N=int(input())                          #输入N的值
count=0                     #存储满足条件数的个数
for num in range(1,N+1)            :     #补全语句
    x= num**3                     #求num的立方,并存储在变量x中
    s= str(x)                     #将立方转换为字符串
    s1=str(num)             #将需要判断的数字转换为字符串
    m=len(s)-len(s1)        #求立方与原数字的长度差
    if s[m:]==s1:           #判断立方尾数与原数字是否相等 
        count=count+1                    #满足条件,count+1  

########## End ##########  
print("一共{}个".format(count))

  • 10
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值