葵花宝典教程,一个自学编程平台

葵花宝典教程,一个自学编程平台

Python - 循环

一般来说,语句是按顺序执行的:函数中的第一条语句首先执行,然后是第二条,依此类推。可能存在需要多次执行一段代码的情况。


编程语言提供了各种控制结构,允许更复杂的执行路径。


循环语句允许我们多次执行一条语句或一组语句。下图说明了一个循环语句 -


循环架构

Python 编程语言提供以下类型的循环来处理循环要求。


编号 循环类型和描述

1 while 循环

当给定条件为 TRUE 时重复一个语句或一组语句。它在执行循环体之前测试条件。


2 for 循环

多次执行一系列语句并缩写管理循环变量的代码。


3 嵌套循环

您可以在任何另一个 while、for 或 do..while 循环中使用一个或多个循环。


循环控制语句

循环控制语句改变其正常顺序的执行。当执行离开一个范围时,在该范围内创建的所有自动对象都将被销毁。


Python 支持以下控制语句。单击以下链接以查看其详细信息。


让我们简要介绍一下循环控制语句


编号 控制声明和说明

1 中断语句

终止循环语句并将执行转移到紧随循环之后的语句。


2 继续声明

使循环跳过其主体的其余部分并在重新迭代之前立即重新测试其条件。


3 通过声明

Python 中的 pass 语句用于语法上需要语句但您不希望执行任何命令或代码时。


Python - 决策制定

决策是对程序执行时发生的条件的预测,并指定根据条件采取的行动。


决策结构评估产生 TRUE 或 FALSE 作为结果的多个表达式。如果结果为 TRUE 或 FALSE,您需要确定要采取的操作以及要执行的语句。


以下是大多数编程语言中典型决策结构的一般形式 -

decision_making.jpg

Python 中的决策语句

Python 编程语言将任何非零和非空值假定为 TRUE,如果它是零或null,则假定为 FALSE 值。


Python 编程语言提供以下类型的决策语句。单击以下链接以查看其详细信息。


编号 声明和说明

1 if 语句

if 语句由一个布尔表达式和一个或多个语句组成。


2 if...else 语句

if 语句后面可以跟可选的else语句,当布尔表达式为 FALSE 时执行。


3 嵌套 if 语句

您可以在另一个if或else if语句中使用一个if或else if语句。


让我们简要介绍一下每个决策 -


单人陈述套房

如果if子句套件仅包含一行,则它可能与标题语句位于同一行。


这是单行 if子句的示例 -


现场演示

#!/usr/bin/python


var = 100

if ( var == 100 ) : print "Value of expression is 100"

print "Good bye!"

执行上述代码时,会产生以下结果 -


Value of expression is 100

Good bye!


Python - 基本运算符

运算符是可以操纵操作数的值的构造。


考虑表达式 4 + 5 = 9。这里,4 和 5 称为操作数,+ 称为运算符。


运算符类型

Python 语言支持以下类型的运算符。


算术运算符

比较(关系)运算符

赋值运算符

逻辑运算符

位运算符

会员运营商

身份运算符

让我们一一了解所有运算符。


Python算术运算符

假设变量 a 为 10,变量 b 为 20,则 -


[显示示例]


操作员 描述 例子

+ 加法 在运算符的任一侧添加值。 a + b = 30

- 减法 从左手操作数中减去右手操作数。 a – b = -10

* 乘法 将运算符两边的值相乘 a * b = 200

/ 分配 将左手操作数除以右手操作数 b / a = 2

% 模量 将左手操作数除以右手操作数并返回余数 b % a = 0

** 指数 对算子执行指数(幂)计算 a**b =10 的 20 次方

// Floor Division - 操作数的除法,其结果是除去小数点后的数字的商。但是,如果其中一个操作数为负数,则结果为下限,即从零四舍五入(向负无穷大) - 9//2 = 4 和 9.0//2.0 = 4.0,-11//3 = -4,-11.0//3 = -4.0

Python 比较运算符

这些运算符比较它们两侧的值并确定它们之间的关系。它们也称为关系运算符。


假设变量 a 为 10,变量 b 为 20,则 -


[显示示例]


操作员 描述 例子

== 如果两个操作数的值相等,则条件成立。 (a == b) 不正确。

!= 如果两个操作数的值不相等,则条件为真。 (a != b) 是真的。

<> 如果两个操作数的值不相等,则条件为真。 (a <> b) 是真的。这类似于 != 运算符。

> 如果左操作数的值大于右操作数的值,则条件为真。 (a > b) 不正确。

< 如果左操作数的值小于右操作数的值,则条件为真。 (a < b) 为真。

>= 如果左操作数的值大于或等于右操作数的值,则条件为真。 (a >= b) 不正确。

<= 如果左操作数的值小于或等于右操作数的值,则条件为真。 (a <= b) 是真的。

Python 赋值运算符

假设变量 a 为 10,变量 b 为 20,则 -


[显示示例]


操作员 描述 例子

= 将右侧操作数的值分配给左侧操作数 c = a + b 将 a + b 的值赋给 c

+= 添加 AND 它将右操作数添加到左操作数并将结果分配给左操作数 c += a 等价于 c = c + a

-= 减和 它从左操作数中减去右操作数并将结果分配给左操作数 c -= a 等价于 c = c - a

*= 乘与 它将右操作数与左操作数相乘并将结果分配给左操作数 c *= a 等价于 c = c * a

/= 除以 AND 它将左操作数与右操作数相除并将结果分配给左操作数 c /= a 等价于 c = c / a

%= 模数与 它使用两个操作数取模并将结果分配给左操作数 c %= a 等价于 c = c % a

**= 指数与 对运算符执行指数(幂)计算并将值分配给左操作数 c **= a 等价于 c = c ** a

//= 楼层划分 它对运算符执行地板除法并将值分配给左操作数 c //= a 等价于 c = c // a

