目录

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函数之函数返回值

第1关  练习-Python函数之函数返回值

学习-Python函数之函数递归调用

第1关  学习-Python函数之函数递归调用

练习-Python列表之应用二

第1关  练习-Python列表之应用二

练习-Python元组之应用二

第1关  练习-Python元组之应用二

练习-Python字典之应用二

第1关  练习-Python字典之应用二

练习-Python异常处理之try…except…

第1关  练习-Python异常处理之try…except…

练习-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-9596-110111-130131-154155及以上
级别12345

请编写程序,根据用户输入的风速,输出对应的飓风等级。

# 第一题

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的近似值。(例如,x3时,算法输出约为1.7320508)。

算法如下:

  1. 输入x,若x为负数,则输出“无实数解”,算法结束;

  2. g=x/2

  3. 通过如下公式计算误差值,如果 ∣x−g∗g∣<10−6,输出g,算法结束;

  4. 否则,将(g+x/g)/2作为新的猜测值,仍记为g

  5. 重复步骤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关质数

任务描述

本关任务:输入一个大于1int,判断其是否为质数。

如果是质数,输出Prime。 否则,输出Heshu

相关知识

质数是指,除了1和本身,再无其他因子的数。

例如7是质数,因为7的因子只有17。而9不是质数,因为9的因子除了19之外,还有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,求其最大公约数。

相关知识

所谓ab的最大公约数,就是既是a的因子、也是b的因子,而且是所有满足该条件数中最大的。

例如128的公因子有1/2/4,因此4128的最大公约数。

#********** 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个正整数ab,输出答案。(保证a≤b

特别的,注意1不是质数!

相关知识

考虑最直接的做法,首先写一个for循环,从ab。然后对其中的每一个数判断是否为质数。而判断质数又需要一个循环,因此需要写一个双重循环。

#********** 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)

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