最新消息:欢迎光临 魔力 • Python!大家可以点开导航菜单中的【学习目录】,这个目录类似图书目录,更加方便学习!

Python3萌新入门笔记(24)

Python教程 小楼一夜听春语 5103浏览 0评论

在学习新的内容之前,我们对前面所学内容做一些补充。

第一部分,变量的赋值与交换。

一、链式赋值(Chained Assignment)

打开Python控制台,在提示符后方我们进行下面的操作。

>>> a = b = c = 0
>>> a # 查看变量a的值
0
>>> b # 查看变量b的值
0
>>> c # 查看变量c的值
0

通过上方的示例大家能够看出,当多个变量具有相同的值,我们可以通过这种多个变量之间写等号的方式进行赋值。

二、序列解包(Sequence Unpacking)

如果我们给多个变量写入不同的值呢?

我们可以采用下面这种方式。

>>> a,b,c = 1,2,3 # 多变量赋值
>>> a # 查看变量a的值
1
>>> b # 查看变量b的值
2
>>> c # 查看变量c的值
3

大家能够看到,我们可以同时对多个变量进行赋值操作,只需要用逗号把它们隔开,并且等号右侧值的数量和变量数量相同即可。

这是什么原理呢?

大家再来继续尝试。

>>> 1,2,3
(1, 2, 3)

大家能够看到,当我们输入多个值并用逗号分隔,实际上是把这些值变成了一个序列(元组)。

Python会自动把这个序列分解,给到对应的每一个变量。

既然能够对序列进行解包,那么列表也一样。

我们再来做尝试。

>>> a,b,c = [1,2,3]
>>> a
1
>>> b
2
>>> c
3

实际上,字符串、列表、元组、集合、字典等都可以进行类似的操作。

那么,如果右侧值的数量与左侧不相等呢?

我们可以变量名称前面写入“*”,这样该变量的值会变成一个列表。

我们来做两个尝试。

>>> *a,b,c = 1,2
>>> a
[]
>>> b
1
>>> c
2
>>> *a,b,c = 1,2,3,4
>>> a
[1,2]
>>> b
3
>>> c
4

当最左侧变量带有“*”,程序会先对右侧变量赋值,然后将剩余的值(或空值)写入带有“*”的变量。

“*”可以写在任意一个变量的前方,但是只能有一个。

由此还能够看出,“*”写在最右侧变量前方时,与写在最左侧变量前方时正好相反。

而“*”写在中间某个变量前方时,会先对应着为两侧变量赋值,然后将剩余的值(或空值)写入带有“*”的变量。

三、变量交换

我们先来做个尝试。

>>> a,b = 1,2
>>> a,b = b,a
>>> a
2
>>> b
1

大家能够看到,我们可以通过上面这种方式对变量的值进行互换。

这里只是通过2个变量互换举例,实际上可以支持多个变量的互换。

四、增量赋值

增量赋值我们在之前的关于运算符教程中已经接触过。

>>> a = 1
>>> a += 1
>>> a
2

具体内容参考Python3萌新入门笔记(13)的赋值运算符部分。

第二部分,进制与数据类型

一、进制

所谓进制就是人们规定的一种进位方法。

2进制就是满2进1位;

8进制就是满8进1位;

10进制就是满10进1位;

16进制就是满16进1位。

不过,在Python中这些进制有不同的表达方式。

>>> 0x11 # 非10进制以0开头,字母x代表16进制
17
>>> 0o11 # 非10进制以0开头,字母o代表8进制
9
>>> 0b11 # 非10进制以0开头,字母b代表2进制
3

关于进制的内容,先了解这些就可以了。

二、数据类型

Python中有六种标准数据类型,分别为Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)和Dict(字典)。

这里我们主要补充一下Number(数字)和String(字符串)两种类型。

首先,数字类型包含:Int(整数)、Float(浮点数)、Bool(布尔)和Complex(复数)。

整型(Int):即整数,可以通过int(x[,base=10])函数将非整数或整数组成的字符串以及字节转换成整数。

print(int()) # 显示输出结果为0
print(int(1.23)) # 显示输出结果为1
print(int('5')) # 显示输出结果为5
print(int('0xF',16)) # 显示输出结果为15

浮点型(Float):即小数,float([x])函数将非整数或整数组成的字符串以及字节转换成整数。

print(float()) # 显示输出结果为0.0
print(float(1)) # 显示输出结果为1.0
print(float('5')) # 显示输出结果为5.0
print(float(0xf)) # 显示输出结果为15.0

布尔类型(Bool):通过bool(x)函数,能够得到参数x的布尔值。