Python 位运算符

位运算符对位起作用并执行逐位运算。假设 a = 60;和 b = 13; 现在在二进制格式中,它们的值将分别为 0011 1100 和 0000 1101。下表列出了 Python 语言支持的按位运算符,每个运算符都有一个示例,我们使用上述两个变量(a 和 b)作为操作数 -


一个 = 0011 1100


b = 0000 1101


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


a&b = 0000 1100


a|b = 0011 1101


a^b = 0011 0001


~a = 1100 0011


Python 语言支持以下按位运算符


[显示示例]


操作员 描述 例子

& 二进制与 如果两个操作数中都存在,则运算符将位复制到结果中 (a & b) (表示 0000 1100)

| 二进制或 如果它存在于任一操作数中,它会复制一点。 (a | b) = 61(表示 0011 1101)

^ 二进制异或 如果它在一个操作数中设置,它会复制该位,但不是在两个操作数中都设置。 (a ^ b) = 49(表示 0011 0001)

~ 二进制补码 它是一元的,具有“翻转”位的效果。 (~a ) = -61 (由于有符号二进制数,表示 1100 0011 为 2 的补码形式。

<< 二进制左移 左操作数的值向左移动右操作数指定的位数。 a << 2 = 240(表示 1111 0000)

>> 二进制右移 左操作数的值向右移动右操作数指定的位数。 a >> 2 = 15(表示 0000 1111)

Python 逻辑运算符

Python 语言支持以下逻辑运算符。假设变量 a 保持 10 并且变量 b 保持 20 然后


[显示示例]


操作员 描述 例子

和逻辑与 如果两个操作数都为真,则条件为真。 (a 和 b) 是正确的。

或逻辑或 如果两个操作数中的任何一个不为零,则条件为真。 (a 或 b) 为真。

非逻辑非 用于反转其操作数的逻辑状态。 Not(a and b) 是假的。

Python 成员运算符

Python 的成员资格运算符测试序列中的成员资格,例如字符串、列表或元组。有两个会员运营商,如下所述 -


[显示示例]


操作员 描述 例子

如果找到指定序列中的变量,则评估为 true,否则评估为 false。 x in y,如果 x 是序列 y 的成员,则结果为 1。

不在 如果在指定序列中未找到变量,则评估为 true,否则评估为 false。 x 不在 y 中,如果 x 不是序列 y 的成员,则这里 not in 结果为 1。

Python 身份运算符

恒等运算符比较两个对象的内存位置。下面解释了两个身份运算符 -


[显示示例]


操作员 描述 例子

如果运算符两侧的变量指向同一对象,则计算结果为 true,否则计算结果为 false。 x 是 y,如果 id(x) 等于 id(y) ,则结果为 1。

不是 如果运算符两侧的变量指向同一对象,则计算结果为 false,否则计算结果为 true。 x 不是 y,如果 id(x) 不等于 id(y) ,这里的结果不是1。

Python 运算符优先级

下表列出了从最高优先级到最低优先级的所有运算符。


[显示示例]


编号 运营商和描述

1

**


求幂(乘幂)


2

~ + -


补码,一元加减(最后两个的方法名是 +@ 和 -@)


3

* / % //


乘法、除法、模数和底除法


4

+ -


加减


5

>> <<


左右位移


6

&


按位“与”


7

^ |


按位异或“或”和常规“或”


8

<= < > >=


比较运算符


9

<> == !=


等式运算符


10

= %= /= //= -= += *= **=


赋值运算符


11

不是


身份运算符


12

在 不在


会员运营商


13

不是或和


逻辑运算符


Python - 变量类型

变量只不过是用于存储值的保留内存位置。这意味着当您创建一个变量时,您会在内存中保留一些空间。


根据变量的数据类型,解释器分配内存并决定可以在保留内存中存储什么。因此,通过为变量分配不同的数据类型,您可以在这些变量中存储整数、小数或字符。


为变量赋值

Python 变量不需要显式声明来保留内存空间。当您为变量赋值时,声明会自动发生。等号 (=) 用于为变量赋值。


= 运算符左侧的操作数是变量的名称,= 运算符右侧的操作数是存储在变量中的值。例如 -


现场演示

#!/usr/bin/python


counter = 100          # An integer assignment

miles   = 1000.0       # A floating point

name    = "John"       # A string


print counter

print miles

print name

在这里,100、1000.0 和“John”分别是分配给counter、miles和name变量的值。这会产生以下结果 -


100

1000.0

John

多重赋值

Python 允许您同时为多个变量分配一个值。例如 -


a = b = c = 1

在这里,创建了一个值为 1 的整数对象,并将所有三个变量分配到相同的内存位置。您还可以将多个对象分配给多个变量。例如 -


a,b,c = 1,2,"john"

这里,两个值为 1 和 2 的整数对象分别分配给变量 a 和 b,一个值为“john”的字符串对象分配给变量 c。


标准数据类型

存储在内存中的数据可以有多种类型。例如,一个人的年龄存储为一个数值,他或她的地址存储为字母数字字符。Python 有各种标准数据类型,用于定义对它们可能进行的操作以及每种数据的存储方法。


Python 有五种标准数据类型 -


数字

细绳

列表

元组

字典

Python 数字

数字数据类型存储数值。Number 对象是在您为其赋值时创建的。例如 -


var1 = 1

var2 = 10

您还可以使用 del 语句删除对数字对象的引用。del 语句的语法是 -


del var1[,var2[,var3[....,varN]]]]

您可以使用 del 语句删除单个对象或多个对象。例如 -


del var

del var_a, var_b

Python 支持四种不同的数值类型 -


int(有符号整数)

long(长整数,也可以用八进制和十六进制表示)

float(浮点实数值)

复数(复数)

例子

以下是一些数字示例 -


整数 漂浮 复杂的

10 51924361L 0.0 3.14j

