我是靠谱客的博主 柔弱西装,最近开发中收集的这篇文章主要介绍Python3简明教程之2基础Python3基础,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Python3基础

语法简介

Python是一种计算机编程语言。

任何一种编程语言都有自己的一套语法,

编译器或者解释器就是负责把符合语法的程序代码转换成CPU能够执行的机器码,

然后执行。

Python也有自己的解释器。

 

Python的语法比较简单,采用缩进方式

写出来的代码就像下面的样子:

# print absolute value of an integer:

a = 100

if a >= 0:

    print(a)

else:

    print(-a)

  1. 注释:

以#开头的语句是注释,注释是给人看的,

可以是任意内容,解释器会忽略掉注释。

 

  1. 语句:

每一行都是一个语句,当语句以冒号:结尾时,

缩进的语句视为代码块。

 

  1. 缩进:

按照约定俗成的管理,应该始终坚持使用4个空格的缩进。

缩进的另一个好处是强迫你写出缩进较少的代码。

缩进的坏处就是“复制-粘贴”功能失效了,

IDE很难像格式化Java代码那样格式化Python代码。

 

  1. 大小写敏感

请务必注意,Python程序是大小写敏感的,如果写错了大小写,程序会报错。

 

  1. 注意:

Python使用缩进来组织代码块,

请务必遵守约定俗成的习惯,

坚持使用4个空格的缩进。

 

在文本编辑器中,需要设置把Tab自动转换为4个空格,

确保不混用Tab和空格。

 

 

基础语法

 

Python 标识符

  1. 标识符:

Python 中的标识符由字母、数字、下划线组成,

Python 中的标识符但不能以数字开头

Python 中的标识符是区分大小写的。

 

  1. 以下划线开头的标识符是有特殊意义的

以单下划线开头 _foo 的代表不能直接访问的类属性,

需通过类提供的接口进行访问;

 

  1. 以双下划线开头的 标识符 代表类的私有成员

以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,

如 __init__()代表类的构造函数。

 

  1. 同一行显示多条语句

Python 可以同一行显示多条语句,方法是用分号 ; 分开,如:

>>> print 'hello';print 'freencre';

hello

freencre

 

Python 保留字

下面的列表显示了在Python中的保留字。

这些保留字不能用作常数或变数,或任何其他标识符名称。

所有 Python 的关键字只包含小写字母。

and

exec

not

assert

finally

or

break

for

pass

class

from

print

continue

global

raise

def

if

return

del

import

try

elif

in

while

else

is

with

except

lambda

yield

 

行和缩进

学习 Python 与其他语言最大的区别就是,

Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。

python 最具特色的就是用缩进来写模块。

缩进的空白数量是可变的,

但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。

如下所示:

if True:

    print "True"

else:

print "False"

 

 

多行语句

Python语句中一般以新行作为为语句的结束符

  1. 使用多行连接符

但是我们可以使用斜杠( )将一行的语句分为多行显示,如下所示:

total = item_one + 

        item_two + 

        item_three

 

  1. 不使用多行连接符

语句中包含 [], {} 或 () 括号就不需要使用多行连接符

如下实例:

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

        'Thursday', 'Friday']

 

Python 引号

Python 可以使用引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串,

引号的开始与结束必须的相同类型的。

 

三引号可以由多行组成,编写多行文本的快捷语法,

三引号常用于文档字符串,在文件的特定地点,被当做注释。

word = 'word'

sentence = "这是一个句子。"

paragraph = """这是一个段落。

包含了多个语句"""

 

Python注释

  1. 单行注释

python中单行注释采用 # 开头。

注释可以在语句或表达式行末:

# 第一个注释

print "Hello, Python!";  # 第二个注释

输出结果:

Hello, Python!

 

  1. 多行注释

