# 质数的判断 def isPrimeNumber(num): if num>1: for i in range(2,num): if num % i == 0: return False return True print(isPrimeNumber(3)) print(isPrimeNumber(4)) print(isPrimeNumber(1239)) print(isPrimeNumber(9873)) # 打印质数 def printPrimeNumber(start,end): count=0 for i in range(start,end): if isPrimeNumber(i): count+=1 print("%4d"%i,end="") if count%6==0: print() printPrimeNumber(1,1000) print("-------------------") printPrimeNumber(100,200)
注意:
%4d的意思是将输出的整数补位成4个
水仙花数是指一个3位数
它的每个位上的数字的3次幂之和等于它本身
列如:1**3+5**3+3**3=153
# 水仙花数的判断 def isNarcissisticNumber(num): if num < 100 or num > 999: return False # 个位 a=num%10 # 十位 b=num//10%10 # 百位 c=num//100 return a**3+b**3+c**3==num print(isNarcissisticNumber(153)) print(isNarcissisticNumber(154)) def printNarcissisticNumber(): for i in range(100,1000): if isNarcissisticNumber(i): print(i,end='\t') printNarcissisticNumber()
递归:
概念:直接或间接的调用自己
练习
1+2+3+...+100
def get_sum1(num): result=0 for i in range(1,num+1): result+=i return result def get_sum2(num): if num==1: return 1 else: return num+get_sum2(num-1) print(get_sum1(100)) print(get_sum2(100)) # 递归错误:比较中超过了最大递归深度(RecursionError: maximum recursion depth exceeded in comparison) # print(get_sum2(1000))
栈内存溢出原理图
匿名函数:
关键字:Lambda
语法:Lambda 参数...:表达式
注意
1、匿名函数中可以存在0,1,多个参数
2、匿名函数中不能存在return语句
3、匿名函数运算完之后,只能得到一个值(返回值)
注意:一般函数的返回值可以存在0个,1个或者多个
如果函数返回多个值,接受的方式有两种:
1、只有一个接受
2、个数匹配
# 测试多个返回值问题
def testReturnValue():
return 1,2
result = testReturnValue()
# <class 'tuple'>
print(type(result))
# (1, 2)
print(result)
v1,v2=testReturnValue()
# <class 'int'>
print(type(v2))
# 1 2
print(v1,v2)
# 匿名函数
test1=lambda :print("没有参数")
test2=lambda a,b:a+b
test1()
print(test2(1, 2))
# 打印函数地址值
# <function <lambda> at 0x0000000002D92048>
print(test1)
# <function <lambda> at 0x0000000002D72158>
print(lambda :print("没有参数"))
over......
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有