100 -0x19323L 15.20 45.j

-786 0122L -21.9 9.322e-36j

080 0xDEFABCECBDAECBFBAEl 32.3+e18 .876j

-0490 535633629843L -90。 -.6545+0J

-0x260 -052318172735L -32.54e100 3e+26J

0x69 -4721885298529L 70.2-E12 4.53e-7j

Python 允许您将小写的 l 与 long 一起使用,但建议您仅使用大写的 L 以避免与数字 1 混淆。Python 使用大写的 L 显示长整数。


复数由一对有序的实数浮点数组成,用 x + yj 表示,其中 x 和 y 是实数,j 是虚数单位。


Python 字符串

Python 中的字符串被标识为引号中表示的一组连续字符。Python 允许使用成对的单引号或双引号。可以使用切片运算符([ ] 和 [:] )获取字符串的子集,索引从字符串开头的 0 开始,最后从 -1 开始。


加号 (+) 是字符串连接运算符,星号 (*) 是重复运算符。例如 -


现场演示

#!/usr/bin/python


str = 'Hello World!'


print str          # Prints complete string

print str[0]       # Prints first character of the string

print str[2:5]     # Prints characters starting from 3rd to 5th

print str[2:]      # Prints string starting from 3rd character

print str * 2      # Prints string two times

print str + "TEST" # Prints concatenated string

这将产生以下结果 -


Hello World!

H

llo

llo World!

Hello World!Hello World!

Hello World!TEST

Python 列表

列表是 Python 中最通用的复合数据类型。列表包含用逗号分隔并括在方括号 ([]) 中的项目。在某种程度上,列表类似于 C 中的数组。它们之间的一个区别是属于列表的所有项目可以是不同的数据类型。


可以使用切片运算符([ ] 和 [:])访问存储在列表中的值,索引从列表开头的 0 开始,并以它们的方式结束 -1。加号 (+) 是列表连接运算符,星号 (*) 是重复运算符。例如 -


#!/usr/bin/python


list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]

tinylist = [123, 'john']


print list          # Prints complete list

print list[0]       # Prints first element of the list

print list[1:3]     # Prints elements starting from 2nd till 3rd 

print list[2:]      # Prints elements starting from 3rd element

print tinylist * 2  # Prints list two times

print list + tinylist # Prints concatenated lists

这会产生以下结果 -


['abcd', 786, 2.23, 'john', 70.2]

abcd

[786, 2.23]

[2.23, 'john', 70.2]

[123, 'john', 123, 'john']

['abcd', 786, 2.23, 'john', 70.2, 123, 'john']

Python 元组

元组是另一种类似于列表的序列数据类型。元组由多个用逗号分隔的值组成。然而,与列表不同的是,元组用括号括起来。


列表和元组之间的主要区别是:列表括在方括号 ( [ ] ) 中,并且它们的元素和大小可以更改,而元组括在括号 ( ( ) ) 中并且不能更新。元组可以被认为是只读列表。例如 -


现场演示

#!/usr/bin/python


tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )

tinytuple = (123, 'john')


print tuple               # Prints the complete tuple

print tuple[0]            # Prints first element of the tuple

print tuple[1:3]          # Prints elements of the tuple starting from 2nd till 3rd 

print tuple[2:]           # Prints elements of the tuple starting from 3rd element

print tinytuple * 2       # Prints the contents of the tuple twice

print tuple + tinytuple   # Prints concatenated tuples

这会产生以下结果 -


('abcd', 786, 2.23, 'john', 70.2)

abcd

(786, 2.23)

(2.23, 'john', 70.2)

(123, 'john', 123, 'john')

('abcd', 786, 2.23, 'john', 70.2, 123, 'john')

以下代码对元组无效,因为我们试图更新一个元组,这是不允许的。列表可能会出现类似情况 -


#!/usr/bin/python


tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )

list = [ 'abcd', 786 , 2.23, 'john', 70.2  ]

tuple[2] = 1000    # Invalid syntax with tuple

list[2] = 1000     # Valid syntax with list

Python字典

Python 的字典是一种哈希表类型。它们像 Perl 中的关联数组或散列一样工作,由键值对组成。字典键几乎可以是任何 Python 类型,但通常是数字或字符串。另一方面,值可以是任意 Python 对象。


字典用大括号 ({ }) 括起来,并且可以使用方括号 ([]) 分配和访问值。例如 -


现场演示

#!/usr/bin/python


dict = {}

dict['one'] = "This is one"

dict[2]     = "This is two"


tinydict = {'name': 'john','code':6734, 'dept': 'sales'}



print dict['one']       # Prints value for 'one' key

print dict[2]           # Prints value for 2 key

print tinydict          # Prints complete dictionary

print tinydict.keys()   # Prints all the keys

print tinydict.values() # Prints all the values

这会产生以下结果 -


This is one

This is two

{'dept': 'sales', 'code': 6734, 'name': 'john'}

['dept', 'code', 'name']

['sales', 6734, 'john']

字典没有元素之间的顺序概念。说元素“乱序”是不正确的;它们只是无序的。


数据类型转换

有时,您可能需要在内置类型之间执行转换。要在类型之间进行转换,您只需将类型名称用作函数。


有几个内置函数可以执行从一种数据类型到另一种数据类型的转换。这些函数返回一个表示转换后的值的新对象。


编号 功能说明

1

整数(x [,基数])


将 x 转换为整数。如果 x 是字符串,base 指定基数。


2

长(x [,base] )


将 x 转换为长整数。如果 x 是字符串,base 指定基数。


3

浮动(x)


将 x 转换为浮点数。


4

复数(实数 [,imag])


创建一个复数。


5

字符串(x)


将对象 x 转换为字符串表示形式。


6

代表(x)


将对象 x 转换为表达式字符串。


7

评估(字符串)


计算一个字符串并返回一个对象。


8

元组


将 s 转换为元组。


