标签:整数 sum print 调用 color lazy lse mat col
一、编写函数,计算一个正整数n的各位数字之和。
提示:
方法1: 1)def str()函数将该正整数n转换为字符串s;
2)遍历字符串s,取出数字字符,并使用int()函数将其转换为整数num;
3)每次遍历时,将整数num累加至变量sum中,推出循环后,将sum作为函数返回值,即为各位数字之和。
方法2:1) def str()函数将该正整数n转换为字符串s;
2)通过列表生成器[int(c) for c in s],得到正整数n对应的各位数字构成的整数列表ls;
3)通过Python内置函数sum(),计算列表ls元素之和,即为各位数字之和。
方法3:1)def str()函数将该正整数n转换为字符串s;
2)使用list(map(int,s)),得到正整数n对应各位数字构成的整数列表ls。其中map()函数为Python内置函数,map(int,s)即将int()函数映射到字符串s中的每一个字符,也就是将每一个字符转换为整数,从而得到一个包含正整数n的各位数字的迭代器;
3)通过Python内置函数sum(),计算列表ls元素之和,即为各位数字之和。
def str_1(n): s = str(n) result = 0 for c in s: result = result + int(c) return result def str_2(n): s = str(n) ls = [int(c) for c in s] result = sum(ls) return result def str_3(n): s = str(n) ls = list(map(int,s)) result = sum(ls) return result num = input("请输入数字:") print("方法1的结果为:",str_1(num)) print("方法2的结果为:",str_2(num)) print("方法3的结果为:",str_3(num))
二、先定义函数计算,然后调用该函数计算。
def fun(n,m): result = 0 for i in range(1,n+1): result = result + pow(i,m) return result s = fun(100,1) + fun(50,2) + fun(10,-1) print(s)
三、利用递归函数计算1!+2!+3!+...+20!的和。
def fun(n): if (n<=1): return 1 else: return n*fun(n-1) result = 0 for i in range(1,21): result = result + fun(i) print(result)
四、输入正整数n(3≤n<1000 ), 计算有多少对素数的和等于输入的整个正整数,并输出结果。
例如:input 10
输出对数结果为:2对
两对素数分别为:(5 ,5) (3,7)
def fun(n): flag = False if n==2: return True else: for i in range(2,n): if n%i==0: flag = True break if flag: return False else: return True n = int(input("input ")) count = 0 list = [] for i in range(2,n): if fun(i) and fun(n-i) and i<=n-i: list.append(i) list.append(n-i) count = count + 1 print("输出对数结果为:",count,"对") print(count,"对素数分别为:",end=‘‘) for i in range(0,count*2,2): print("({},{}) ".format(list[i],list[i+1]),end=‘‘)
标签:整数 sum print 调用 color lazy lse mat col
原文地址:https://www.cnblogs.com/zhangjingpeng00/p/14828179.html