头歌实训平台Python
目录Python 初体验—— Hello world第1关 Hello Python,我来了!Python控制结构(一)※第1关 if分支入门※第2关 while循环分支入门※学习-Python循环结构之for…else…之寻找水仙花数第1关 学习-Python循环结构之for…else…之寻找水仙花数Python程序设计_实训4_循环语句训练第1关 质数第2关 最大公约数第3关 质数的数量第4关
目录
学习-Python循环结构之for…else…之寻找水仙花数
第1关 学习-Python循环结构之for…else…之寻找水仙花数
练习-Python异常处理之try…except…else…
第1关 练习-Python异常处理之try…except…else…
Python 初体验—— Hello world
第1关:Hello Python,我来了!
任务描述
Python 编程语言具有简洁、易读等特点,并提供了交互式编程以及脚本编程两种不同的模式,学习者很容易上手。 本关的任务是: (1)完成打印Hello world
、整数加减法以及利用Help
命令查询相应内置函数的使用等; (2)利用 Python 提供的print()
内置函数打印输出Hello world
。
# coding=utf-8
# 请在此添加代码,实现编程要求
########## Begin ##########
print('Hello Python')
########## End ##########
Python控制结构(一)※
第1关:if分支入门※
编程要求
根据提示,在右侧编辑器Begin-End
处补充代码,完成如下要求:
第一题
有31
天的月份为[1,3,5,7,8,10,12]
月
请编写程序,输入1~12
的整数,若它对应的月份为31
天则输出yes
,否则输出no
。
第二题
气象预报时,一般按照风速对飓风进行分级,下表给出对应关系。
风速 | 74-95 | 96-110 | 111-130 | 131-154 | 155及以上 |
---|---|---|---|---|---|
级别 | 1 | 2 | 3 | 4 | 5 |
请编写程序,根据用户输入的风速,输出对应的飓风等级。
# 第一题
month = int(input())
# 31天的月份:1~7之间的奇数月、8~12之间的偶数月
# 如果是31天的月份输出yes
####### begin #######
if month in [1,3,5,7,8,10,12]:
print("yes")
####### end #########
# 如果不是31天的月份,输出no
####### begin #######
else:
print("no")
####### end #########
print('\n***********************\n')
#第二题
# 从测试集得到风速
velocity = int(input())
# 默认是0级
rank = 0
# 如果风速在74到95之间,输出1
####### begin #######
if 74<=velocity<=95:
rank=rank+1
####### end #########
# 如果风速在96到110之间,输出2
####### begin #######
elif 96<=velocity<=110:
rank=rank+2
####### end #########
# 如果风速在111到130之间,输出3
####### begin #######
elif 111<=velocity<=130:
rank=rank+3
####### end #########
# 如果风速在131到154之间,输出4
####### begin #######
elif 131<=velocity<=154:
rank=rank+4
####### end #########
# 如果风速大于155,输出5
####### begin #######
elif velocity>=155:
rank=rank+5
####### end #########
print(rank)
第2关:while循环分支入门※
编程要求
根据提示,在右侧编辑器Begin-End
处补充代码,完成如下要求:
第一题
编程计算如下公式的值
12+32+52+...+9952+9972+9992
并输出结果
第二题
用while
语句完成程序逻辑,求如下算法可以求根号x的近似值。(例如,x
为3
时,算法输出约为1.7320508
)。
算法如下:
-
输入
x
,若x
为负数,则输出“无实数解”,算法结束; -
令
g=x/2
; -
通过如下公式计算误差值,如果
∣x−g∗g∣<10−6
,输出g
,算法结束; -
否则,将
(g+x/g)/2
作为新的猜测值,仍记为g
。 -
重复步骤3和4
from math import *
i = 1 # 当前计算的值
s = 0 # 计算出来的和
# 第一题
########### begin ##########
# 请在此输入循环控制语句
while i<=999:
######### end ####
s = s + i ** 2
i = i + 2
print(s)
########## 第二题 ##############
x = int(input())
if x<0:
print('无实数解')
else:
g = x/2
#######begin##############
# 请输入循环控制语句
while abs(x-g*g)>=0.000001:
#######end#################
g = (g+x/g)/2
print(g)
学习-Python循环结构之for…else…之寻找水仙花数
第1关:学习-Python循环结构之for…else…之寻找水仙花数
任务描述
本关任务:给定一个整数 n,判断 n 以内的正数是否含有水仙花数。水仙花数是指一个 3 位的整数,它的每个位上的数字的 3 次幂之和等于它本身。
i= int(input())
for num in range(2,i):
a = num % 10
b =(( num -a)/10)%10
c = (num - b* 10 - a) /100
#print(‘num’, num)
#print(a)
#print(b)
#print©
if num == a**3 + b**3 +c**3:
print("有水仙花数")
break
else:
print('没有水仙花数')
Python程序设计_实训4_循环语句训练
第1关质数
任务描述
本关任务:输入一个大于1
的int
,判断其是否为质数。
如果是质数,输出Prime
。 否则,输出Heshu
。
相关知识
质数是指,除了1
和本身,再无其他因子的数。
例如7
是质数,因为7
的因子只有1
和7
。而9
不是质数,因为9
的因子除了1
和9
之外,还有3
。
n=int(input())
from math import sqrt
m=int(sqrt(n))
for i in range(2,m+1):
if n%i==0:
print("Heshu")
break
else:
print("Prime")
第2关最大公约数
任务描述
本关任务:给定2
个正的int
,求其最大公约数。
相关知识
所谓a
和b
的最大公约数,就是既是a
的因子、也是b
的因子,而且是所有满足该条件数中最大的。
例如12
和8
的公因子有1/2/4
,因此4
是12
和8
的最大公约数。
#********** Begin **********#
def gcd(a,b):
if a<b:
a,b=b,a
while(a%b !=0):
c=a%b
a=b
b=c
return b
a,b=map(int,input().split())
c=gcd(a,b)
print(c)
#********** End **********#
第3关质数的数量
任务描述
本关任务:求区间[a,b]
中质数的数量。
输入2
个正整数a
和b
,输出答案。(保证a≤b
)
特别的,注意1
不是质数!
相关知识
考虑最直接的做法,首先写一个for
循环,从a
到b
。然后对其中的每一个数判断是否为质数。而判断质数又需要一个循环,因此需要写一个双重循环。
#********** Begin **********#
n=0
a,b=input().split()
a=eval(a)
b=eval(b)
for i in range(a,b+1):
if i ==1:
n=n+1
continue
for d in range(2,i):
if i%d==0:
n=n+1
break
print (b-a-n+1)
#********** End **********#
第4关哥德巴赫猜想
任务描述
本关任务:给定一个正的偶的int
,将其分解为2
个质数的和。按从小到大输出这个2
个质数,中间用一个空格分隔。(如果有多种可能性,输出差别尽可能大的答案。)
例如,输入6
,输出应该是: 3 3
如果输入10
,则“3 7”
与“5 5”
均可。但前者的2
个质数差别更大,因此答案应该是: 3 7
#********** Begin **********#
import math
n=int(input())
a=2
b=n-a
gede1,gede2=1,1
while gede1==1 or gede2==1:
if a==2:
gede1=0
else:
for i in range(2,a):
if a%i == 0:
gede1 = 1
break
else:
gede1 = 0
if b == 2:
gede2 = 0
else:
for i in range(2,int(math.sqrt(b))+2):
if b%i == 0:
gede2 = 1
break
else:
gede2 = 0
if gede1 == 1 or gede2 == 1:
a = a+1
b = n-a
print('{} {}'.format(a,b))
#********** End **********#
练习-Python函数之函数返回值
第1关练习-Python函数之函数返回值
任务描述
本关任务:定义一个函数 average,用于计算考试成绩的平均分,每次传入的参数个数不确定,请编写代码实现该功能。
"""
任务:定义一个函数 average,用于计算考试成绩的平均分,每次传入的参数个数不确定,如果参数中出现了小于 0 或者大于 100 的数时,输出"分数数据异常",否则输出平均分。
"""
# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
##########Begin##########
# 定义函数 average,计算平均分并按照要求打印结果
def average(*args):
num = 0
for x in args:
if x<0 or x>100:
return
num += x
return num/len(args)
##########End##########
# 请勿修改下列代码
score = eval(input()) # 将输入的字符串转换为可执行的表达式
if score:
print("平均分为",score)
else:
print("分数数据异常")
"""
任务:定义一个函数 average,用于计算考试成绩的平均分,每次传入的参数个数不确定,如果参数中出现了小于 0 或者大于 100 的数时,输出"分数数据异常",否则输出平均分。
"""
# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
##########Begin##########
# 定义函数 average,计算平均分并按照要求返回结果
def average(*args):
n=len(args)
sum1=0
for i in args:
if 0<=i<=100:
sum1+=i
else:
return False
return sum1/n
##########End##########
# 请勿修改下列代码
score = eval(input()) # 将输入的字符串转换为可执行的表达式
if score:
print("平均分为",score)
else:
print("分数数据异常")
学习-Python函数之函数递归调用
第1关学习-Python函数之函数递归调用
任务描述
斐波拉契数列是指数列从第3项开始,每一项都等于前两项之和。例如: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610......
"""
任务:使用递归打印斐波拉契数列的前 n 位数字。n 通过 input 函数获取。
"""
# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
########## Begin ##########
# 定义一个函数,使用递归打印斐波拉契数列的前 n 位数字
n=eval(input())
def he(x):
if x==1 or x==2:
return 1
else:
a=he(x-1)+he(x-2)
return a
print(he(n))
########## End ##########
练习-Python列表之应用二
第1关:练习-Python列表之应用二
任务描述
本关任务:给定一个数组,使用 for 循环复制这个数组,然后去除列表内的重复元素,最后对列表进行排序。打印去重且排序后的复制列表。
"""
任务:给定一个数组,使用 for 循环复制这个数组,然后去除列表内的重复元素,最后对列表进行排序。打印去重且排序后的复制列表。
"""
list1 = [88,5,8,6,1,23,1,15,1,61,31,6,51,1,984,9849,1,-100,513,891,3,1,48,465,132,165,4,6,132,498,46,132,165,468,498,484,11,6,84,65,132,1,64,684,6981,324,984,61,32,468,4651,6,4,9814,654,984,68,7]
# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
##########Begin##########
# 使用 for 循环复制这个数组,然后去除列表内的重复元素,最后对列表进行排序。打印去重且排序后的复制列表
list2=list(set(list1))
for i in list2:
n=list2.count(i)
if n>1:
for j in range(1,n):
del list2[list2.index(i)]
list2.sort()
print(list2)
##########End##########
练习-Python元组之应用二
第1关:练习-Python元组之应用二
任务描述
本关任务:给定一个元组,利用列表和元组的相互转换实现元组元素的更改,去除元组中的整型数据。
"""
任务:给定一个元组,利用列表和元组的相互转换实现元组元素的更改,去除元组中的整型数据。打印更改后的元组。
"""
tup = (1,"3",4,5,"4","a",(1,2,3,4),"b","c",6,17,"d",("a","b","c"),0,"e","f",True,10,"False",11,"h","A","B","C",30,"D",-35,-60,(-1,-2,-5))
# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
##########Begin##########
# 利用列表和元组的相互转换实现元组元素的更改,去除元组中的整型数据
list1 = []
for x in tup:
if type(x) != int:
list1.append(x)
print(tuple(list1))
##########End##########
练习-Python字典之应用二
第1关练习-Python字典之应用二
任务描述
本关任务:给定一个字典,该字典的值只能是整型数据,键为该数字的字符型,比如{"5":5}
,但是字典中的键值对并不是都按照这个规则排序的,可能出现{"5":4}
的情况,请编写代码将字典的值改为和键一致的整型数值。
"""
任务:给定一个字典,该字典的值只能是整型数据,键为该数字的字符型,比如`{"5":5}`。
但是字典中的键值对并不是都按照这个规则排序的,可能出现`{"5":4}`的情况,请编写代码将字典的值改为和键一致的整型数值。
例如:{"5":4,"3":2}改为{"5":5,"3":3}
"""
dict1 = {"4":3,"14":14,"5":6,"33":33,"25":25,"18":68,"0":0,"10":3,"42":24,"7":1,"64":64,"49":49,"90":90,"48":48,"68":86,"41":12,"46":46,"91":91,"75":75,"27":39,"34":3,"57":11}
# 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
##########Begin##########
# 请编写代码实现任务要求,打印更改后的字典
for i in dict1:
if eval(i)!=dict1[i]:
dict1[i]=eval(i)
print(dict1)
##########End##########
练习-Python异常处理之try…except…
第1关:练习-Python异常处理之try…except…
任务描述
本关任务:求给定两个数的商,并捕获除数为 0 的异常。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示在 Begin-End 之间编写程序代码。具体要求如下:
- 使用 2 个 input 函数来接收被除数和除数,第一个用于接收被除数,第二个为除数;
- 求两个数的商,如果不存在异常,打印结果,如果存在在除数为 0 的异常,则捕获异常,捕获到该异常后输出提示语句:“除数不能为0” 。
# 请在下面的 Begin-End 之间按照注释中给出的提示编写正确的代码 ########## Begin ########## # 计算两个数的商,捕获除数为 0 时的异常 try: a=eval (input()) b=eval (input()) print(a/b) except: print("除数不能为0") ########## End ##########
练习-Python异常处理之try…except…else…
第1关练习-Python异常处理之try…except…else…
任务描述
本关任务:获取 5 个整数,放入一列表中。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示在 Begin-End 之间编写程序代码。通过 input 函数 5 次获取后台数据,如果 5 个数据均为数字,则将数字添加至列表,并打印列表。如果存在数据不为整数,则打印"请输入整数。"
# 请在下面的 Begin-End 之间按照注释中给出的提示编写正确的代码
########## Begin ##########
# 获取 5 个整数,放入一列表中,如果 5 个数都是整数,则打印该列表
list1 = []
for i in range(5):
try:
j=int(input())
except:
print('请输入整数!')
break
else:
list1.append(j)
if len(list1) == 5:
print(list1)
更多推荐
所有评论(0)