博客信息

Python基础之函数应用

发布时间:『 2019-06-25 21:45』  博客类别:Python  阅读(583)

质数的判断


# 质数的判断
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))


栈内存溢出原理图

小李飞刀_Python


匿名函数(lambda)的使用

匿名函数:

关键字:Lambda

语法:Lambda 参数...:表达式

 

注意

1、匿名函数中可以存在01,多个参数

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......


关键字:     Python基础  

备案号:湘ICP备19000029号

Copyright © 2018-2019 javaxl晓码阁 版权所有