Python3从入门到放弃的修炼之路

679 阅读10分钟

这是我参与更文挑战的第16天,活动详情查看:更文挑战

  Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下兼容。 开发环境: PyCharm Python 3.6.3

1、查看python版本

我们可以使用以下命令来查看我们使用的Python版本:

python -V

以上命令执行结果如下:

版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
(venv) D:\PythonSpace\PythonLearning>python -V
Python 3.6.3

2、Python Hello World 程序

对于大多数程序语言,第一个入门编程代码便是"Hello World!",以下代码为使用Python输出"Hello World!":

#!/usr/bin/python3
print("Hello, World!")

你可以将以上代码保存在hello.py文件中并使用python命令执行该脚本文件。

python hello.py

以上命令输出结果为:

Hello, World!

3、Python3编码

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

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

4、Python3标识符

  • 第一个字符必须是字母表中字母或下划线'_'。
  • 标识符的其他的部分有字母、数字和下划线组成。
  • 标识符对大小写敏感。 在Python 3中,非-ASCII 标识符也是允许的了。

5、Python3保留字

保留字即关键字,我们不能把它们用作任何标识符名称。Python的标准库提供了一个keyword module,可以输出当前版本的所有关键字:

import keyword
print(keyword.kwlist)

输出:

['False', 'None', 'True', 'and', 'as', 'assert', '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']

6、Python3注释

Python中单行注释以#开头,多行注释用三个单引号(''')或者三个双引号(""")将注释括起来。

# 这是Python 单行注释
'''
这是一个多行注释
'''

"""
这是一个多行注释
"""

7、Python3行与缩进

Python最具特色的就是使用缩进来表示代码块。缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。 缩进不一致,会导致运行错误。

#python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 
if True:
    print ("True")
else:
    print ("False")

8、Python3数据类型

Python中数有四种类型:整数、长整数、浮点数和复数。

  • 整数, 如 1
  • 长整数 是比较大的整数
  • 浮点数 如 1.23、3E-2
  • 复数 如 1 + 2j、 1.1 + 2.2j
  • 没有 python2 中的 Long。

9、Python3字符串

  • python中单引号和双引号使用完全相同。
  • 使用三引号('''或""")可以指定一个多行字符串。
  • 转义符 ''
  • 自然字符串, 通过在字符串前加r或R。 如 r"this is a line with \n" 则\n会显示,并不是换行。
  • python允许处理unicode字符串,加前缀u或U, 如 u"this is an unicode string"。
  • 字符串是不可变的。
  • 按字面意义级联字符串,如"this " "is " "string"会被自动转换为this is string。

10、Python3 列表

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。 Python有6个序列的内置类型,但最常见的是列表和元组。序列都可以进行的操作包括索引,切片,加,乘,检查成员。此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:

list1 = ['Google', 'Runoob', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];

与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。

11、Python3元组

Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。 如下实例:

tup1 = ('Google', 'Runoob', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";   #  不需要括号也可以

查看数据类型print(type(tup3)) 输出:<class 'tuple'>

12、Python3 字典

字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。一个简单的字典实例:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };

13、Python3 条件控制

Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。Python中if语句的一般形式如下所示:

if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
else:
    statement_block_3

介绍如下:

  • 如果 "condition_1" 为 True 将执行 "statement_block_1" 块语句
  • 如果 "condition_1" 为False,将判断 "condition_2"
  • 如果"condition_2" 为 True 将执行 "statement_block_2" 块语句
  • 如果 "condition_2" 为False,将执行"statement_block_3"块语句

Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else。

注意:

1、每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
3、在Python中没有switchcase语句。

14、Python3 循环

  Python中的循环语句有 for 和 while。   while 循环 Python中while语句的一般形式:

while 判断条件:
   		statements

同样需要注意冒号和缩进。另外,在Python中没有do..while循环 for语句 Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。 for循环的一般格式如下:

for <variable> in <sequence>:
 	<statements>
else:
	<statements>
  • break和continue语句及循环中的else子句
  • break语句可以跳出for和while的循环体。如果你从for或while循环中终止,任何对应的循环else块将不执行。continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
  • range()函数
  • 如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列。

15、Python3 函数

  函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。 Python 定义函数使用 def 关键字,一般格式如下:

def  函数名(参数列表):
    函数体

  定义一个函数。你可以定义一个由自己想要功能的函数,以下是简单的规则:

  1、函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。

  2、任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。

  3、函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

  4、函数内容以冒号起始,并且缩进。

  5、return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

16、Python3 迭代器与生成器

  迭代是Python最强大的功能之一,是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter() 和 next()。字符串,列表或元组对象都可用于创建迭代器、迭代器对象可以使用常规for语句进行遍历。

  在 Python 中,使用了 yield 的函数被称为生成器(generator)。跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。调用一个生成器函数,返回的是一个迭代器对象。 迭代器示例如下:

list=[1,2,3,4]
it = iter(list)    # 创建迭代器对象
for x in it:
    print (x, end=" ")

生成器示例如下

import sys
def fibonacci(n): # 生成器函数 - 斐波那契
    a, b, counter = 0, 1, 0
    while True:
        if (counter > n):
            return
        yield a
        a, b = b, a + b
        counter += 1
f = fibonacci(10) # f 是一个迭代器,由生成器返回生成

while True:
    try:
        print (next(f), end=" ")
    except StopIteration:
        sys.exit()

17、Python3 模块

  用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。为此 Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块。模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。

  当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块 support,需要把命令放在脚本的顶端

  • from…import 语句:Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中。
  • from…import* 语句:把一个模块的所有内容全都导入到当前的命名空间也是可行的。
  • __name__属性:一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。

18、Python3 输出

  Python两种输出值的方式: 表达式语句和 print() 函数。(第三种方式是使用文件对象的 write() 方法; 标准输出文件可以用 sys.stdout 引用。)

  如果你希望输出的形式更加多样,可以使用 str.format() 函数来格式化输出值。

  如果你希望将输出的值转成字符串,可以使用 repr() 或 str() 函数来实现。

  • str() 函数返回一个用户易读的表达形式。
  • repr() 产生一个解释器易读的表达形式。

  Python3入门修炼之路就此开始......