Python入门学习

2020-08-10  本文已影响0人  我要进大厂

基本语法

注释

多行注释可以用多个 # 号,还有 '''"""

Print 输出

print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=""

空行

函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。

记住:空行也是程序代码的一部分。

行与缩进

python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {}

缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。

if __name__ == "__main__": {
    main()
}

等价于:

if __name__ == "__main__":
    main()

from 和 from ... import

在 python 用 import 或者 from...import 来导入相应的模块。

将整个模块(somemodule)导入,格式为: import somemodule,而import 包名,也可以理解成将包下的--__init__.py这个模块全部导入。

从某个模块中导入某个函数,格式为: from somemodule import somefunction

from package import somemodule:理解为,从某个包导入某个模块

从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc

将某个模块中的全部函数导入,格式为: from somemodule import *

类名用骆驼式风格:

image-20200808131551017

方法名用小写:

image-20200808121032518

return

函数、方法后面return不能想scala那样省略。

return "我想吃饭"

方法

==类的方法与普通的函数只有一个特别的区别==——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。(self代表类的实例,而非类)

class Test:
    def prt(self):
        print(self)
        print(self.__class__)
 
t = Test()
t.prt()

以上实例执行结果为:

<__main__.Test instance at 0x100771878>
__main__.Test

从执行结果可以很明显的看出,self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类。

self 不是 python 关键字,我们把他换成 runoob 也是可以正常执行的:

class Test:
    def prt(runoob):
        print(runoob)
        print(runoob.__class__)
 
t = Test()
t.prt()

以上实例执行结果为:

<__main__.Test instance at 0x100771878>
__main__.Test

类变量和实例变量

'''
  类变量通常不作为实例变量使用。因为,Python的类变量,并不像java的静态变量。
  通过对象去更改类变量,并不会更改类变量原先的值。此时的类变量已经变成实例变量。
  所以,我们操作类变量,用类去操作,而非对象去操作。除非,你知道你要做什么。
  https://www.jianshu.com/p/86f27ceadfeb
'''
img

模块、包、库的区别

模块

模块:一个.py文件,就称为一个模块。里面定义了一些函数和变量,需要的时候就可以导入这些模块。

包是在模块之上的概念,为了方便管理而将文件进行分包。

而包下,有一个__init__.py文件,用于区别一般目录。

可以把包看成一个模块,这个模块对应的.py文件,就是包下的__init__.py。即:__init__.py本身就是一个模块,而它的模块名就是包名==(包名也是模块名)==。

import urllib 只是导入了urrlib包下的__init__.py模块(__init__.py模块名为包名:urllib。)

import urllib模块后,还是无法使用urllib包下的request模块,这是因为只导入了__init__.py这个文件(模块)。所以想使用urllib包下的request模块需要使用:

import urllib.request   (这个的话,每次都必须使用urllib.request作为模块名)
或者
from urllib import request (可以使用request作为模块名,省略urllib)
image-20200808151106081

可以往包下的__init__.py写内容

image-20200808104418740 image-20200808104815058

具有相关功能模块的集合。这也是Python的一大特色之一,即具有强大的标准库、第三方库以及自定义模块。只不过,Python中,很少说library,正常的话,都是说module。

这模块、包、库三个概念实际上都是模块,只不过是个体和集合的区别。

部分参考:

Python中包、库与模块的区别

上一篇 下一篇

猜你喜欢

热点阅读