Python3 入门笔记

Python: https://www.python.org/
没有别的原因, 就是想系统的学习一下Python. 该分类持续更新.

安装Python

当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。

CPython

当我们从Python官方网站下载并安装好Python 3.x后,我们就直接获得了一个官方版本的解释器:CPython。
这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。

安装步骤:

1
2
3
4
5
wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
tar -zxvf Python-3.7.1.tgz
cd Python-3.7.1
./configure --prefix=/usr/local/python3
make && make install

搭建开发环境

1
2
[root@caoxl python]# python3 --version
Python 3.7.1

pip安装开发Web App需要的第三方库:

  • 异步框架aiohttp
1
[root@caoxl python]# pip3 install aiohttp
  • 前端模板引擎jinja2
1
[root@caoxl python]# pip3 install jinja2
  • MySQL的Python异步驱动程序aiomysql
1
 

Python3 基础语法

代码结构:

1
2
3
#!/usr/bin/python3
#coding: UTF-8
print('Hello World')

编码

默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码:

1
# -*- coding: cp-1252 -*-

python保留字

1
2
3
4
5
6
7
[root@caoxl python]# python3
Python 3.7.1 (default, Dec 6 2018, 12:39:22)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

如何注释?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/python3
#coding: UTF-8

# 第一个注释
print('Hello World') # 第二个注释


'''
第三个注释
'''

"""
第四个注释
"""

行与缩进

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

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

1
2
3
4
5
6
if True:
print ("Answer")
print ("True")
else:
print ("Answer")
print ("False") # 缩进不一致,会导致运行错误

字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/python3
#coding: UTF-8

str='Python'

print (str) # 输出字符串
print (str[0:-1]) # 输出第一个到倒数第二个的所有字符
print (str[0]) # 输出字符串第一个字符
print (str[2:5]) # 输出从第三个开始到第五个的字符
print (str[2:]) # 输出从第三个开始的后面所有字符
print (str * 2) # 输出字符串两次
print (str + '你好') # 连接字符串

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

print('hello\npython') # 使用反斜杠(\)+n转义特殊字符
print(r'hello\npython') # 在字符串前面添加一个 r,表示原始字符串,不会发生转义

空行

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

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

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

等待用户输入

1
2
3
4
#!/usr/bin/python3
#coding: UTF-8

input("\n\n按下 enter 键后退出")

如何输出?

  • Print输出
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/python3

x="a"
y="b"
# 换行输出
print( x )
print( y )

print('---------')
# 不换行输出
print( x, end=" " )
print( y, end=" " )
print()

import 与 from…import

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

  • 将整个模块(somemodule)导入,格式为: import somemodule
  • 从某个模块中导入某个函数,格式为: from somemodule import somefunction
  • 从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
  • 将某个模块中的全部函数导入,格式为: from somemodule import *

标准数据类型

Python3 中有六个标准的数据类型:

  • Number(数字)
    • int、float、boo、complex(复数)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Set(集合)Dictionary(字典)

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

Python3 面向对象

面向对象技术简介

  • 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
  • 方法:类中定义的函数。
  • 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
  • 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。
  • 法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
  • 局部变量:定义在方法中的变量,只作用于当前实例的类。
  • 实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的
  • 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟”是一个(is-a)”关系(例图,Dog是一个Animal)。
  • 实例化:创建一个类的实例,类的具体对象。
  • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/python3
#coding: UTF-8

# 类定义
class people:
# 定义基本属性
name = ''
age = 0
# 定义私有属性, 私有属性在类外部无法直接进行访问
__weight = 0
# 定义构造方法
def __init__(self,n,a,w):
self.name = n
self.age = a
self.__weight = w
def speak(self):
print ("%s 说: 我 %d 岁" %(self.name, self.age))

# 实例化类
p = people('Python',24,30)
p.speak()

Powered by Hexo and Hexo-theme-hiker

Copyright © 2017 - 2021 Keep It Simple And Stupid All Rights Reserved.

访客数 : | 访问量 :