print(bool())  # 显示输出结果为False
print(bool(False))  # 显示输出结果为False
print(bool(''))  # 显示输出结果为False
print(bool(0))  # 显示输出结果为False
print(bool(None))  # 显示输出结果为False
print(bool([]))  # 显示输出结果为False
print(bool(()))  # 显示输出结果为False
print(bool({}))  # 显示输出结果为False

在Python中除了空值、”、False、0、()、[]、{}、None为False,其它均为True。

复数(Complex):能够通过complex(x)函数创建一个复数。

print(complex(1)) # 显示输出结果为:(1+0j)
print(complex('2+1j')) # 显示输出结果为:(2+1j)
print(complex(2, 5)) # 显示输出结果为:(2+5j)

接下来,是字符串(String)类型。

字符串(String):通过str(object=”)函数能够将对象转换为字符串。

错误示例:

a = str(1)
b = a + 1

当我们把数字转换为字符串,进行加法运算时,会抛出异常。

TypeError: unsupported operand type(s) for -: ‘str’ and ‘int’

类型错误:不被支持的操作数类型:字符串和整型

第三部分、字符串相关函数

一、迭代对象合并为字符串

join(iterable)函数能够将可迭代对象的元素或多个字符串合并为一个字符串,参数iterable为可迭代对象。如果参数不是字符串会抛出类型错误的异常,包括字节对象。此函数通过元素间的分隔符调用。

lst1 = '1', '2', '3'
print('+'.join(lst1))  # 显示输出结果为:1+2+3
lst2 = ['1', '2', '3']
print(''.join(lst2))  # 显示输出结果为:123

二、字符串内单词首字母大写

这里需要使用string模块中的capwords(s[,sep])函数,参数s为需要转换的字符串,参数sep为分隔符,省略参数sep时,每个单词均转换为首字母大写单词;未省略参数sep时,除了第一个单词首字母转换为大写,分隔符后方的第一个字母均转换为大写。

示例代码:

import string

old_str = 'my name is xiaolou.'
new_str1 = string.capwords(old_str)
new_str2 = string.capwords(old_str,'s ')
print(new_str1)  # 显示输出结果为:My Name Is Xiaolou.
print(new_str2)  # 显示输出结果为:My name is Xiaolou.

三、多字符转换

这里需要使用字符串对象调用translate(table)函数,参数table为转换表;

很显然使用这个函数我们需要先创建转换表,转换表包含256个 ASCII字符。

我们并不需要手工去创建转换表,而是可以使用关键字str调用maketrans(x[,y[,z]])函数创建转换表。

只有1个参数时,必须输入一个字典,字典的键值可以是ASCII字符或对应的数字序号,转换时会用值对应的字符替换键对应的字符。

table=str.maketrans({111:'*'})
print('photo'.translate(table)) # 显示输出结果为:ph*t*

输入2个参数时,前面的参数是被替换的字符,后面的参数是替换后的字符。

table=str.maketrans('o','*')
print('photo'.translate(table)) # 显示输出结果为:ph*t*

输入3个参数时,最后一个参数必须是字符串,包含在这个字符串中的每一个字符都被替换为None(空值)。

注意:函数会先完成第3个参数的替换,再进行前两个参数的替换。

table=str.maketrans('o','*','po')
print('photo'.translate(table)) # 显示输出结果为:ht

第四部分、字符串转义字符

\:在字符串结尾时为续行符

\\:斜杠

\’:单引号

\”:双引号

\a:响铃

\b:退格符

\n:换行符

\t:横向制表符

\v:纵向制表符

\r:回车符

\f:换页符

\ooo:八进制字符

\xhh:十六进制字符

\000:终止符

\other:其它的字符以普通格式输出

\N{name}:Unicode数据库中的字符名

\uhhhh:值为16位的十六进制字符

\Uhhhhhhhh:值为32位的十六进制字符

本节知识点:

1、变量赋值与交互

2、进制与数据类型

3、字符串转换函数

4、字符串转义字符

本节英文单词与中文释义:

1、unpacking(unpack):拆包

2、chained(chain):链条式

3、assignment:分配

4、unsupported(unsupport):不支持

5、operand:操作数

6、join:连接

7、make trans:使…转移

8、trans late:转移原来的

9、table:表

10、photo:照片

转载请注明:魔力Python » Python3萌新入门笔记(24)

头像
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网站 (可选)

网友最新评论 (2)

  1. 头像
    这个例子错了>>> *a,b,c = 1,2,3,4 >>> a [1,2] >>> b 1 >>> c 2 b应该是3,c应该是4
    爱上7年前 (2018-05-06)回复
    • 小楼一夜听春语
      嗯,笔误了!谢谢!
      小楼一夜听春语7年前 (2018-05-07)回复