python函数和代码复用练习题——连续质数计算,计算从N开始的5个质数

问题描述

使用一段代码,完成如下功能:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

获得用户输入数字N,计算并输出从N开始的5个质数,单行输出,质数间用逗号,分割。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

注意:需要考虑用户输入的数字N可能是浮点数,应对输入取整数;最后一个输出后不用逗号。

输入输出示例

python函数和代码复用练习题——连续质数计算,计算从N开始的5个质数_第1张图片

问题思考

我们先将这段代码要完成的功能拆解:

1.获得一个用户输入,而且要判断用户的输入是否是int,如果不是,要用进一法得到第一个数字,即如果输入5.5,第一个数字应该是6;

2.要能判断这个数是不是质数

3.如果是质数,要输出这个数,如果不是,从下一个开始判断,直到找到5个质数为止

4.输出格式要求将数字输出为一行,中间用“,”隔开,且最后一个数字无“,”

代码思考

针对每一个问题,我们对实现这个功能的代码进行思考。

1.我们要用到分支结构,判断并且规范化我们的起始数字;

2.我们可以定义一个函数,实现判断一个数是不是质数的功能,在返回值上,因为这个函数的功能只是判断一个数是不是质数,因此我们定义:如果是质数,返回Ture,否则无返回值;

3.我们要用到循环结构,来找到5个符合要求的数字,并输出

4.我们要将输出格式化

代码

#zhishu.py
def prime(m): #定义一个函数,用来判断一个数是不是质数,如果是,返回"Ture"
    for i in range(0,m):
        if m==0:
            break
        elif i==0 or i==1:
            continue
        else:
            c=m%i
            if c==0:
                break
    else:
        return "Ture"
        

n = eval(input())
if n!=int(n): #判断输出是不是整数,如果不是,要用进一法求得起始数
    n=int(n)+1
counter=0
ls=list()
while counter<5: #循环语句,找到5个符合要求的质数并输出
    if prime(n):
        ls.append(n)
        counter+=1
        if counter==5: #满足输出的要求
            print("{}".format(n),end="")
        else:
            print("{},".format(n),end="")
        n+=1
    else:
        n+=1

总结

这个题目使用到了分支语句、循环语句、函数等功能,但是我们如果可以分析解决问题需要实现的功能,并且为每个功能找到实现它的代码,我们就可以解决这样的问题了。

PS

如果有兴趣,可以查看我的其他博文先找一些简单的题练习。

你可能感兴趣的:(Python,练习,函数)