python知识点

1.什么是lambda函数?它有什么好处?

1).lambda的用法:
lambda是匿名函数,用法如下:lambda arg1,arg2..argN:expression using args
2).优点
lambda能和def做同样种类的工作,特别是对于那些逻辑简单的函数,直接用lambda会更简洁,
而且省去取函数名的麻烦(给函数取名是个技术活)
 
2.python中break、continue 、exit() 、pass区分 
 
1). break:跳出循环,不再执行
break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句
break语句用在while和for循环中
如果使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码
while True:
  print('123')
  break
print('456')
123
456
break是终止本次循环,比如有很多个for循环,你在其中一个for循环里写了一个break,满足条件,只会终止这个for里面的循环,程序会跳到上一层for循环继续往下走
for i in range(5):
    print("----%d----"%i)
    for j in range(5):
        if j>4:
            break
        print(j)
----0----
0
1
2
3
4

----2----
0
1
2
3
4
----3----
0
1
2
3
4
----4----
0
1
2
3
4

  

2)continue:跳出本次循环,执行下一次

continue语句跳出本次循环,而break跳出整个循环

continue语句用来告诉python跳过当前循环的剩余语句,然后继续进行下一轮循环

continue语句用在while和for循环中

例1:continue通过if判断触发,跳出当前一层for循环,终止‘h’输出,继续下一次for

for letter in 'python':
    if letter == 'h':
      continue
    print('当前字母:’,letter)
      
当前字母: p
当前字母: y
当前字母: t
当前字母: o
当前字母: n

例2:

var = 5
while var>0:
    var = var - 1
    if var == 3:
        continue
    print('当前变量值:',var)
print('good bye!')
当前变量值: 4
当前变量值: 2
当前变量值: 1
当前变量值: 0
good bye!

如果换成了break:

var = 5
while var>0:
    var = var - 1
    if var == 3:
        break
    print('当前变量值:',var)
print('good bye!')
当前变量值: 4
good bye!

例3:continue是循环到这个点的时候,执行continue这里的某些操作,执行完了以后,继续执行满足条件的这一层循环需要做的事情,不会终止这一循环(只会跳出这一次)

for j in range(10):
    if j>5 and j <=8:
        print('我是continue特殊')
        print(j)
我是continue特殊
6
我是continue特殊
7
我是continue特殊
8
for j in range(10):
    if j>5 and j <=8:
        print('我是continue特殊')
        continue
        print(j)
我是continue特殊
我是continue特殊
我是continue特殊

 

4)pass:不做任何事情,只起到占位的作用

for element in "Python":  
     if element == "y":  
         pass  
     else:  
         print(element)
P
t
h
o
n

3.python中return的用法

return语句就是将结果返回到调用的地方,并把程序的控制权一起返回

程序运行到所遇到的第一个return即返回(退出def块),不会再运行第二个return

def a(x,y):
    if x==y:
        return x,y
a(3,3)

(3,3)

但是也并不是意味着一个函数体中只能有一个return语句,例如:

def test_return(x):
    if x>0:
        return x
    else:
        return 0
test_return(3)

3

递归函数中没有return的情况

def gcd(a,b):
    if a%b == 0:
        return b
    else:
        gcd(b,a%b)

 4.python中‘if__name__ == '__main__':理解与总结

  在python中,如果代码写的规范一些,通常会写上一句’if__name__ == '__main__'作为程序的入口,但是似乎没有这么一句代码,程序也可以运行。

  程序入口

  对于java、c、c++,每次开启一个程序,都必须写一个主函数作为程序的入口,也就是我们常说的main函数,如下所示,main()就是Java中的一个main函数

public class HelloWorld {

    public static void main(String[] args) {

        System.out.println("HelloWorld")
    }
}    

  与java、c、c++等几种语言不同的是,python是一种解释型脚本语言,在执行之前不不要将所有代码编译为中间代码,python程序运行时是从魔快顶行开始,逐行进行翻译执行,所以,最顶层(没有被缩进)的代码都会被执行,所以python中并不需要一个统一的main()作为程序的入口。在某种意义上讲,‘if__name__=='__main__':也像是一个标志,象征着java等语言的程序主入口,告诉其他程序员,代码入口在此----这是’if__name__ == '__main__:'这条代码的意义之一。

  模块导入

  我们知道,当我们在模块b中import模块A时,即在b模块中import A时,只要B模块代码运行到该import语句,模块A的代码会被执行

  #模块A

a = 100
print('你好,我是模块A......')
print(a)

  #模块B

from package01 import A
b = 200
print('你好,我是模块B......')
print(b)

  运行模块B时,输出结果如下:

   你好,我是模块A……
    
  100

  你好,我是模块B……

  200

  如果我们A的有部分代码不想在B中运行,可以用‘if__name__ == '__main__'这行代码,可以对模块A进行修改

  #模块A

a = 100
print('你好,我是模块A.......')
if __name__ == '__main__':
    print(a)

  B模块不做修改,直接执行B模块,输出结果如下:

   你好,我是模块A……

  你好,我是模块B……

  200

  此时,A模块中a的值没有被输出,所以,当你要导入某个模块,但又不想该模块的部分代码被直接执行,那就可以把代码if __name__ == '__main__'放在内部

 

  __name__和__main__

  __name__是python的内置变量,用于指代当前模块,修改上面用到的A模块和B模块,在模块中分别输出模块的名称:

  #模块A

print('你好,我是模块A……')

print('模块A中__name__的值:{}'.format(__name__))

print('-------------------------')

 

  你好,我是模块A……

  模块A中__name__的值:__main__

  -------------------------

  

 #模块B

from package01 import A

print('你好,我是模块B……')

print('模块B中__name__的值:{}'.format(__name__))   #.fromat是传入对象
  你好,我是模块A……

  模块A中__name__的值:package01.A

  -------------------------

  你好,我是模块B……

  模块B中__name__的值:__main__

  当本模块被执行时,该模块‘__name__'的值就是’__main__',当被导入另一模块是,‘__name__’的值就是模块的真实名称

总结:当是本模块时if __name__ == '__main__'为True,__name__为__main__;如果是导入的话就是False,__name__ == package01.A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2019-10-16 18:41  瞧我这个笨脑袋  阅读(223)  评论(0)    收藏  举报