python 中多行注释使用三个单引号(''')或三个双引号(""")。

 

'''

这是多行注释,使用单引号。

这是多行注释,使用单引号。

'''

 

"""

这是多行注释,使用双引号。

这是多行注释,使用双引号。

"""

 

同一行显示多条语句

Python可以在同一行中使用多条语句,

语句之间使用分号(;)分割

 

以下是一个简单的实例:

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

 

Print 输出

print 默认输出是换行的

如果要实现不换行需要在变量末尾加上逗号 ,

方法一:

x=10; y=20

print(x, y)

方法二:

print('contents', end='!@#$%^&*')

end就表示print将如何结束,默认为end="n"(换行)

x=10; y=20

print(x, end= ’)

print(y)

 

 

数据类型

数据类型

计算机能处理数值,

还可以处理文本、图形、音频、视频、网页等各种各样的数据,

不同的数据,需要定义不同的数据类型。

在Python中,能够直接处理的数据类型有以下几种:

 

整数

Python可以处理任意大小的整数,包括负整数,

在程序中的表示方法和数学上的写法一模一样,

例如:1,100,-8080,0,等等。

 

计算机由于使用二进制,有时候用十六进制表示整数比较方便,

十六进制用0x前缀和0-9,a-f表示,

例如:0xff00,0xa5b4c3d2,等等。

 

浮点数

浮点数也就是小数,之所以称为浮点数,

一个浮点数的小数点位置是可变的,

比如,1.23x(10^9)9和12.3x(10^8)是完全相等的。

 

浮点数可以用数学写法,如1.23,3.14,-9.01,等等。

但是对于很大或很小的浮点数,就必须用科学计数法表示,

把10用e替代,

1.23x(10^9)就是1.23e9,或者12.3e8,

0.00011可以写成1.1e-4。

 

整数和浮点数在计算机内部存储的方式是不同的,

整数运算永远是精确的,

而浮点数运算则可能会有四舍五入的误差。

 

字符串

字符串是以单引号'双引号"括起来的任意文本

请注意,''或""本身只是一种表示方式,不是字符串的一部分,

因此,字符串'abc'只有a,b,c这3个字符。

 

单引号'本身也是一个字符,可以用""括起来,

比如"I'm OK"包含的字符是I,',m,空格,O,K这6个字符。

 

转义字符:

如果字符串内部既包含'又包含"怎么办?

可以用转义字符来标识,比如:

'I'm "OK"!'

表示的字符串内容是:

I'm "OK"!

转义字符可以转义很多字符,比如:

n表示换行,

t表示制表符,

字符本身也要转义,所以\表示的字符就是,

 

可以在Python的交互式命令行用print()打印字符串看看:

>>> print('I'm learningnPython.')

I'm learning

Python.

 

 

默认不转义

如果字符串里面有很多字符都需要转义,就需要加很多,

为了简化,Python还允许用r''表示''内部的字符串默认不转义:

 

多行内容

如果字符串内部有很多换行,用n写在一行里不好阅读,

为了简化,Python允许用'''...'''的格式表示多行内容

str='''

... hello

... python

... bye'''

print(str)

 

布尔值

在Python中,布尔值和布尔代数的表示完全一致,

一个布尔值只有True、False两种值(请注意大小写),

要么是True,要么是False.

 

布尔值可以用and、or和not运算:

and:逻辑与; or:逻辑或;  not逻辑非

 

空值

空值是Python里一个特殊的值,用None表示。

None不能理解为0,因为0是有意义的,

而None是一个特殊的空值。

对应其它语言的null

 

 

 

常量和变量

变量

在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。

变量在程序中就是用一个 变量名 来表示,

变量名必须是大小写英文字母、数字和_的组合,且不能用数字开头,

a = 1  # 变量a是一个整数。

name = 'cat007'  # 变量name是一个字符串。

Answer = True  # 变量Answer是一个布尔值True。

 

赋值符号

在Python中,等号=是赋值语句

可以把任意数据类型赋值给变量,

同一个变量可以反复赋值,而且可以是不同类型的变量,

请不要把赋值语句的等号等同于数学的等号。

例如:

a = 123 # a是整数

print(a)

a = 'ABC' # a变成了字符串

print(a)

 

动态语言

这种变量类型不固定的语言称之为动态语言,与之对应的是静态语言。

静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。

例如Java是静态语言,赋值语句如下(// 表示注释):

int a = 123; // a是整数类型变量

a = "ABC"; // 错误:不能把字符串赋给整型变量

和静态语言相比,动态语言更灵活,就是这个原因。

 

 

常量

所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。

在Python中,通常用全部大写的变量名表示常量:

比如:PI = 3.14159265359

但事实上PI仍然是一个变量,

Python根本没有任何机制保证PI不会被改变,

所以,用全部大写的变量名来表示常量只是一个习惯上的用法

 

除法

在Python中,有两种除法,

一种除法是/: 小数运算,精确。

一种除法是//: 整数运算,取整。

 

>>> 10 / 3

3.3333333333333335

  1. /除法【单除】:

计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:

>>> 9 / 3

3.0

  1. 除法//【双除】,称为地板除(向下取整),

两个整数的除法仍然是整数:

>>> 10 // 3

3

整数的地板除//永远是整数,即使除不尽。

要做精确的除法,就需要使用/。

求余

因为//除法只取结果的整数部分,

Python还提供一个余数运算%,可以得到两个整数相除的余数:

>>> 10 % 3

1

无论整数做//除法还是取余数,结果永远是整数。

 

 

运算符

 

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

  1. 算术运算符
  2. 比较(关系)运算符
  3. 赋值运算符
  4. 逻辑运算符
  5. 位运算符
  6. 成员运算符
  7. 身份运算符
  8. 运算符优先级

 

Python算术运算符

以下假设变量: a=10,b=20

运算符

描述

实例

+

加 - 两个对象相加

a + b 输出结果 30

-

减 - 得到负数或是一个数减去另一个数

a - b 输出结果 -10

*

乘 - 两个数相乘或是返回一个被重复若干次的字符串

a * b 输出结果 200

/

除 - x除以y

b / a 输出结果 2

%

取模 - 返回除法的余数

b % a 输出结果 0

**

幂 - 返回x的y次幂

a**b 为10的20次方, 输出结果 100000000000000000000

//

取整除 - 返回商的整数部分

9//2 输出结果 4 , 9.0//2.0 输出结果 4.0

 

 

Python比较运算符

以下假设变量a为10,变量b为20:

运算符

描述

实例

==

等于 - 比较对象是否相等

(a == b) 返回 False。

!=

不等于 - 比较两个对象是否不相等

(a != b) 返回 true.

<>

不等于 - 比较两个对象是否不相等

注意:在python3.x中已经取消了该运算符。

(a <> b) 返回 true。这个运算符类似 != 。

>

大于 - 返回x是否大于y

(a > b) 返回 False。

<

小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。

(a < b) 返回 true。

>=

大于等于 - 返回x是否大于等于y。

(a >= b) 返回 False。

<=

小于等于 - 返回x是否小于等于y。

(a <= b) 返回 true。

 

Python赋值运算符

以下假设变量a为10,变量b为20:

运算符

描述

实例

=

简单的赋值运算符

c = a + b 将 a + b 的运算结果赋值为 c

+=

加法赋值运算符

c += a 等效于 c = c + a

-=

减法赋值运算符

c -= a 等效于 c = c - a

*=

乘法赋值运算符

c *= a 等效于 c = c * a

/=

除法赋值运算符

c /= a 等效于 c = c / a

%=

取模赋值运算符

c %= a 等效于 c = c % a

**=

幂赋值运算符

c **= a 等效于 c = c ** a

//=

取整除赋值运算符

c //= a 等效于 c = c // a

 

 

 

 

Python位运算符

按位运算符是把数字看作二进制来进行计算的。

Python中的按位运算法则如下:

 

运算符

描述

实例

&

按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0

(a & b) 输出结果 12 ,二进制解释: 0000 1100

|

按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。

(a | b) 输出结果 61 ,二进制解释: 0011 1101

^

按位异或运算符:当两对应的二进位相异时,结果为1

(a ^ b) 输出结果 49 ,二进制解释: 0011 0001

~

按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1

(~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。

<<

左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。

a << 2 输出结果 240 ,二进制解释: 1111 0000

>>

右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数

a >> 2 输出结果 15 ,二进制解释: 0000 1111

 

 

Python逻辑运算符

Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:

运算符

逻辑表达式

描述

实例

and

x and y

布尔"与" - 如果 x 为 False,x and y 返回 False,

否则它返回 y 的计算值。

(a and b) 返回 20。

or

x or y

布尔"或" - 如果 x 是非 0,它返回 x 的值,

否则它返回 y 的计算值。

(a or b) 返回 10。

not

not x

布尔"非" - 如果 x 为 True,返回 False 。

如果 x 为 False,它返回 True。

not(a and b) 返回 False

 

 

Python成员运算符

Python还支持成员运算符,

测试实例中包含了一系列的成员,包括字符串,列表或元组。

运算符

描述

实例

in

如果在指定的序列中

找到值返回 True,否则返回 False。

x 在 y 序列中 , 如果 x 在 y 序列中返回 True。

not in

如果在指定的序列中

没有找到值返回 True,否则返回 False。

x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

 

Python身份运算符

身份运算符用于比较两个对象的存储单元

运算符

描述

实例

is

is 是判断两个标识符是不是引用自一个对象

x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False

is not

is not 是判断两个标识符是不是引用自不同对象

x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

注: id() 函数用于获取对象内存地址。

 

 

 

Python运算符优先级

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

运算符

描述

**

指数 (最高优先级)

~ + -

按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)

* / % //

乘,除,取模和取整除

+ -

加法减法

>> <<

右移,左移运算符

&

位 'AND'

^ |

位运算符

<= < > >=

比较运算符

<> == !=

等于运算符

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

赋值运算符

is is not

身份运算符

in not in

成员运算符

not or and

逻辑运算符

 

 

 

字符编码

字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题。

因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。

最早的计算机在设计时采用8个比特(bit)作为一个字节(byte)

所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),

 

如果要表示更大的整数,就必须用更多的字节。

比如两个字节可以表示的最大整数是65535,

4个字节可以表示的最大整数是4294967295。

ASCII编码

最早只有127个字符被编码到计算机里,

也就是大小写英文字母、数字和一些符号,

这个编码表被称为ASCII编码,

比如大写字母A的编码是65,小写字母a的编码是97。

 

中文编码:

要处理中文显然一个字节是不够的,至少需要两个字节,

而且还不能和ASCII编码冲突,

所以,中国制定了GB2312编码,用来把中文编进去。

 

其它编码:

全世界有上百种语言,

日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里,

各国有各国的标准,就会不可避免地出现冲突,

结果就是,在多语言混合的文本中,显示出来会有乱码。

 

Unicode编码

Unicode应运而生(世界编码大一统)。

Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

Unicode标准用两个字节表示一个字符。

现代操作系统和大多数编程语言都直接支持Unicode。

 

 

字符串

Python 字符串

字符串是 Python 中最常用的数据类型。

我们可以使用引号('或")来创建字符串。

创建字符串很简单,只要为变量分配一个值即可。例如:

var1 = 'Hello World!'

var2 = "Python Freencre"

 

 

Python访问字符串中的值

Python不支持单字符类型

单字符也在Python也是作为一个字符串使用。

Python访问子字符串,

可以使用方括号来截取字符串,如下实例:

var1 = 'Hello World!'

print("var1[0]: ", var1[0])

 

Python字符串更新

可以对已存在的字符串进行修改,并赋值给另一个变量,

如下实例:

var1 = 'Hello World!'

print(var1)

var1 = 'Hello freencre!'

print(var1)

 

Python转义字符

在需要在字符中使用特殊字符时,python用反斜杠()转义字符。如下表:

转义字符

描述

(在行尾时)

续行符

\

反斜杠符号

'

单引号

"

双引号

a

响铃

n

换行

t

横向制表符

r

回车

 

Python字符串运算符

下表实例变量 a 值为字符串 "Hello",b 变量值为 "Python":

操作符

描述

实例

+

字符串连接

>>>a + b 'HelloPython'

*

重复输出字符串

>>>a * 2 'HelloHello'

[]

通过索引获取字符串中字符,下标0开始

>>>a[1] 'e'

[ : ]

截取字符串中的一部分

>>>a[1:4] 'ell'

in

成员运算符 - 如果字符串中包含给定的字符返回 True

>>>"H" in a True

not in

成员运算符 - 如果字符串中不包含给定的字符返回 True

>>>"M" not in a True

r/R

原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。

>>>print r'n' n >>> print R'n' n

%

格式字符串

 

 

 

 

 

Python 字符串格式化

Python 支持格式化字符串的输出 。

尽管这样可能会用到非常复杂的表达式,

但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

 

在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。

如下实例:

print("name is %s, weight is %d kg!" % ('Freencre', 21) )

 

python字符串格式化符号:

    符   号

描述

      %c

 格式化字符及其ASCII码

      %s

 格式化字符串

      %d

 格式化整数

      %u

 格式化无符号整型

      %o

 格式化无符号八进制数

      %x

 格式化无符号十六进制数

      %X

 格式化无符号十六进制数(大写)

      %f

 格式化浮点数字,可指定小数点后的精度

      %e

 用科学计数法格式化浮点数

      %E

 作用同%e,用科学计数法格式化浮点数

      %g

 %f和%e的简写

      %G

 %f 和 %E 的简写

      %p

 用十六进制数格式化变量的地址

 

 

Python三引号(triple quotes)

python中三引号可以将复杂的字符串进行复制:

python三引号允许一个字符串跨多行,

字符串中可以包含换行符、制表符以及其他特殊字符。

 

三引号的语法是一对连续的单引号或者双引号(通常都是成对的用)。

 >>> hi = '''hi

there'''

 

三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,

自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。

一个典型的用例是,当你需要一块HTML或者SQL时,

这时用字符串组合,特殊字符串转义将会非常的繁琐。

infoHTML = '''

<HTML><HEAD><TITLE>

Friends Demo</TITLE></HEAD>

<BODY><H3>Hello</H3>

<B>%s</B><P>

<FORM><INPUT TYPE=button VALUE=Back

ONCLICK="alert(Hello,world)"></FORM>

</BODY></HTML>

'''

 

 

 

Unicode 字符串

Python 中定义一个 Unicode 字符串和定义一个普通字符串一样简单:

>>> u'Hello World !'

引号前小写的"u"表示这里创建的是一个 Unicode 字符串。

 

在最新的Python 3版本中,字符串是以Unicode编码的,

也就是说,Python3的字符串支持多语言,例如:

>>> print('包含中文的str')

 

对于单个字符的编码,

Python提供了

ord()函数获取字符的整数表示,

chr()函数把编码转换为对应的字符:

>>> ord('A')

65

>>> ord('中')

20013

 

 

 

 

字节流bytes

由于Python的字符串类型是str

在内存中以Unicode表示,

一个字符对应若干个字节。

 

如果要在网络上传输,或者保存到磁盘上,

就需要把str变为以字节为单位的bytes

 

Python对bytes类型的数据用带b前缀的单引号或双引号表示:

例如:x = b'ABC'

要注意区分'ABC'b'ABC'

前者是str,后者虽然内容显示得和前者一样,

bytes的每个字符都只占用一个字节。

 

encode()方法

在操作字符串时,我们经常遇到str和bytes的互相转换。

为了避免乱码问题,应当始终坚持使用UTF-8编码对str和bytes进行转换。

 

以Unicode表示的str通过encode()方法可以编码为指定的bytes,例如:

>>> 'ABC'.encode('ascii')

b'ABC'

>>> '中文'.encode('utf-8')

b'xe4xb8xadxe6x96x87'

 

 

 

 

 

列表List

List简介

Python 列表(List),也叫序列。

列表是Python中最基本的数据结构。

列表中的每个元素都分配一个数字(位置,或索引),

第一个索引是0,第二个索引是1,依此类推。

 

列表是最常用的Python数据类型,

它可以作为一个方括号内的逗号分隔值出现。

列表的数据项不需要具有相同的类型

 

创建列表

只要把逗号分隔的不同的数据项使用方括号括起来即可。

如下所示:

list1 = ['apple', 'banana', 2008, True];

list2 = [1, 2, 3, 4, 5 ];

list3 = ["a", "b", "c", "d"];

 

访问列表

与字符串的索引一样,列表索引从0开始。

列表可以进行截取、组合等。

 

访问列表中的值

使用下标索引来访问列表中的值,

同样你也可以使用方括号的形式截取字符,

如下所示:

list1 = ['apple', 'banana', 2008, True];

list2 = [1, 2, 3, 4, 5, 6, 7 ];

print(list1[0])

print(list2[1:5])

更新列表

可以对列表的数据项进行修改或更新,

也可以使用append()方法来添加列表项,

如下所示:

list1 = ['apple', 'banana', 2008, True];

list1.append(2018)

print(list1)

 

 

删除列表元素

可以使用 del 语句来删除列表的的元素,

如下实例:

list1 = ['apple', 'banana', 2008, True];

del list1[1]

print(list1)

 

列表操作符

列表对 + 和 * 的操作符与字符串相似。

+号 用于组合列表,

*号 用于重复列表。

如下所示:

Python 表达式

结果

描述

len([1, 2, 3])

3

长度

[1, 2, 3] + [4, 5, 6]

[1, 2, 3, 4, 5, 6]

组合

['Hi!'] * 3

['Hi!', 'Hi!', 'Hi!']

重复

3 in [1, 2, 3]

True

元素是否存在于列表中

for x in [1, 2, 3]: print(x,)

1 2 3

迭代

 

列表截取

Python 的列表截取实例如下:

>>> L = ['apple', 'banana', 'watermelon']

>>> L[2]

>>> L[-2]

>>> L[1:]

描述:

Python 表达式

结果

描述

L[2]

' watermelon '

读取列表中第三个元素

L[-2]

' banana '

读取列表中倒数第二个元素

L[1:]

['banana', 'watermelon']

从第二个元素开始截取列表

 

 

元组:tuple

Python的元组与列表类似,不同之处在于元组的元素不能修改

元组使用小括号,列表使用方括号。

 

创建元组

元组创建很简单,

只需要在一对圆括号中添加元素,并使用逗号隔开即可。

如下实例:

tup1 = ('apple', 'banana', 2018, True);

tup2 = (1, 2, 3, 4, 5 )

tup3 = "a", "b", "c", "d"

 

创建空元组

tup1 = ();

 

创建只包含一个元素的元组

元组中只包含一个元素时,需要在元素后面添加逗号

tup1 = (50,);

 

 

 

访问元组

元组与字符串类似,下标索引从0开始,可以进行截取,组合等。

元组可以使用下标索引来访问元组中的值,

如下实例:

tup1 = ('apple', 'banana', 2018, True);

tup2 = (1, 2, 3, 4, 5 )

print( tup1[0])

print(tup2[1:3])

 

修改元组

元组中的元素值是不允许修改的

但我们可以对元组进行连接组合,

如下实例:

tup1 = (12, 34);

tup2 = ('abc', 'xyz');

 

# 以下修改元组元素操作是非法的。

# tup1[0] = 100;

 

# 创建一个新的元组

tup3 = tup1 + tup2;

print(tup3)

 

删除元组

元组中的元素值是不允许删除的

但我们可以使用del语句来删除整个元组,

如下实例:

tup1 = ('apple', 'banana', 2018, True);;

print(tup1)

del tup1;

print(tup1)

以上实例元组被删除后,输出变量会有异常信息,

 

 

元组运算符

与字符串一样,元组之间可以使用 +号 *号 进行运算。

这就意味着它们可以组合和复制,运算后会生成一个新的元组。

Python 表达式

结果

描述

len((1, 2, 3))

3

计算元素个数

(1, 2, 3) + (4, 5, 6)

(1, 2, 3, 4, 5, 6)

连接

('Hi!',) * 3

('Hi!', 'Hi!', 'Hi!')

复制

3 in (1, 2, 3)

True

元素是否存在

for x in (1, 2, 3): print(x)

1 2 3

迭代

 

元组索引,截取

因为元组也是一个序列,

所以我们可以访问元组中的指定位置的元素

也可以截取一段元素

如下所示:

L = ('aaa', 'bbb', 'ccc')

Python 表达式

结果

描述

L[2]

'ccc'

读取第三个元素

L[-2]

'bbb'

反向读取;读取倒数第二个元素

L[1:]

('bbb', 'ccc')

截取元素

 

无关闭分隔符

任意 无符号的对象,以逗号隔开,默认为元组

如下实例:

a=1,2,3,'e'

b=(1,2,3,'e')

元组内置函数

Python元组包含了以下内置函数

序号

方法及描述

a

len(tuple)  计算元组元素个数。

b

max(tuple)  返回元组中元素最大值。

c

min(tuple)  返回元组中元素最小值。

d

tuple(seq) 将列表转换为元组。

 

 

 

字典:dict

dict简介

Python内置了字典:dict的支持,dict全称dictionary,

类似于其他语言中的map,使用键-值(key-value)存储,具有极快的查找速度。

 

字典是另一种可变容器模型,且可存储任意类型对象

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,

整个字典包括在花括号({})中 ,

格式如下所示:

d = {key1 : value1, key2 : value2 }

 

键必须是唯一的,但值则不必

值可以取任何数据类型,

但键必须是不可变的,如字符串,数字或元组。

一个简单的字典实例:

dict = {'aaa': 123, 'bbb': 251, 'ccc': 325}

 

dict原理

类似于查字典,

首先在字典的索引表里(比如部首表)查这个字对应的页码,

然后直接翻到该页,找到这个字。

无论找哪个字,这种查找速度都非常快,

不会随着字典大小的增加而变慢。

 

dict就是这种实现方式,给定一个名字,比如'apple',

dict在内部就可以直接计算出apple对应的存放成绩的“页码”,

也就是具体的内存地址,直接取出来,所以速度非常快。

 

这种key-value存储方式,在放进去的时候,

必须根据key算出value的存放位置,

这样,取的时候才能根据key直接拿到value。

 

dict特点

和list比较,dict有以下几个特点:

 

查找和插入的速度极快,不会随着key的增加而变慢;

需要占用大量的内存,内存浪费多。

 

而list相反:

查找和插入的时间随着元素的增加而增加;

占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法。

 

dict可以用在需要高速查找的很多地方,

在Python代码中几乎无处不在,正确使用dict非常重要,

需要牢记的第一条就是dict的key必须是不可变对象

 

这是因为dict根据key来计算value的存储位置,

如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。

这个通过key计算位置的算法称为哈希算法(Hash)

 

 

 

 

访问字典里的值

把相应的放入熟悉的方括弧,

如果用字典里没有的键 访问数据,会输出错误:

如下实例:

dict = {'aaa': 123, 'bbb': 251, 'ccc': 325}

print( dict['aaa'] )

print( dict['ccc'] )

print( dict['ddd'] )

 

 

 

修改字典

增加新的键/值对,

修改或删除已有键/值对

如下实例:

dict = {'aaa': 123, 'bbb': 251, 'ccc': 325}

dict['ddd'] = 888

   print(dict)

 

 

删除字典元素

  1. 删除单一的元素
  2. 清空字典。

如下实例:

dict = {'aaa': 123, 'bbb': 251, 'ccc': 325}

del dict['aaa'];print(dict)

dict.clear();print(dict) #清空后,该字典依然存在

del dict #del之后,该字典消失了 

 

集合:set

创建集合

python的set和其他语言类似, 是一个无序不重复元素集,

作为一个无序的集合,sets不记录元素位置或者插入点。

 

 

 

集合用于包含一组无序的对象。

创建集合:大括号或 set() 函数可以用来创建集合。

注意:想要创建空集合,必须使用 set() 而不是 {},后者用于创建空字典

比如:

a = {2,3,4,5}

s = set([3,5,9,10])      #创建一个数值集合    

t = set("Hello")        #创建一个唯一字符的集合  

  

分析如下:

与列表和元组不同,集合是无序的,也无法通过数字进行索引。

集合中的元素不能重复

例如,如果检查前面代码中t集合的值,结果会是:  

>>> t  

set(['H', 'e', 'l', 'o'])  

注意只出现了一个'l'。  

 

集合的操作

集合支持一系列标准操作,包括并集、交集、差集和对称差集,

例如:  

a = t | s # t 和 s的并集  

b = t & s # t 和 s的交集  

c = t–s # 求差集(项在t中,但不在s中) 

d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中)  

 

 

  1. 基本操作: 

t.add('x') # 添加一项  

s.update([10,37,42]) # 在s中添加多项  

 

  1. remove()删除一项:  

t.remove('H')  

  

  1. len(s)set的长度  

len(s)

 

  1. x in s  

测试 x 是否是 s 的成员  

  

 

  

  1. s.issubset(t)  

s <= t  

测试是否 s 中的每一个元素都在 t 中  

 

  1. 集合并集:s.union(t)  

s | t  

返回一个新的 set 包含 s 和 t 中的每一个元素  

  

  1. 集合交集s.intersection(t)  

s & t  

返回一个新的 set 包含 s 和 t 中的公共元素  

 

 

 

 

 

 

选择结构

 

Python条件语句是通过一条或多条语句的执行结果

(True或者False)来决定执行的代码块。

 

可以通过下图来简单了解条件语句的执行过程:

Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。

Python 编程中 if 语句用于控制程序的执行,基本形式为:

if 判断条件:

    执行语句……

else:

    执行语句……

其中"判断条件"成立时(非零),则执行后面的语句,

而执行内容可以多行,以缩进来区分表示同一范围。

else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句,

 

if 语句的判断条件

>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)。

当判断条件为多个值时,可以使用以下形式:

if 判断条件1:

    执行语句1……

elif 判断条件2:

    执行语句2……

elif 判断条件3:

    执行语句3……

else:

    执行语句4……

 

由于 python 并不支持 switch 语句

所以多个条件判断,只能用 elif 来实现,

如果判断需要多个条件需同时判断时,

or (或) 表示两个条件有一个成立时判断条件成功;

and (与) 表示只有两个条件同时成立的情况下,判断条件才成功。

 

当if有多个条件时可使用括号来区分判断的先后顺序,。

 

 

循环结构

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

循环语句允许我们执行一个语句或语句组多次,

下面是在大多数编程语言中的循环语句的一般形式:

循环语句

Python提供了for循环while循环(在Python中没有do..while循环):

循环类型

描述

while 循环

在给定的判断条件为 true 时执行循环体,否则退出循环体。

for 循环

重复执行语句

嵌套循环

你可以在while循环体中嵌套for循环

 

 

循环控制语句

循环控制语句可以更改语句执行的顺序。

Python支持以下循环控制语句:

控制语句

描述

break 语句

在语句块执行过程中终止循环,并且跳出整个循环

continue 语句

在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。

pass 语句

pass是空语句,是为了保持程序结构的完整性。

 

 

while 语句

Python 编程中 while 语句用于循环执行程序,

即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。

其基本形式为:

while 判断条件:

    执行语句……

执行语句可以是单个语句或语句块。

判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。

当判断条件假false时,循环结束。

执行流程图如下:

 

 

实例

count = 0

while(count < 9):

print('The count is:', count )

count = count + 1 

print("Good bye!")

 

while 语句时还有另外两个重要的命令 continue,break 来跳过循环,

continue 用于跳过该次循环,

break 则是用于退出循环,

此外"判断条件"还可以是个常值,表示循环必定成立,

无限循环

如果条件判断语句永远为 true,循环将会无限的执行下去,

while(1):

print(hello)

注意:以上的无限循环你可以使用 CTRL+C 来中断循环。

 

 

for循环

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

语法:

for循环的语法格式如下:

for iterating_var in sequence:

   statements(s)

流程图:

实例:

 

for letter in 'Python': # 第一个实例 

print (letter)

 

通过序列索引迭代

另外一种执行循环的遍历方式是通过索引,如下实例:

实例

fruits = ['banana', 'apple', 'mango'] 

for index in range(len(fruits)):

print('当前水果 :', fruits[index] )

 

以上实例我们使用了内置函数 len() 和 range(),

len()  返回列表的长度,即元素的个数。

range 返回一个序列的数。

 

 

 

Python 循环嵌套

Python 语言允许在一个循环体里面嵌入另一个循环。

Python for 循环嵌套语法:

for iterating_var in sequence:

for iterating_var in sequence:

statements(s) 

statements(s)

 

Python while 循环嵌套语法:

while expression:

while expression:

statement(s) 

statement(s)

可以在循环体内嵌入其他的循环体,

如在while循环中可以嵌入for循环,

可以在for循环中嵌入while循环。

 

 

 

Python break 语句

Python break语句,就像在C语言中,打破了最小封闭for或while循环。

break语句用来终止循环语句

即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。

 

break语句用在while和for循环中。

如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。

Python语言 break 语句语法:

break

流程图:

实例(Python 2.0+)

for letter in 'Python':

if letter == 'h':

break 

print('当前字母 :', letter)

 

 

Python continue 语句

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

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

 

continue语句用在while和for循环中。

Python 语言 continue 语句语法格式如下:

continue

流程图:

实例:

for letter in 'Python':

if letter == 'h':

continue 

print('当前字母 :', letter)

 

 

 

最后

以上就是柔弱西装为你收集整理的Python3简明教程之2基础Python3基础的全部内容,希望文章能够帮你解决Python3简明教程之2基础Python3基础所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部