实践练习——Python创建函数

练习1  基本题目(必做题)

1. 编程实现 9*9乘法表(循环嵌套的复习)。

编写的代码如下,可供参考:

def printLine(row):
    for col in range(1, row+1):
        print("{}*{}={}\t" .format(col,row,col*row),end=" ")
    print("")
for row in range(1,10):
    printLine(row)

输出结果为:

实践练习——Python创建函数_第1张图片

 

2.用函数实现求100-200里面所有的素数。     

提示:素数的特征是除了1和其本身能被整除,其它数都不能被整除的数

 

编写的代码如下,可供参考:

def calculate(a,b):
    lis_prime = []
    for i in range(a,b):
        for j in range(2,i):
            if i % j == 0:
                break
        else:
            lis_prime.append(i)
    return lis_prime

print(calculate(100,200))

输出结果为:

3.请用函数实现一个判断用户输入的年份是否是闰年的程序。     

提示:能被4整除,但是不能被100整除的年份或者能被400整除的年份。

 

编写的代码如下,可供参考:

def year(years):
    if years % 400 == 0 or (years % 4 == 0 and years % 100 != 0):
        return True
    else:
        return False
print(year(2004))

输出为:


练习2  平方等式

题目需求:对于一个十进制的正整数, 定义f(n)为其各位数字的平方和,

如:     f(13) = 1**2 + 3**2 = 10     f(207) = 2**2 + 0**2 + 7**2 = 53

下面给出三个正整数k,a, b,你需要计算有多少个正整数n满足a<=n<=b,且k*f(n)=n

输入: 第一行包含3个正整数k,a, b, k>=1,  a,b<=10**18, a<=b;

输出:输出对应的答案;

范例:    

        输入: 51 5000 10000     输出: 3

 

编写的代码如下,可供参考:

def f(n):
    n = str(n)#先把数字转化为字符串
    # print(n)
    sum =0
    for item in n:
        sum +=int(item)**2 #将字符串类型转化为整型进行计算
    return sum
print(f(13))
print(f(207))
#进行判断是否满足条件
def isok(k,n):
    if k*f(n)==n:
        return True
    else:
        return False
def main(k,a,b):
    count = 0
    for i in range(a,b+1):
        if isok(k,i):
            count +=1
    print(count)
main(51,5000,10000)

输出结果:

你可能感兴趣的:(实践练习—python)