9

列表


将 s 转换为列表。


10

套)


将 s 转换为集合。


11

听写(d)


创建字典。d 必须是 (key,value) 元组的序列。


12

冻结集


将 s 转换为冻结集。


13

chr(x)


将整数转换为字符。


14

unichr(x)


将整数转换为 Unicode 字符。


15

排序(x)


将单个字符转换为其整数值。


16

十六进制(x)


将整数转换为十六进制字符串。


17

八月(x)


将整数转换为八进制字符串。


Python - 基本语法

Python 语言与 Perl、C 和 Java 有许多相似之处。但是,语言之间存在一些明确的差异。


第一个 Python 程序

让我们以不同的编程模式执行程序。


交互模式编程

在不将脚本文件作为参数传递的情况下调用解释器会出现以下提示 -


$ python

Python 2.4.3 (#1, Nov 11 2010, 13:34:43)

[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>>

在 Python 提示符下键入以下文本,然后按 Enter -


>>> print "Hello, Python!"

如果您正在运行新版本的 Python,那么您需要使用带括号的 print 语句,如print ("Hello, Python!"); . 但是在 Python 2.4.3 版本中,这会产生以下结果 -


Hello, Python!

脚本模式编程

使用脚本参数调用解释器开始执行脚本并继续执行,直到脚本完成。脚本完成后,解释器不再处于活动状态。


让我们在脚本中编写一个简单的 Python 程序。Python 文件的扩展名为.py。在 test.py 文件中键入以下源代码 -


现场演示

print "Hello, Python!"

我们假设您在 PATH 变量中设置了 Python 解释器。现在,尝试按如下方式运行该程序 -


$ python test.py

这会产生以下结果 -


Hello, Python!

让我们尝试另一种方式来执行 Python 脚本。这是修改后的 test.py 文件 -


现场演示

#!/usr/bin/python


print "Hello, Python!"

我们假设您在 /usr/bin 目录中有可用的 Python 解释器。现在,尝试按如下方式运行该程序 -


$ chmod +x test.py     # This is to make file executable

$./test.py

这会产生以下结果 -


Hello, Python!

Python 标识符

Python 标识符是用于标识变量、函数、类、模块或其他对象的名称。标识符以字母 A 到 Z 或 a 到 z 或下划线 (_) 开头,后跟零个或多个字母、下划线和数字(0 到 9)。


Python 不允许在标识符中使用标点符号,例如 @、$ 和 %。Python 是一种区分大小写的编程语言。因此,Manpower和manpower在 Python 中是两个不同的标识符。


以下是 Python 标识符的命名约定 -


类名以大写字母开头。所有其他标识符都以小写字母开头。


以单个前导下划线开头的标识符表示该标识符是私有的。


以两个前导下划线开头的标识符表示高度私有的标识符。


如果标识符也以两个尾随下划线结尾,则标识符是语言定义的特殊名称。


保留字

以下列表显示了 Python 关键字。这些是保留字,您不能将它们用作常量或变量或任何其他标识符名称。所有 Python 关键字仅包含小写字母。


执行 不是

断言 最后 要么

休息 为了 经过

班级 打印

继续 全球的 增加

定义 如果 返回

德尔 进口 尝试

小精灵 尽管

别的

除了 拉姆达 屈服

线条和缩进

Python 没有提供大括号来指示类和函数定义或流控制的代码块。代码块由行缩进表示,这是严格执行的。


缩进中的空格数是可变的,但块中的所有语句必须缩进相同的数量。例如 -


if True:

   print "True"

else:

   print "False"

但是,以下块会产生错误 -


if True:

print "Answer"

print "True"

else:

print "Answer"

print "False"

因此,在 Python 中,所有缩进相同数量空格的连续行将形成一个块。以下示例具有各种语句块 -


注意- 此时不要试图理解逻辑。只要确保您理解各种块,即使它们没有大括号。


#!/usr/bin/python


import sys


try:

   # open file stream

   file = open(file_name, "w")

except IOError:

   print "There was an error writing to", file_name

   sys.exit()

print "Enter '", file_finish,

print "' When finished"

while file_text != file_finish:

   file_text = raw_input("Enter text: ")

   if file_text == file_finish:

      # close the file

      file.close

      break

   file.write(file_text)

   file.write("\n")

file.close()

file_name = raw_input("Enter filename: ")

if len(file_name) == 0:

   print "Next time please enter something"

   sys.exit()

try:

   file = open(file_name, "r")

except IOError:

   print "There was an error reading file"

   sys.exit()

file_text = file.read()

file.close()

print file_text

多行语句

Python 中的语句通常以新行结束。然而,Python 允许使用行继续符 (\) 来表示该行应该继续。例如 -


total = item_one + \

        item_two + \

        item_three

[]、{} 或 () 括号内的语句不需要使用续行符。例如 -


days = ['Monday', 'Tuesday', 'Wednesday',

        'Thursday', 'Friday']

Python中的引用

Python 接受单引号 (')、双引号 (") 和三引号 (''' 或 """) 来表示字符串文字,只要相同类型的引号开始和结束字符串。


三引号用于跨多行跨越字符串。例如,以下所有内容都是合法的 -


word = 'word'

sentence = "This is a sentence."

paragraph = """This is a paragraph. It is

made up of multiple lines and sentences."""

Python 中的注释

不在字符串文字内的井号 (#) 开始注释。# 之后直到物理行末尾的所有字符都是注释的一部分,Python 解释器会忽略它们。


现场演示

#!/usr/bin/python


# First comment

print "Hello, Python!" # second comment

这会产生以下结果 -


Hello, Python!

您可以在语句或表达式之后的同一行上键入注释 -


name = "Madisetti" # This is again comment

您可以如下评论多行 -


# This is a comment.

# This is a comment, too.

# This is a comment, too.

# I said that already.

Python 解释器也会忽略以下三引号字符串,并可用作多行注释:


'''

This is a multiline

comment.

'''

使用空行

仅包含空格(可能带有注释)的行称为空行,Python 完全忽略它。


在交互式解释器会话中,您必须输入一个空的物理行来终止多行语句。


等待用户

程序的以下行显示提示,语句为“Press the enter key to exit”,并等待用户采取行动 -


#!/usr/bin/python


raw_input("\n\nPress the enter key to exit.")

这里,“\n\n”用于在显示实际行之前创建两个新行。一旦用户按下该键,程序就结束。这是一个很好的技巧,可以在用户完成应用程序之前保持控制台窗口打开。


单行上的多个语句

分号 ( ; ) 允许在单行上有多个语句,因为这两个语句都不启动新的代码块。这是使用分号的示例片段 -


import sys; x = 'foo'; sys.stdout.write(x + '\n')

多语句组作为套件

一组单独的语句组成一个代码块,在 Python中称为套件。复合或复杂语句,例如 if、while、def 和 class 需要标题行和套件。


标题行以语句开头(使用关键字)并以冒号 ( : ) 结尾,然后是组成套件的一行或多行。例如 -


if expression : 

   suite

elif expression : 

   suite 

else : 

   suite

命令行参数

可以运行许多程序来为您提供一些关于它们应该如何运行的基本信息。Python 使您可以使用 -h 执行此操作 -


$ python -h

usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...

Options and arguments (and corresponding environment variables):

-c cmd : program passed in as string (terminates option list)

-d     : debug output from parser (also PYTHONDEBUG=x)

-E     : ignore environment variables (such as PYTHONPATH)

-h     : print this help message and exit


[ etc. ]

您还可以对脚本进行编程,使其接受各种选项。命令行参数是一个高级主题,一旦你了解了 Python 的其余概念,就应该稍后再学习。


Python - 环境设置

Python 可在各种平台上使用,包括 Linux 和 Mac OS X。让我们了解如何设置 Python 环境。


本地环境设置

打开终端窗口并键入“python”以查看它是否已安装以及安装了哪个版本。


Unix(Solaris、Linux、FreeBSD、AIX、HP/UX、SunOS、IRIX 等)

赢得 9x/NT/2000

Macintosh(英特尔、PPC、68K)

操作系统/2

DOS(多个版本)

掌上操作系统

诺基亚手机

视窗 CE

橡子/RISC 操作系统

操作系统

阿米加

虚拟机/OpenVMS

QNX

VxWorks

心灵术士

Python 也已移植到 Java 和 .NET 虚拟机

获取 Python

最新和最新的源代码、二进制文件、文档、新闻等,可在 Python 的官方网站https://www.python.org/


您可以从https://www.python.org/doc/下载 Python 文档。该文档以 HTML、PDF 和 PostScript 格式提供。


安装 Python

Python 发行版可用于各种平台。您只需下载适用于您的平台的二进制代码并安装 Python。


如果您的平台的二进制代码不可用,您需要一个 C 编译器来手动编译源代码。编译源代码在选择安装所需的功能方面提供了更大的灵活性。


这是在各种平台上安装 Python 的快速概述 -


Unix 和 Linux 安装

以下是在 Unix/Linux 机器上安装 Python 的简单步骤。


打开 Web 浏览器并转到https://www.python.org/downloads/。


按照链接下载可用于 Unix/Linux 的压缩源代码。


下载并解压文件。


如果要自定义某些选项,请编辑Modules/Setup文件。


运行 ./configure 脚本


制作


进行安装


这会将 Python 安装在标准位置/usr/local/bin及其库在/usr/local/lib/pythonXX,其中 XX 是 Python 的版本。


视窗安装

以下是在 Windows 机器上安装 Python 的步骤。


打开 Web 浏览器并转到https://www.python.org/downloads/。


按照 Windows 安装程序python-XYZ.msi文件的链接,其中 XYZ 是您需要安装的版本。


要使用此安装程序python-XYZ.msi,Windows 系统必须支持 Microsoft Installer 2.0。将安装程序文件保存到您的本地计算机,然后运行它以查看您的计算机是否支持 MSI。


运行下载的文件。这会调出 Python 安装向导,它非常易于使用。只需接受默认设置,等到安装完成,您就完成了。


麦金塔安装

最近的 Mac 都安装了 Python,但它可能已经过时了好几年。请参阅http://www.python.org/download/mac/获取有关获取当前版本以及支持 Mac 上开发的额外工具的说明。对于 Mac OS X 10.3(2003 年发布)之前的旧 Mac OS,可以使用 MacPython。


Jack Jansen 维护它,您可以在他的网站上完全访问整个文档 - http://www.cwi.nl/~jack/macpython.html。您可以找到 Mac OS 安装的完整安装详细信息。


设置路径

程序和其他可执行文件可以位于许多目录中,因此操作系统提供了一个搜索路径,其中列出了操作系统搜索可执行文件的目录。


路径存储在环境变量中,该变量是操作系统维护的命名字符串。此变量包含可用于命令 shell 和其他程序的信息。


路径变量在Unix 中命名为 PATH 或在 Windows 中命名为 Path(Unix 区分大小写;Windows 不区分)。


在 Mac OS 中,安装程序会处理路径详细信息。要从任何特定目录调用 Python 解释器,您必须将 Python 目录添加到您的路径中。


在 Unix/Linux 上设置路径

将 Python 目录添加到 Unix 中特定会话的路径 -


在 csh shell - 键入 setenv PATH "$PATH:/usr/local/bin/python" 并按 Enter。


在 bash shell (Linux) - 键入 export PATH="$PATH:/usr/local/bin/python" 并按 Enter。


在 sh 或 ksh shell - 键入 PATH="$PATH:/usr/local/bin/python" 并按 Enter。


注意- /usr/local/bin/python 是 Python 目录的路径


在 Windows 中设置路径

将 Python 目录添加到 Windows 中特定会话的路径 -


在命令提示符处- 键入路径 %path%;C:\Python 并按 Enter。


注意- C:\Python 是 Python 目录的路径


Python 环境变量

以下是 Python 可以识别的重要环境变量 -


编号 变量和描述

1

蟒蛇路径


它的作用类似于 PATH。这个变量告诉 Python 解释器在哪里找到导入到程序中的模块文件。它应该包括 Python 源库目录和包含 Python 源代码的目录。PYTHONPATH 有时由 Python 安装程序预设。


2

Python启动


它包含包含 Python 源代码的初始化文件的路径。每次启动解释器时都会执行它。它在 Unix 中被命名为 .pythonrc.py,它包含加载实用程序或修改 PYTHONPATH 的命令。


3

蟒蛇


它在 Windows 中用于指示 Python 在导入语句中查找第一个不区分大小写的匹配项。将此变量设置为任何值以激活它。


4

蟒蛇之家


这是一个替代模块搜索路径。它通常嵌入在 PYTHONSTARTUP 或 PYTHONPATH 目录中,以便轻松切换模块库。


运行 Python

有三种不同的方式来启动 Python -


交互式口译员

您可以从 Unix、DOS 或任何其他为您提供命令行解释器或 shell 窗口的系统启动 Python。


在命令行输入python 。


立即在交互式解释器中开始编码。


$python # Unix/Linux

or

python% # Unix/Linux

or

C:> python # Windows/DOS

这是所有可用命令行选项的列表 -


编号 选项和说明

1

-d


它提供调试输出。


2

-O


它生成优化的字节码(生成 .pyo 文件)。


3

-S


不要在启动时运行导入站点来查找 Python 路径。


4

-v


详细输出(导入语句的详细跟踪)。


5

-X


禁用基于类的内置异常(只使用字符串);从 1.6 版开始已过时。


6

-c 命令


运行作为 cmd 字符串发送的 Python 脚本


7

文件


从给定文件运行 Python 脚本


命令行中的脚本

通过在应用程序上调用解释器,可以在命令行执行 Python 脚本,如下所示 -


$python script.py # Unix/Linux


or


python% script.py # Unix/Linux


or 


C: >python script.py # Windows/DOS

注意- 确保文件权限模式允许执行。


集成开发环境

如果您的系统上有支持 Python 的 GUI 应用程序,您也可以从图形用户界面 (GUI) 环境运行 Python。


Unix - IDLE 是第一个用于 Python 的 Unix IDE。


Windows - PythonWin 是 Python 的第一个 Windows 界面,是一个带有 GUI 的 IDE。


Macintosh - Macintosh 版本的 Python 和 IDLE IDE 可从主网站获得,可作为 MacBinary 或 BinHex'd 文件下载。


如果您无法正确设置环境,则可以向系统管理员寻求帮助。确保 Python 环境设置正确并且运行良好。


注意- 后续章节中给出的所有示例均使用 CentOS 风格的 Linux 上可用的 Python 2.4.3 版本执行。


我们已经在线搭建了 Python 编程环境,让您在学习理论的同时可以在线执行所有可用的示例。随意修改任何示例并在线执行。


Python - 环境设置

Python 可在各种平台上使用,包括 Linux 和 Mac OS X。让我们了解如何设置 Python 环境。


本地环境设置

打开终端窗口并键入“python”以查看它是否已安装以及安装了哪个版本。


Unix(Solaris、Linux、FreeBSD、AIX、HP/UX、SunOS、IRIX 等)

赢得 9x/NT/2000

Macintosh(英特尔、PPC、68K)

操作系统/2

DOS(多个版本)

掌上操作系统

诺基亚手机

视窗 CE

橡子/RISC 操作系统

操作系统

阿米加

虚拟机/OpenVMS

QNX

VxWorks

心灵术士

Python 也已移植到 Java 和 .NET 虚拟机

获取 Python

最新和最新的源代码、二进制文件、文档、新闻等,可在 Python 的官方网站https://www.python.org/


您可以从https://www.python.org/doc/下载 Python 文档。该文档以 HTML、PDF 和 PostScript 格式提供。


安装 Python

Python 发行版可用于各种平台。您只需下载适用于您的平台的二进制代码并安装 Python。


如果您的平台的二进制代码不可用,您需要一个 C 编译器来手动编译源代码。编译源代码在选择安装所需的功能方面提供了更大的灵活性。


这是在各种平台上安装 Python 的快速概述 -


Unix 和 Linux 安装

以下是在 Unix/Linux 机器上安装 Python 的简单步骤。


打开 Web 浏览器并转到https://www.python.org/downloads/。


按照链接下载可用于 Unix/Linux 的压缩源代码。


下载并解压文件。


如果要自定义某些选项,请编辑Modules/Setup文件。


运行 ./configure 脚本


制作


进行安装


这会将 Python 安装在标准位置/usr/local/bin及其库在/usr/local/lib/pythonXX,其中 XX 是 Python 的版本。


视窗安装

以下是在 Windows 机器上安装 Python 的步骤。


打开 Web 浏览器并转到https://www.python.org/downloads/。


按照 Windows 安装程序python-XYZ.msi文件的链接,其中 XYZ 是您需要安装的版本。


要使用此安装程序python-XYZ.msi,Windows 系统必须支持 Microsoft Installer 2.0。将安装程序文件保存到您的本地计算机,然后运行它以查看您的计算机是否支持 MSI。


运行下载的文件。这会调出 Python 安装向导,它非常易于使用。只需接受默认设置,等到安装完成,您就完成了。


麦金塔安装

最近的 Mac 都安装了 Python,但它可能已经过时了好几年。请参阅http://www.python.org/download/mac/获取有关获取当前版本以及支持 Mac 上开发的额外工具的说明。对于 Mac OS X 10.3(2003 年发布)之前的旧 Mac OS,可以使用 MacPython。


Jack Jansen 维护它,您可以在他的网站上完全访问整个文档 - http://www.cwi.nl/~jack/macpython.html。您可以找到 Mac OS 安装的完整安装详细信息。


设置路径

程序和其他可执行文件可以位于许多目录中,因此操作系统提供了一个搜索路径,其中列出了操作系统搜索可执行文件的目录。


路径存储在环境变量中,该变量是操作系统维护的命名字符串。此变量包含可用于命令 shell 和其他程序的信息。


路径变量在Unix 中命名为 PATH 或在 Windows 中命名为 Path(Unix 区分大小写;Windows 不区分)。


在 Mac OS 中,安装程序会处理路径详细信息。要从任何特定目录调用 Python 解释器,您必须将 Python 目录添加到您的路径中。


在 Unix/Linux 上设置路径

将 Python 目录添加到 Unix 中特定会话的路径 -


在 csh shell - 键入 setenv PATH "$PATH:/usr/local/bin/python" 并按 Enter。


在 bash shell (Linux) - 键入 export PATH="$PATH:/usr/local/bin/python" 并按 Enter。


在 sh 或 ksh shell - 键入 PATH="$PATH:/usr/local/bin/python" 并按 Enter。


注意- /usr/local/bin/python 是 Python 目录的路径


在 Windows 中设置路径

将 Python 目录添加到 Windows 中特定会话的路径 -


在命令提示符处- 键入路径 %path%;C:\Python 并按 Enter。


注意- C:\Python 是 Python 目录的路径


Python 环境变量

以下是 Python 可以识别的重要环境变量 -


编号 变量和描述

1

蟒蛇路径


它的作用类似于 PATH。这个变量告诉 Python 解释器在哪里找到导入到程序中的模块文件。它应该包括 Python 源库目录和包含 Python 源代码的目录。PYTHONPATH 有时由 Python 安装程序预设。


2

Python启动


它包含包含 Python 源代码的初始化文件的路径。每次启动解释器时都会执行它。它在 Unix 中被命名为 .pythonrc.py,它包含加载实用程序或修改 PYTHONPATH 的命令。


3

蟒蛇


它在 Windows 中用于指示 Python 在导入语句中查找第一个不区分大小写的匹配项。将此变量设置为任何值以激活它。


4

蟒蛇之家


这是一个替代模块搜索路径。它通常嵌入在 PYTHONSTARTUP 或 PYTHONPATH 目录中,以便轻松切换模块库。


运行 Python

有三种不同的方式来启动 Python -


交互式口译员

您可以从 Unix、DOS 或任何其他为您提供命令行解释器或 shell 窗口的系统启动 Python。


在命令行输入python 。


立即在交互式解释器中开始编码。


$python # Unix/Linux

or

python% # Unix/Linux

or

C:> python # Windows/DOS

这是所有可用命令行选项的列表 -


编号 选项和说明

1

-d


它提供调试输出。


2

-O


它生成优化的字节码(生成 .pyo 文件)。


3

-S


不要在启动时运行导入站点来查找 Python 路径。


4

-v


详细输出(导入语句的详细跟踪)。


5

-X


禁用基于类的内置异常(只使用字符串);从 1.6 版开始已过时。


6

-c 命令


运行作为 cmd 字符串发送的 Python 脚本


7

文件


从给定文件运行 Python 脚本


命令行中的脚本

通过在应用程序上调用解释器,可以在命令行执行 Python 脚本,如下所示 -


$python script.py # Unix/Linux


or


python% script.py # Unix/Linux


or 


C: >python script.py # Windows/DOS

注意- 确保文件权限模式允许执行。


集成开发环境

如果您的系统上有支持 Python 的 GUI 应用程序,您也可以从图形用户界面 (GUI) 环境运行 Python。


Unix - IDLE 是第一个用于 Python 的 Unix IDE。


Windows - PythonWin 是 Python 的第一个 Windows 界面,是一个带有 GUI 的 IDE。


Macintosh - Macintosh 版本的 Python 和 IDLE IDE 可从主网站获得,可作为 MacBinary 或 BinHex'd 文件下载。


如果您无法正确设置环境,则可以向系统管理员寻求帮助。确保 Python 环境设置正确并且运行良好。


注意- 后续章节中给出的所有示例均使用 CentOS 风格的 Linux 上可用的 Python 2.4.3 版本执行。


我们已经在线搭建了 Python 编程环境,让您在学习理论的同时可以在线执行所有可用的示例。随意修改任何示例并在线执行。


Python - 概述

Python 是一种高级的、解释性的、交互式的和面向对象的脚本语言。Python 被设计为具有高度可读性。它经常使用英语关键字,而其他语言使用标点符号,并且它的句法结构比其他语言少。


  • Python is Interpreted - Python 在运行时由解释器处理。您无需在执行程序之前对其进行编译。这类似于 PERL 和 PHP。


  • Python is Interactive - 您实际上可以坐在 Python 提示符下并直接与解释器交互以编写程序。


  • Python is Object-Oriented - Python 支持将代码封装在对象中的面向对象风格或编程技术。


  • Python is a Beginner's Language - Python 是初级程序员的一门很棒的语言,支持从简单的文本处理到 WWW 浏览器再到游戏的各种应用程序的开发。


Python的历史

Python 由 Guido van Rossum 在 80 年代末和 90 年代初在荷兰国家数学和计算机科学研究所开发。


Python 衍生自许多其他语言,包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk 以及 Unix shell 和其他脚本语言。


Python 受版权保护。与 Perl 一样,Python 源代码现在可以在 GNU 通用公共许可证 (GPL) 下获得。


Python 现在由该研究所的一个核心开发团队维护,尽管 Guido van Rossum 仍然在指导其进展方面发挥着至关重要的作用。


Python 功能

Python 的功能包括 -


  • Easy-to-learn - Python 关键字少,结构简单,语法定义清晰。这使学生能够快速掌握语言。


  • Easy-to-read - Python 代码的定义更清晰,对眼睛可见。


  • Easy-to-maintain - Python 的源代码相当容易维护。


  • 广泛的标准库- Python 的大部分库在 UNIX、Windows 和 Macintosh 上非常便携且跨平台兼容。


  • 交互模式- Python 支持交互模式,允许交互测试和调试代码片段。


  • Portable - Python 可以在各种硬件平台上运行,并且在所有平台上都具有相同的接口。


  • 可扩展- 您可以将低级模块添加到 Python 解释器。这些模块使程序员能够添加或定制他们的工具以提高效率。


  • Databases - Python 提供所有主要商业数据库的接口。


  • GUI Programming - Python 支持可以创建并移植到许多系统调用、库和 Windows 系统的 GUI 应用程序,例如 Windows MFC、Macintosh 和 Unix 的 X Window 系统。


  • Scalable - Python 为大型程序提供了比 shell 脚本更好的结构和支持。


除了上述特性外,Python 还有一大堆好特性,下面列出的很少 -


  • 它支持函数式和结构化编程方法以及 OOP。


  • 它可以用作脚本语言,也可以编译为字节码以构建大型应用程序。


  • 它提供了非常高级的动态数据类型并支持动态类型检查。


  • 它支持自动垃圾回收。


  • 它可以轻松地与 C、C++、COM、ActiveX、CORBA 和 Java 集成。


Python 教程

Python是一种通用的解释型、交互式、面向对象的高级编程语言。它由 Guido van Rossum 在 1985-1990 年间创建。与 Perl 一样,Python 源代码也可以在 GNU 通用公共许可证 (GPL) 下获得。教程对Python 编程语言有足够的了解。

为什么要学习 Python?

Python是一种高级的、解释性的、交互式的和面向对象的脚本语言。Python 被设计为具有高度可读性。它经常使用英语关键字,而其他语言使用标点符号,并且它的句法结构比其他语言少。

Python是学生和专业人士在 Web 开发领域工作时成为优秀软件工程师的必备工具。我将列出学习 Python 的一些主要优势:

  • Python is Interpreted - Python 在运行时由解释器处理。您无需在执行程序之前对其进行编译。这类似于 PERL 和 PHP。

  • Python is Interactive - 您实际上可以坐在 Python 提示符下并直接与解释器交互以编写程序。

  • Python is Object-Oriented - Python 支持将代码封装在对象中的面向对象风格或编程技术。

  • Python is a Beginner's Language - Python 是初级程序员的一门很棒的语言,支持从简单的文本处理到 WWW 浏览器再到游戏的各种应用程序的开发。

Python的特点

以下是Python 编程的重要特征-

  • 它支持函数式和结构化编程方法以及 OOP。

  • 它可以用作脚本语言,也可以编译为字节码以构建大型应用程序。

  • 它提供了非常高级的动态数据类型并支持动态类型检查。

  • 它支持自动垃圾回收。

  • 它可以轻松地与 C、C++、COM、ActiveX、CORBA 和 Java 集成。

使用 Python 的 Hello World。

只是为了让大家对 Python 有一点点小兴奋,我将给大家一个常规的 Python Hello World 小程序,大家可以使用 Demo 链接进行尝试。

print ("Hello, Python!");


Python的应用

如前所述,Python 是网络上使用最广泛的语言之一。我将在这里列出其中的几个:

  • Easy-to-learn - Python 关键字少,结构简单,语法定义清晰。这使学生能够快速掌握语言。

  • Easy-to-read - Python 代码的定义更清晰,对眼睛可见。

  • Easy-to-maintain - Python 的源代码相当容易维护。

  • 广泛的标准库- Python 的大部分库在 UNIX、Windows 和 Macintosh 上非常便携且跨平台兼容。

  • 交互模式- Python 支持交互模式,允许交互测试和调试代码片段。

  • Portable - Python 可以在各种硬件平台上运行,并且在所有平台上都具有相同的接口。

  • 可扩展- 您可以将低级模块添加到 Python 解释器。这些模块使程序员能够添加或定制他们的工具以提高效率。

  • Databases - Python 提供所有主要商业数据库的接口。

  • GUI Programming - Python 支持可以创建并移植到许多系统调用、库和 Windows 系统的 GUI 应用程序,例如 Windows MFC、Macintosh 和 Unix 的 X Window 系统。

  • Scalable - Python 为大型程序提供了比 shell 脚本更好的结构和支持。

观众

Python 教程专为需要从头开始学习 Python 编程语言的软件程序员而设计。


Golang中channel使用的一些小技巧

关闭2次

ch := make(chan bool) 

close(ch) 

close(ch)  // 这样会panic的,channel不能close两次 


读取的时候channel提前关闭了


ch := make(chan string) 

close(ch) 

i := <- ch // 不会panic, i读取到的值是空 "",  如果channel是bool的,那么读取到的是false 


向已经关闭的channel写数据







ch := make(chan string) 


close(ch) 


ch <- "good" // 会panic的 


判断channel是否close






i, ok := <- ch 


if ok { 


    println(i) 


} else { 


    println("channel closed") 



for循环读取channel




for i := range ch { // ch关闭时,for循环会自动结束 


    println(i) 



防止读取超时






select { 


    case <- time.After(time.Second*2): 


        println("read channel timeout") 


    case i := <- ch: 


        println(i) 



防止写入超时






// 其实和读取超时很像 


select { 


    case <- time.After(time.Second *2): 


        println("write channel timeout") 


    case ch <- "hello": 


        println("write ok") 


}



<< < 1 2 3 4 5 6 7 8 9 10 > >>

Copyright www.jennal.cn Rights Reserved葵花宝典教程.鄂icp2022001145号-1

分享:

支付宝

微信